[Home] [Help]
PACKAGE BODY: APPS.QP_PRICE_LIST_LINE_UTIL
Source
1 PACKAGE BODY QP_Price_List_Line_Util AS
2 /* $Header: QPXUPLLB.pls 120.10.12010000.1 2008/07/28 11:57:12 appldev ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Price_List_Line_Util';
7 --introduced the constant for performance problem
8 G_ORGANIZATION_ID CONSTANT VARCHAR2(30) := TO_CHAR(QP_UTIL.Get_Item_Validation_Org);
9
10 -- Procedure Clear_Dependent_Attr
11
12 PROCEDURE Clear_Dependent_Attr
13 ( p_attr_id IN NUMBER := FND_API.G_MISS_NUM
14 , p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
15 , p_old_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type :=
16 QP_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
17 , x_PRICE_LIST_LINE_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Price_List_Line_Rec_Type
18 )
19 IS
20 l_index NUMBER := 0;
21 l_src_attr_tbl QP_GLOBALS.NUMBER_Tbl_Type;
22 l_dep_attr_tbl QP_GLOBALS.NUMBER_Tbl_Type;
23 BEGIN
24
25 -- Load out record
26
27 x_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
28
29 -- If attr_id is missing compare old and new records and for
30 -- every changed attribute clear its dependent fields.
31
32 IF p_attr_id = FND_API.G_MISS_NUM THEN
33
34 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_qty,p_old_PRICE_LIST_LINE_rec.accrual_qty)
35 THEN
36 l_index := l_index + 1;
37 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ACCRUAL_QTY;
38 END IF;
39
40 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_uom_code,p_old_PRICE_LIST_LINE_rec.accrual_uom_code)
41 THEN
42 l_index := l_index + 1;
43 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ACCRUAL_UOM;
44 END IF;
45
46 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.arithmetic_operator,p_old_PRICE_LIST_LINE_rec.arithmetic_operator)
47 THEN
48 l_index := l_index + 1;
49 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ARITHMETIC_OPERATOR;
50 END IF;
51
52 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute1,p_old_PRICE_LIST_LINE_rec.attribute1)
53 THEN
54 l_index := l_index + 1;
55 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE1;
56 END IF;
57
58 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute10,p_old_PRICE_LIST_LINE_rec.attribute10)
59 THEN
60 l_index := l_index + 1;
61 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE10;
62 END IF;
63
64 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute11,p_old_PRICE_LIST_LINE_rec.attribute11)
65 THEN
66 l_index := l_index + 1;
67 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE11;
68 END IF;
69
70 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute12,p_old_PRICE_LIST_LINE_rec.attribute12)
71 THEN
72 l_index := l_index + 1;
73 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE12;
74 END IF;
75
76 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute13,p_old_PRICE_LIST_LINE_rec.attribute13)
77 THEN
78 l_index := l_index + 1;
79 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE13;
80 END IF;
81
82 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute14,p_old_PRICE_LIST_LINE_rec.attribute14)
83 THEN
84 l_index := l_index + 1;
85 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE14;
86 END IF;
87
88 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute15,p_old_PRICE_LIST_LINE_rec.attribute15)
89 THEN
90 l_index := l_index + 1;
91 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE15;
92 END IF;
93
94 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute2,p_old_PRICE_LIST_LINE_rec.attribute2)
95 THEN
96 l_index := l_index + 1;
97 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE2;
98 END IF;
99
100 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute3,p_old_PRICE_LIST_LINE_rec.attribute3)
101 THEN
102 l_index := l_index + 1;
103 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE3;
104 END IF;
105
106 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute4,p_old_PRICE_LIST_LINE_rec.attribute4)
107 THEN
108 l_index := l_index + 1;
109 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE4;
110 END IF;
111
112 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute5,p_old_PRICE_LIST_LINE_rec.attribute5)
113 THEN
114 l_index := l_index + 1;
115 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE5;
116 END IF;
117
118 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute6,p_old_PRICE_LIST_LINE_rec.attribute6)
119 THEN
120 l_index := l_index + 1;
121 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE6;
122 END IF;
123
124 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute7,p_old_PRICE_LIST_LINE_rec.attribute7)
125 THEN
126 l_index := l_index + 1;
127 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE7;
128 END IF;
129
130 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute8,p_old_PRICE_LIST_LINE_rec.attribute8)
131 THEN
132 l_index := l_index + 1;
133 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE8;
134 END IF;
135
136 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute9,p_old_PRICE_LIST_LINE_rec.attribute9)
137 THEN
138 l_index := l_index + 1;
139 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE9;
140 END IF;
141
142 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.automatic_flag,p_old_PRICE_LIST_LINE_rec.automatic_flag)
143 THEN
144 l_index := l_index + 1;
145 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_AUTOMATIC;
146 END IF;
147
148 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_qty,p_old_PRICE_LIST_LINE_rec.base_qty)
149 THEN
150 l_index := l_index + 1;
151 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BASE_QTY;
152 END IF;
153
154 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_uom_code,p_old_PRICE_LIST_LINE_rec.base_uom_code)
155 THEN
156 l_index := l_index + 1;
157 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BASE_UOM;
158 END IF;
159
160 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.comments,p_old_PRICE_LIST_LINE_rec.comments)
161 THEN
162 l_index := l_index + 1;
163 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_COMMENTS;
164 END IF;
165
166 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.context,p_old_PRICE_LIST_LINE_rec.context)
167 THEN
168 l_index := l_index + 1;
169 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CONTEXT;
170 END IF;
171
172 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.created_by,p_old_PRICE_LIST_LINE_rec.created_by)
173 THEN
174 l_index := l_index + 1;
175 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CREATED_BY;
176 END IF;
177
178 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.creation_date,p_old_PRICE_LIST_LINE_rec.creation_date)
179 THEN
180 l_index := l_index + 1;
181 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CREATION_DATE;
182 END IF;
183
184 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.effective_period_uom,p_old_PRICE_LIST_LINE_rec.effective_period_uom)
185 THEN
186 l_index := l_index + 1;
187 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_EFFECTIVE_PERIOD_UOM;
188 END IF;
189
190 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.end_date_active,p_old_PRICE_LIST_LINE_rec.end_date_active)
191 THEN
192 l_index := l_index + 1;
193 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_END_DATE_ACTIVE;
194 END IF;
195
196 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.estim_accrual_rate,p_old_PRICE_LIST_LINE_rec.estim_accrual_rate)
197 THEN
198 l_index := l_index + 1;
199 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ESTIM_ACCRUAL_RATE;
200 END IF;
201
202 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.generate_using_formula_id,p_old_PRICE_LIST_LINE_rec.generate_using_formula_id)
203 THEN
204 l_index := l_index + 1;
205 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_GENERATE_USING_FORMULA;
206 END IF;
207
208 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,p_old_PRICE_LIST_LINE_rec.inventory_item_id)
209 THEN
210 l_index := l_index + 1;
211 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_INVENTORY_ITEM;
212 END IF;
213
214 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_updated_by,p_old_PRICE_LIST_LINE_rec.last_updated_by)
215 THEN
216 l_index := l_index + 1;
217 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATED_BY;
218 END IF;
219
220 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_date,p_old_PRICE_LIST_LINE_rec.last_update_date)
221 THEN
222 l_index := l_index + 1;
223 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_DATE;
224 END IF;
225
226 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_login,p_old_PRICE_LIST_LINE_rec.last_update_login)
227 THEN
228 l_index := l_index + 1;
229 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_LOGIN;
230 END IF;
231
232 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_header_id,p_old_PRICE_LIST_LINE_rec.list_header_id)
233 THEN
234 l_index := l_index + 1;
235 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_HEADER;
236 END IF;
237
238 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_id,p_old_PRICE_LIST_LINE_rec.list_line_id)
239 THEN
240 l_index := l_index + 1;
241 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_LINE;
242 END IF;
243
244 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_type_code,p_old_PRICE_LIST_LINE_rec.list_line_type_code)
245 THEN
246 l_index := l_index + 1;
247 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_LINE_TYPE;
248 END IF;
249
250 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_price,p_old_PRICE_LIST_LINE_rec.list_price)
251 THEN
252 l_index := l_index + 1;
253 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_PRICE;
254 END IF;
255
256 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.from_rltd_modifier_id,p_old_PRICE_LIST_LINE_rec.from_rltd_modifier_id)
257 THEN
258 l_index := l_index + 1;
259 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_FROM_RLTD_MODIFIER;
260 END IF;
261
262 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rltd_modifier_group_no,p_old_PRICE_LIST_LINE_rec.rltd_modifier_group_no)
263 THEN
264 l_index := l_index + 1;
265 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RLTD_MODIFIER_GROUP_NO;
266 END IF;
267
268 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.product_precedence,p_old_PRICE_LIST_LINE_rec.product_precedence)
269 THEN
270 l_index := l_index + 1;
271 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRODUCT_PRECEDENCE;
272 END IF;
273
274
275 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.modifier_level_code,p_old_PRICE_LIST_LINE_rec.modifier_level_code)
276 THEN
277 l_index := l_index + 1;
278 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_MODIFIER_LEVEL;
279 END IF;
280
281 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.number_effective_periods,p_old_PRICE_LIST_LINE_rec.number_effective_periods)
282 THEN
283 l_index := l_index + 1;
284 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_NUMBER_EFFECTIVE_PERIODS;
285 END IF;
286
287 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.operand,p_old_PRICE_LIST_LINE_rec.operand)
288 THEN
289 l_index := l_index + 1;
290 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_OPERAND;
291 END IF;
292
293 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.organization_id,p_old_PRICE_LIST_LINE_rec.organization_id)
294 THEN
295 l_index := l_index + 1;
296 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ORGANIZATION;
297 END IF;
298
299 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.override_flag,p_old_PRICE_LIST_LINE_rec.override_flag)
300 THEN
301 l_index := l_index + 1;
302 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_OVERRIDE;
303 END IF;
304
305 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.percent_price,p_old_PRICE_LIST_LINE_rec.percent_price)
306 THEN
307 l_index := l_index + 1;
308 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PERCENT_PRICE;
309 END IF;
310
311 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_break_type_code,p_old_PRICE_LIST_LINE_rec.price_break_type_code)
312 THEN
313 l_index := l_index + 1;
314 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRICE_BREAK_TYPE;
315 END IF;
316
317 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_by_formula_id,p_old_PRICE_LIST_LINE_rec.price_by_formula_id)
318 THEN
319 l_index := l_index + 1;
320 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRICE_BY_FORMULA;
321 END IF;
322
323 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary_uom_flag,p_old_PRICE_LIST_LINE_rec.primary_uom_flag)
324 THEN
325 l_index := l_index + 1;
326 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRIMARY_UOM;
327 END IF;
328
329 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.print_on_invoice_flag,p_old_PRICE_LIST_LINE_rec.print_on_invoice_flag)
330 THEN
331 l_index := l_index + 1;
332 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRINT_ON_INVOICE;
333 END IF;
334
335 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_application_id,p_old_PRICE_LIST_LINE_rec.program_application_id)
336 THEN
337 l_index := l_index + 1;
338 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM_APPLICATION;
339 END IF;
340
341 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_id,p_old_PRICE_LIST_LINE_rec.program_id)
342 THEN
343 l_index := l_index + 1;
344 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM;
345 END IF;
346
347 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_update_date,p_old_PRICE_LIST_LINE_rec.program_update_date)
348 THEN
349 l_index := l_index + 1;
350 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM_UPDATE_DATE;
351 END IF;
352
353 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rebate_trxn_type_code,p_old_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
354 THEN
355 l_index := l_index + 1;
356 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REBATE_TRANSACTION_TYPE;
357 END IF;
358
359 -- block pricing
360 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.recurring_value, p_old_PRICE_LIST_LINE_rec.recurring_value)
361 THEN
362 l_index := l_index+1;
363 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RECURRING_VALUE;
364 END IF;
365
366 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.related_item_id,p_old_PRICE_LIST_LINE_rec.related_item_id)
367 THEN
368 l_index := l_index + 1;
369 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RELATED_ITEM;
370 END IF;
371
372 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.relationship_type_id,p_old_PRICE_LIST_LINE_rec.relationship_type_id)
373 THEN
374 l_index := l_index + 1;
375 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RELATIONSHIP_TYPE;
376 END IF;
377
378 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,p_old_PRICE_LIST_LINE_rec.reprice_flag)
379 THEN
380 l_index := l_index + 1;
381 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REPRICE;
382 END IF;
383
384 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.request_id,p_old_PRICE_LIST_LINE_rec.request_id)
385 THEN
386 l_index := l_index + 1;
387 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REQUEST;
388 END IF;
389
390 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision,p_old_PRICE_LIST_LINE_rec.revision)
391 THEN
392 l_index := l_index + 1;
393 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION;
394 END IF;
395
396 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_date,p_old_PRICE_LIST_LINE_rec.revision_date)
397 THEN
398 l_index := l_index + 1;
399 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION_DATE;
400 END IF;
401
402 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,p_old_PRICE_LIST_LINE_rec.revision_reason_code)
403 THEN
404 l_index := l_index + 1;
405 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION_REASON;
406 END IF;
407
408 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.start_date_active,p_old_PRICE_LIST_LINE_rec.start_date_active)
409 THEN
410 l_index := l_index + 1;
411 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_START_DATE_ACTIVE;
412 END IF;
413
414 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_attribute,p_old_PRICE_LIST_LINE_rec.substitution_attribute)
415 THEN
416 l_index := l_index + 1;
417 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_ATTRIBUTE;
418 END IF;
419
420 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_context,p_old_PRICE_LIST_LINE_rec.substitution_context)
421 THEN
422 l_index := l_index + 1;
423 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_CONTEXT;
424 END IF;
425
426 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_value,p_old_PRICE_LIST_LINE_rec.substitution_value)
427 THEN
428 l_index := l_index + 1;
429 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_VALUE;
430 END IF;
431
432 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.customer_item_id, p_old_PRICE_LIST_LINE_rec.customer_item_id)
433 THEN
434 l_index := l_index + 1;
435 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CUSTOMER_ITEM_ID;
436 END IF;
437
438 ELSIF p_attr_id = G_ACCRUAL_QTY THEN
439 l_index := l_index + 1;
440 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ACCRUAL_QTY;
441 ELSIF p_attr_id = G_ACCRUAL_UOM THEN
442 l_index := l_index + 1;
443 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ACCRUAL_UOM;
444 ELSIF p_attr_id = G_ARITHMETIC_OPERATOR THEN
445 l_index := l_index + 1;
446 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ARITHMETIC_OPERATOR;
447 ELSIF p_attr_id = G_ATTRIBUTE1 THEN
448 l_index := l_index + 1;
449 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE1;
450 ELSIF p_attr_id = G_ATTRIBUTE10 THEN
451 l_index := l_index + 1;
452 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE10;
453 ELSIF p_attr_id = G_ATTRIBUTE11 THEN
454 l_index := l_index + 1;
455 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE11;
456 ELSIF p_attr_id = G_ATTRIBUTE12 THEN
457 l_index := l_index + 1;
458 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE12;
459 ELSIF p_attr_id = G_ATTRIBUTE13 THEN
460 l_index := l_index + 1;
461 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE13;
462 ELSIF p_attr_id = G_ATTRIBUTE14 THEN
463 l_index := l_index + 1;
464 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE14;
465 ELSIF p_attr_id = G_ATTRIBUTE15 THEN
466 l_index := l_index + 1;
467 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE15;
468 ELSIF p_attr_id = G_ATTRIBUTE2 THEN
469 l_index := l_index + 1;
470 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE2;
471 ELSIF p_attr_id = G_ATTRIBUTE3 THEN
472 l_index := l_index + 1;
473 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE3;
474 ELSIF p_attr_id = G_ATTRIBUTE4 THEN
475 l_index := l_index + 1;
476 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE4;
477 ELSIF p_attr_id = G_ATTRIBUTE5 THEN
478 l_index := l_index + 1;
479 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE5;
480 ELSIF p_attr_id = G_ATTRIBUTE6 THEN
481 l_index := l_index + 1;
482 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE6;
483 ELSIF p_attr_id = G_ATTRIBUTE7 THEN
484 l_index := l_index + 1;
485 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE7;
486 ELSIF p_attr_id = G_ATTRIBUTE8 THEN
487 l_index := l_index + 1;
488 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE8;
489 ELSIF p_attr_id = G_ATTRIBUTE9 THEN
490 l_index := l_index + 1;
491 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ATTRIBUTE9;
492 ELSIF p_attr_id = G_AUTOMATIC THEN
493 l_index := l_index + 1;
494 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_AUTOMATIC;
495 ELSIF p_attr_id = G_BASE_QTY THEN
496 l_index := l_index + 1;
497 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BASE_QTY;
498 ELSIF p_attr_id = G_BASE_UOM THEN
499 l_index := l_index + 1;
500 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BASE_UOM;
501 ELSIF p_attr_id = G_COMMENTS THEN
502 l_index := l_index + 1;
503 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_COMMENTS;
504 ELSIF p_attr_id = G_CONTEXT THEN
505 l_index := l_index + 1;
506 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CONTEXT;
507 ELSIF p_attr_id = G_CREATED_BY THEN
508 l_index := l_index + 1;
509 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CREATED_BY;
510 ELSIF p_attr_id = G_CREATION_DATE THEN
511 l_index := l_index + 1;
512 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CREATION_DATE;
513 ELSIF p_attr_id = G_EFFECTIVE_PERIOD_UOM THEN
514 l_index := l_index + 1;
515 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_EFFECTIVE_PERIOD_UOM;
516 ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
517 l_index := l_index + 1;
518 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_END_DATE_ACTIVE;
519 ELSIF p_attr_id = G_ESTIM_ACCRUAL_RATE THEN
520 l_index := l_index + 1;
521 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ESTIM_ACCRUAL_RATE;
522 ELSIF p_attr_id = G_GENERATE_USING_FORMULA THEN
523 l_index := l_index + 1;
524 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_GENERATE_USING_FORMULA;
525 ELSIF p_attr_id = G_INVENTORY_ITEM THEN
526 l_index := l_index + 1;
527 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_INVENTORY_ITEM;
528 ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
529 l_index := l_index + 1;
530 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATED_BY;
531 ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
532 l_index := l_index + 1;
533 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_DATE;
534 ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
535 l_index := l_index + 1;
536 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LAST_UPDATE_LOGIN;
537 ELSIF p_attr_id = G_LIST_HEADER THEN
538 l_index := l_index + 1;
539 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_HEADER;
540 ELSIF p_attr_id = G_LIST_LINE THEN
541 l_index := l_index + 1;
542 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_LINE;
543 ELSIF p_attr_id = G_LIST_LINE_TYPE THEN
544 l_index := l_index + 1;
545 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_LINE_TYPE;
546 ELSIF p_attr_id = G_LIST_PRICE THEN
547 l_index := l_index + 1;
548 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_LIST_PRICE;
549 ELSIF p_attr_id = G_FROM_RLTD_MODIFIER THEN
550 l_index := l_index + 1;
551 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_FROM_RLTD_MODIFIER;
552 ELSIF p_attr_id = G_RLTD_MODIFIER_GROUP_NO THEN
553 l_index := l_index + 1;
554 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RLTD_MODIFIER_GROUP_NO;
555 ELSIF p_attr_id = G_PRODUCT_PRECEDENCE THEN
556 l_index := l_index + 1;
557 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRODUCT_PRECEDENCE;
558 ELSIF p_attr_id = G_MODIFIER_LEVEL THEN
559 l_index := l_index + 1;
560 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_MODIFIER_LEVEL;
561 ELSIF p_attr_id = G_NUMBER_EFFECTIVE_PERIODS THEN
562 l_index := l_index + 1;
563 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_NUMBER_EFFECTIVE_PERIODS;
564 ELSIF p_attr_id = G_OPERAND THEN
565 l_index := l_index + 1;
566 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_OPERAND;
567 ELSIF p_attr_id = G_ORGANIZATION THEN
568 l_index := l_index + 1;
569 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_ORGANIZATION;
570 ELSIF p_attr_id = G_OVERRIDE THEN
571 l_index := l_index + 1;
572 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_OVERRIDE;
573 ELSIF p_attr_id = G_PERCENT_PRICE THEN
574 l_index := l_index + 1;
575 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PERCENT_PRICE;
576 ELSIF p_attr_id = G_PRICE_BREAK_TYPE THEN
577 l_index := l_index + 1;
578 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRICE_BREAK_TYPE;
579 ELSIF p_attr_id = G_PRICE_BY_FORMULA THEN
580 l_index := l_index + 1;
581 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRICE_BY_FORMULA;
582 ELSIF p_attr_id = G_PRIMARY_UOM THEN
583 l_index := l_index + 1;
584 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRIMARY_UOM;
585 ELSIF p_attr_id = G_PRINT_ON_INVOICE THEN
586 l_index := l_index + 1;
587 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PRINT_ON_INVOICE;
588 ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
589 l_index := l_index + 1;
590 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM_APPLICATION;
591 ELSIF p_attr_id = G_PROGRAM THEN
592 l_index := l_index + 1;
593 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM;
594 ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
595 l_index := l_index + 1;
596 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_PROGRAM_UPDATE_DATE;
597 ELSIF p_attr_id = G_REBATE_TRANSACTION_TYPE THEN
598 l_index := l_index + 1;
599 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REBATE_TRANSACTION_TYPE;
600 -- block pricing
601 ELSIF p_attr_id = G_RECURRING_VALUE THEN
602 l_index := l_index + 1;
603 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RECURRING_VALUE;
604 ELSIF p_attr_id = G_RELATED_ITEM THEN
605 l_index := l_index + 1;
606 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RELATED_ITEM;
607 ELSIF p_attr_id = G_RELATIONSHIP_TYPE THEN
608 l_index := l_index + 1;
609 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_RELATIONSHIP_TYPE;
610 ELSIF p_attr_id = G_REPRICE THEN
611 l_index := l_index + 1;
612 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REPRICE;
613 ELSIF p_attr_id = G_REQUEST THEN
614 l_index := l_index + 1;
615 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REQUEST;
616 ELSIF p_attr_id = G_REVISION THEN
617 l_index := l_index + 1;
618 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION;
619 ELSIF p_attr_id = G_REVISION_DATE THEN
620 l_index := l_index + 1;
621 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION_DATE;
622 ELSIF p_attr_id = G_REVISION_REASON THEN
623 l_index := l_index + 1;
624 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_REVISION_REASON;
625 ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
626 l_index := l_index + 1;
627 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_START_DATE_ACTIVE;
628 ELSIF p_attr_id = G_SUBSTITUTION_ATTRIBUTE THEN
629 l_index := l_index + 1;
630 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_ATTRIBUTE;
631 ELSIF p_attr_id = G_SUBSTITUTION_CONTEXT THEN
632 l_index := l_index + 1;
633 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_CONTEXT;
634 ELSIF p_attr_id = G_SUBSTITUTION_VALUE THEN
635 l_index := l_index + 1;
636 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_SUBSTITUTION_VALUE;
637 ELSIF p_attr_id = G_CUSTOMER_ITEM_ID THEN
638 l_index := l_index + 1;
639 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CUSTOMER_ITEM_ID;
640 ELSIF p_attr_id = G_BREAK_UOM_CODE THEN
641 l_index := l_index + 1;
642 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BREAK_UOM_CODE;
643 ELSIF p_attr_id = G_BREAK_UOM_CONTEXT THEN
644 l_index := l_index + 1;
645 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BREAK_UOM_CONTEXT;
646 ELSIF p_attr_id = G_BREAK_UOM_ATTRIBUTE THEN
647 l_index := l_index + 1;
648 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_BREAK_UOM_ATTRIBUTE;
649 ELSIF p_attr_id = G_CONTINUOUS_PRICE_BREAK_FLAG THEN
650 l_index := l_index + 1;
651 l_src_attr_tbl(l_index) := QP_PRICE_LIST_LINE_UTIL.G_CONTINUOUS_PRICE_BREAK_FLAG;
652 END IF;
653
654 END Clear_Dependent_Attr;
655
656 -- Procedure Apply_Attribute_Changes
657
658 PROCEDURE Apply_Attribute_Changes
659 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
660 , p_old_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type :=
661 QP_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
662 , x_PRICE_LIST_LINE_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Price_List_Line_Rec_Type
663 )
664 IS
665 l_return_status varchar2(30);
666 BEGIN
667
668 -- Load out record
669
670 x_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
671
672 -- Set reprice_flag to 'Y' every time a price list line is added/modified
673 x_PRICE_LIST_LINE_rec.reprice_flag := 'Y';
674
675 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_qty,p_old_PRICE_LIST_LINE_rec.accrual_qty)
676 THEN
677 NULL;
678 END IF;
679
680 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_uom_code,p_old_PRICE_LIST_LINE_rec.accrual_uom_code)
681 THEN
682 NULL;
683 END IF;
684
685 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.arithmetic_operator,p_old_PRICE_LIST_LINE_rec.arithmetic_operator)
686 THEN
687 NULL;
688 END IF;
689
690
691 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute1,p_old_PRICE_LIST_LINE_rec.attribute1)
692 THEN
693 NULL;
694 END IF;
695
696 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute10,p_old_PRICE_LIST_LINE_rec.attribute10)
697 THEN
698 NULL;
699 END IF;
700
701 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute11,p_old_PRICE_LIST_LINE_rec.attribute11)
702 THEN
703 NULL;
704 END IF;
705
706 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute12,p_old_PRICE_LIST_LINE_rec.attribute12)
707 THEN
708 NULL;
709 END IF;
710
711 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute13,p_old_PRICE_LIST_LINE_rec.attribute13)
712 THEN
713 NULL;
714 END IF;
715
716 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute14,p_old_PRICE_LIST_LINE_rec.attribute14)
717 THEN
718 NULL;
719 END IF;
720
721 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute15,p_old_PRICE_LIST_LINE_rec.attribute15)
722 THEN
723 NULL;
724 END IF;
725
726 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute2,p_old_PRICE_LIST_LINE_rec.attribute2)
727 THEN
728 NULL;
729 END IF;
730
731 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute3,p_old_PRICE_LIST_LINE_rec.attribute3)
732 THEN
733 NULL;
734 END IF;
735
736 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute4,p_old_PRICE_LIST_LINE_rec.attribute4)
737 THEN
738 NULL;
739 END IF;
740
741 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute5,p_old_PRICE_LIST_LINE_rec.attribute5)
742 THEN
743 NULL;
744 END IF;
745
746 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute6,p_old_PRICE_LIST_LINE_rec.attribute6)
747 THEN
748 NULL;
749 END IF;
750
751 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute7,p_old_PRICE_LIST_LINE_rec.attribute7)
752 THEN
753 NULL;
754 END IF;
755
756 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute8,p_old_PRICE_LIST_LINE_rec.attribute8)
757 THEN
758 NULL;
759 END IF;
760
761 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute9,p_old_PRICE_LIST_LINE_rec.attribute9)
762 THEN
763 NULL;
764 END IF;
765
766 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.automatic_flag,p_old_PRICE_LIST_LINE_rec.automatic_flag)
767 THEN
768 NULL;
769 END IF;
770
771 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_qty,p_old_PRICE_LIST_LINE_rec.base_qty)
772 THEN
773 NULL;
774 END IF;
775
776 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_uom_code,p_old_PRICE_LIST_LINE_rec.base_uom_code)
777 THEN
778 NULL;
779 END IF;
780
781 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.comments,p_old_PRICE_LIST_LINE_rec.comments)
782 THEN
783 NULL;
784 END IF;
785
786 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.context,p_old_PRICE_LIST_LINE_rec.context)
787 THEN
788 NULL;
789 END IF;
790
791 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.created_by,p_old_PRICE_LIST_LINE_rec.created_by)
792 THEN
793 NULL;
794 END IF;
795
796 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.creation_date,p_old_PRICE_LIST_LINE_rec.creation_date)
797 THEN
798 NULL;
799 END IF;
800
801 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.effective_period_uom,p_old_PRICE_LIST_LINE_rec.effective_period_uom)
802 THEN
803 NULL;
804 END IF;
805
806 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.end_date_active,p_old_PRICE_LIST_LINE_rec.end_date_active)
807 THEN
808 NULL;
809 END IF;
810
811 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.estim_accrual_rate,p_old_PRICE_LIST_LINE_rec.estim_accrual_rate)
812 THEN
813 NULL;
814 END IF;
815
816 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.generate_using_formula_id,p_old_PRICE_LIST_LINE_rec.generate_using_formula_id)
817 THEN
818 NULL;
819 END IF;
820
821 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,p_old_PRICE_LIST_LINE_rec.inventory_item_id)
822 THEN
823 NULL;
824 END IF;
825
826 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_updated_by,p_old_PRICE_LIST_LINE_rec.last_updated_by)
827 THEN
828 NULL;
829 END IF;
830
831 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_date,p_old_PRICE_LIST_LINE_rec.last_update_date)
832 THEN
833 NULL;
834 END IF;
835
836 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_login,p_old_PRICE_LIST_LINE_rec.last_update_login)
837 THEN
838 NULL;
839 END IF;
840
841 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_header_id,p_old_PRICE_LIST_LINE_rec.list_header_id)
842 THEN
843 NULL;
844 END IF;
845
846 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_id,p_old_PRICE_LIST_LINE_rec.list_line_id)
847 THEN
848
849 /* Commented out delayed request by dhgupta for bug 2018275. This delayed request is now being called from
850 procedure insert_row */
851 null;
852 /*
853 qp_delayed_requests_PVT.log_request(
854 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
855 p_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
856 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
857 p_requesting_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
858 p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
859 x_return_status => l_return_status);
860 */
861 END IF;
862
863 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_type_code,p_old_PRICE_LIST_LINE_rec.list_line_type_code)
864 THEN
865 NULL;
866 END IF;
867
868 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_price,p_old_PRICE_LIST_LINE_rec.list_price)
869 THEN
870 NULL;
871 END IF;
872
873 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.from_rltd_modifier_id,p_old_PRICE_LIST_LINE_rec.from_rltd_modifier_id)
874 THEN
875 NULL;
876 END IF;
877
878 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rltd_modifier_group_no,p_old_PRICE_LIST_LINE_rec.rltd_modifier_group_no)
879 THEN
880 NULL;
881 END IF;
882
883 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.product_precedence,p_old_PRICE_LIST_LINE_rec.product_precedence)
884 THEN
885 NULL;
886 END IF;
887
888
889 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.modifier_level_code,p_old_PRICE_LIST_LINE_rec.modifier_level_code)
890 THEN
891 NULL;
892 END IF;
893
894 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.number_effective_periods,p_old_PRICE_LIST_LINE_rec.number_effective_periods)
895 THEN
896 NULL;
897 END IF;
898
899 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.operand,p_old_PRICE_LIST_LINE_rec.operand)
900 THEN
901 NULL;
902 END IF;
903
904 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.organization_id,p_old_PRICE_LIST_LINE_rec.organization_id)
905 THEN
906 NULL;
907 END IF;
908
909 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.override_flag,p_old_PRICE_LIST_LINE_rec.override_flag)
910 THEN
911 NULL;
912 END IF;
913
914 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.percent_price,p_old_PRICE_LIST_LINE_rec.percent_price)
915 THEN
916 NULL;
917 END IF;
918
919 --IF not p_PRICE_LIST_LINE_rec.list_line_type_code = 'PHB'
920 --then null;
921 --else
922
923 --fnd_message.debug('gm before new code');
924 oe_debug_pub.add('gm before new code');
925
926 IF NOT (QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_break_type_code,p_old_PRICE_LIST_LINE_rec.price_break_type_code)
927 and QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.arithmetic_operator,p_old_PRICE_LIST_LINE_rec.arithmetic_operator))
928 and (p_PRICE_LIST_LINE_rec.list_line_type_code = 'PBH')
929 THEN
930 qp_delayed_requests_PVT.log_request(
931 p_entity_code => QP_GLOBALS.G_ENTITY_PRICE_LIST_LINE,
932 p_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
933 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_Price_List_Line,
934 p_requesting_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
935 p_request_type =>QP_GLOBALS.G_UPDATE_CHILD_BREAKS,
936 x_return_status => l_return_status);
937 END IF;
938 -- END IF;
939 oe_debug_pub.add('gm after new code');
940
941
942 --fnd_message.debug('gm after new code');
943
944
945 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_by_formula_id,p_old_PRICE_LIST_LINE_rec.price_by_formula_id)
946 THEN
947 NULL;
948 END IF;
949
950 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary_uom_flag,p_old_PRICE_LIST_LINE_rec.primary_uom_flag)
951 THEN
952 NULL;
953 END IF;
954
955 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.print_on_invoice_flag,p_old_PRICE_LIST_LINE_rec.print_on_invoice_flag)
956 THEN
957 NULL;
958 END IF;
959
960 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_application_id,p_old_PRICE_LIST_LINE_rec.program_application_id)
961 THEN
962 NULL;
963 END IF;
964
965 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_id,p_old_PRICE_LIST_LINE_rec.program_id)
966 THEN
967 NULL;
968 END IF;
969
970 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_update_date,p_old_PRICE_LIST_LINE_rec.program_update_date)
971 THEN
972 NULL;
973 END IF;
974
975 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rebate_trxn_type_code,p_old_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
976 THEN
977 NULL;
978 END IF;
979
980 -- block pricing
981 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.recurring_value, p_old_PRICE_LIST_LINE_rec.recurring_value)
982 THEN
983 NULL;
984 END IF;
985
986 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.related_item_id,p_old_PRICE_LIST_LINE_rec.related_item_id)
987 THEN
988 NULL;
989 END IF;
990
991 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.relationship_type_id,p_old_PRICE_LIST_LINE_rec.relationship_type_id)
992 THEN
993 NULL;
994 END IF;
995
996 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,p_old_PRICE_LIST_LINE_rec.reprice_flag)
997 THEN
998 NULL;
999 END IF;
1000
1001 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.request_id,p_old_PRICE_LIST_LINE_rec.request_id)
1002 THEN
1003 NULL;
1004 END IF;
1005
1006 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision,p_old_PRICE_LIST_LINE_rec.revision)
1007 THEN
1008 NULL;
1009 END IF;
1010
1011 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_date,p_old_PRICE_LIST_LINE_rec.revision_date)
1012 THEN
1013 NULL;
1014 END IF;
1015
1016 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,p_old_PRICE_LIST_LINE_rec.revision_reason_code)
1017 THEN
1018 NULL;
1019 END IF;
1020
1021 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.start_date_active,p_old_PRICE_LIST_LINE_rec.start_date_active)
1022 THEN
1023 NULL;
1024 END IF;
1025
1026 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_attribute,p_old_PRICE_LIST_LINE_rec.substitution_attribute)
1027 THEN
1028 NULL;
1029 END IF;
1030
1031 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_context,p_old_PRICE_LIST_LINE_rec.substitution_context)
1032 THEN
1033 NULL;
1034 END IF;
1035
1036 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_value,p_old_PRICE_LIST_LINE_rec.substitution_value)
1037 THEN
1038 NULL;
1039 END IF;
1040
1041 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.customer_item_id, p_old_PRICE_LIST_LINE_rec.customer_item_id)
1042 THEN
1043 NULL;
1044 END IF;
1045
1046 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.break_uom_code,p_old_PRICE_LIST_LINE_rec.break_uom_code)
1047 THEN
1048 NULL;
1049 END IF;
1050
1051 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.break_uom_context,p_old_PRICE_LIST_LINE_rec.break_uom_context)
1052 THEN
1053 NULL;
1054 END IF;
1055
1056 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.break_uom_attribute,p_old_PRICE_LIST_LINE_rec.break_uom_attribute)
1057 THEN
1058 NULL;
1059 END IF;
1060
1061 IF NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.continuous_price_break_flag,p_old_PRICE_LIST_LINE_rec.continuous_price_break_flag)
1062 THEN
1063 NULL;
1064 END IF;
1065
1066 END Apply_Attribute_Changes;
1067
1068 -- Function Complete_Record
1069
1070 FUNCTION Complete_Record
1071 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
1072 , p_old_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
1073 ) RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
1074 IS
1075 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type := p_PRICE_LIST_LINE_rec;
1076 BEGIN
1077
1078 IF l_PRICE_LIST_LINE_rec.accrual_qty = FND_API.G_MISS_NUM THEN
1079 l_PRICE_LIST_LINE_rec.accrual_qty := p_old_PRICE_LIST_LINE_rec.accrual_qty;
1080 END IF;
1081
1082
1083 IF l_PRICE_LIST_LINE_rec.accrual_uom_code = FND_API.G_MISS_CHAR THEN
1084 l_PRICE_LIST_LINE_rec.accrual_uom_code := p_old_PRICE_LIST_LINE_rec.accrual_uom_code;
1085 END IF;
1086
1087 IF l_PRICE_LIST_LINE_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
1088 l_PRICE_LIST_LINE_rec.arithmetic_operator := p_old_PRICE_LIST_LINE_rec.arithmetic_operator;
1089 END IF;
1090
1091 IF l_PRICE_LIST_LINE_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1092 l_PRICE_LIST_LINE_rec.attribute1 := p_old_PRICE_LIST_LINE_rec.attribute1;
1093 END IF;
1094
1095 IF l_PRICE_LIST_LINE_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1096 l_PRICE_LIST_LINE_rec.attribute10 := p_old_PRICE_LIST_LINE_rec.attribute10;
1097 END IF;
1098
1099 IF l_PRICE_LIST_LINE_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1100 l_PRICE_LIST_LINE_rec.attribute11 := p_old_PRICE_LIST_LINE_rec.attribute11;
1101 END IF;
1102
1103 IF l_PRICE_LIST_LINE_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1104 l_PRICE_LIST_LINE_rec.attribute12 := p_old_PRICE_LIST_LINE_rec.attribute12;
1105 END IF;
1106
1107 IF l_PRICE_LIST_LINE_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1108 l_PRICE_LIST_LINE_rec.attribute13 := p_old_PRICE_LIST_LINE_rec.attribute13;
1109 END IF;
1110
1111 IF l_PRICE_LIST_LINE_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1112 l_PRICE_LIST_LINE_rec.attribute14 := p_old_PRICE_LIST_LINE_rec.attribute14;
1113 END IF;
1114
1115 IF l_PRICE_LIST_LINE_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1116 l_PRICE_LIST_LINE_rec.attribute15 := p_old_PRICE_LIST_LINE_rec.attribute15;
1117 END IF;
1118
1119 IF l_PRICE_LIST_LINE_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1120 l_PRICE_LIST_LINE_rec.attribute2 := p_old_PRICE_LIST_LINE_rec.attribute2;
1121 END IF;
1122
1123 IF l_PRICE_LIST_LINE_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1124 l_PRICE_LIST_LINE_rec.attribute3 := p_old_PRICE_LIST_LINE_rec.attribute3;
1125 END IF;
1126
1127 IF l_PRICE_LIST_LINE_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1128 l_PRICE_LIST_LINE_rec.attribute4 := p_old_PRICE_LIST_LINE_rec.attribute4;
1129 END IF;
1130
1131 IF l_PRICE_LIST_LINE_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1132 l_PRICE_LIST_LINE_rec.attribute5 := p_old_PRICE_LIST_LINE_rec.attribute5;
1133 END IF;
1134
1135 IF l_PRICE_LIST_LINE_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1136 l_PRICE_LIST_LINE_rec.attribute6 := p_old_PRICE_LIST_LINE_rec.attribute6;
1137 END IF;
1138
1139 IF l_PRICE_LIST_LINE_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1140 l_PRICE_LIST_LINE_rec.attribute7 := p_old_PRICE_LIST_LINE_rec.attribute7;
1141 END IF;
1142
1143 IF l_PRICE_LIST_LINE_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1144 l_PRICE_LIST_LINE_rec.attribute8 := p_old_PRICE_LIST_LINE_rec.attribute8;
1145 END IF;
1146
1147 IF l_PRICE_LIST_LINE_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1148 l_PRICE_LIST_LINE_rec.attribute9 := p_old_PRICE_LIST_LINE_rec.attribute9;
1149 END IF;
1150
1151 IF l_PRICE_LIST_LINE_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1152 l_PRICE_LIST_LINE_rec.automatic_flag := p_old_PRICE_LIST_LINE_rec.automatic_flag;
1153 END IF;
1154
1155 IF l_PRICE_LIST_LINE_rec.base_qty = FND_API.G_MISS_NUM THEN
1156 l_PRICE_LIST_LINE_rec.base_qty := p_old_PRICE_LIST_LINE_rec.base_qty;
1157 END IF;
1158
1159 IF l_PRICE_LIST_LINE_rec.base_uom_code = FND_API.G_MISS_CHAR THEN
1160 l_PRICE_LIST_LINE_rec.base_uom_code := p_old_PRICE_LIST_LINE_rec.base_uom_code;
1161 END IF;
1162
1163 IF l_PRICE_LIST_LINE_rec.comments = FND_API.G_MISS_CHAR THEN
1164 l_PRICE_LIST_LINE_rec.comments := p_old_PRICE_LIST_LINE_rec.comments;
1165 END IF;
1166
1167 IF l_PRICE_LIST_LINE_rec.context = FND_API.G_MISS_CHAR THEN
1168 l_PRICE_LIST_LINE_rec.context := p_old_PRICE_LIST_LINE_rec.context;
1169 END IF;
1170
1171 IF l_PRICE_LIST_LINE_rec.created_by = FND_API.G_MISS_NUM THEN
1172 l_PRICE_LIST_LINE_rec.created_by := p_old_PRICE_LIST_LINE_rec.created_by;
1173 END IF;
1174
1175 IF l_PRICE_LIST_LINE_rec.creation_date = FND_API.G_MISS_DATE THEN
1176 l_PRICE_LIST_LINE_rec.creation_date := p_old_PRICE_LIST_LINE_rec.creation_date;
1177 END IF;
1178
1179 IF l_PRICE_LIST_LINE_rec.effective_period_uom = FND_API.G_MISS_CHAR THEN
1180 l_PRICE_LIST_LINE_rec.effective_period_uom := p_old_PRICE_LIST_LINE_rec.effective_period_uom;
1181 END IF;
1182
1183 IF l_PRICE_LIST_LINE_rec.end_date_active = FND_API.G_MISS_DATE THEN
1184 l_PRICE_LIST_LINE_rec.end_date_active := p_old_PRICE_LIST_LINE_rec.end_date_active;
1185 END IF;
1186
1187 IF l_PRICE_LIST_LINE_rec.estim_accrual_rate = FND_API.G_MISS_NUM THEN
1188 l_PRICE_LIST_LINE_rec.estim_accrual_rate := p_old_PRICE_LIST_LINE_rec.estim_accrual_rate;
1189 END IF;
1190
1191 IF l_PRICE_LIST_LINE_rec.generate_using_formula_id = FND_API.G_MISS_NUM THEN
1192 l_PRICE_LIST_LINE_rec.generate_using_formula_id := p_old_PRICE_LIST_LINE_rec.generate_using_formula_id;
1193 END IF;
1194
1195
1196 IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
1197 l_PRICE_LIST_LINE_rec.inventory_item_id := p_old_PRICE_LIST_LINE_rec.inventory_item_id;
1198 END IF;
1199
1200 IF l_PRICE_LIST_LINE_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1201 l_PRICE_LIST_LINE_rec.last_updated_by := p_old_PRICE_LIST_LINE_rec.last_updated_by;
1202 END IF;
1203
1204 IF l_PRICE_LIST_LINE_rec.last_update_date = FND_API.G_MISS_DATE THEN
1205 l_PRICE_LIST_LINE_rec.last_update_date := p_old_PRICE_LIST_LINE_rec.last_update_date;
1206 END IF;
1207
1208 IF l_PRICE_LIST_LINE_rec.last_update_login = FND_API.G_MISS_NUM THEN
1209 l_PRICE_LIST_LINE_rec.last_update_login := p_old_PRICE_LIST_LINE_rec.last_update_login;
1210 END IF;
1211
1212 IF l_PRICE_LIST_LINE_rec.list_header_id = FND_API.G_MISS_NUM THEN
1213 l_PRICE_LIST_LINE_rec.list_header_id := p_old_PRICE_LIST_LINE_rec.list_header_id;
1214 END IF;
1215
1216 IF l_PRICE_LIST_LINE_rec.list_line_id = FND_API.G_MISS_NUM THEN
1217 l_PRICE_LIST_LINE_rec.list_line_id := p_old_PRICE_LIST_LINE_rec.list_line_id;
1218 END IF;
1219
1220 IF l_PRICE_LIST_LINE_rec.list_line_no = FND_API.G_MISS_CHAR THEN -- bug 4751658, 4199398
1221 l_PRICE_LIST_LINE_rec.list_line_no := p_old_PRICE_LIST_LINE_rec.list_line_no;
1222 END IF;
1223
1224 IF l_PRICE_LIST_LINE_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
1225 l_PRICE_LIST_LINE_rec.list_line_type_code := p_old_PRICE_LIST_LINE_rec.list_line_type_code;
1226 END IF;
1227
1228 IF l_PRICE_LIST_LINE_rec.list_price = FND_API.G_MISS_NUM THEN
1229 l_PRICE_LIST_LINE_rec.list_price := p_old_PRICE_LIST_LINE_rec.list_price;
1230 END IF;
1231
1232 IF l_PRICE_LIST_LINE_rec.from_rltd_modifier_id = FND_API.G_MISS_NUM THEN
1233 l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := p_old_PRICE_LIST_LINE_rec.from_rltd_modifier_id;
1234 END IF;
1235
1236 IF l_PRICE_LIST_LINE_rec.rltd_modifier_group_no = FND_API.G_MISS_NUM THEN
1237 l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := p_old_PRICE_LIST_LINE_rec.rltd_modifier_group_no;
1238 END IF;
1239
1240 IF l_PRICE_LIST_LINE_rec.product_precedence = FND_API.G_MISS_NUM THEN
1241 l_PRICE_LIST_LINE_rec.product_precedence := p_old_PRICE_LIST_LINE_rec.product_precedence;
1242 END IF;
1243
1244 IF l_PRICE_LIST_LINE_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
1245 l_PRICE_LIST_LINE_rec.modifier_level_code := p_old_PRICE_LIST_LINE_rec.modifier_level_code;
1246 END IF;
1247
1248 IF l_PRICE_LIST_LINE_rec.number_effective_periods = FND_API.G_MISS_NUM THEN
1249 l_PRICE_LIST_LINE_rec.number_effective_periods := p_old_PRICE_LIST_LINE_rec.number_effective_periods;
1250 END IF;
1251
1252 IF l_PRICE_LIST_LINE_rec.operand = FND_API.G_MISS_NUM THEN
1253 l_PRICE_LIST_LINE_rec.operand := p_old_PRICE_LIST_LINE_rec.operand;
1254 END IF;
1255
1256 IF l_PRICE_LIST_LINE_rec.organization_id = FND_API.G_MISS_NUM THEN
1257 l_PRICE_LIST_LINE_rec.organization_id := p_old_PRICE_LIST_LINE_rec.organization_id;
1258 END IF;
1259
1260 IF l_PRICE_LIST_LINE_rec.override_flag = FND_API.G_MISS_CHAR THEN
1261 l_PRICE_LIST_LINE_rec.override_flag := p_old_PRICE_LIST_LINE_rec.override_flag;
1262 END IF;
1263
1264 IF l_PRICE_LIST_LINE_rec.percent_price = FND_API.G_MISS_NUM THEN
1265 l_PRICE_LIST_LINE_rec.percent_price := p_old_PRICE_LIST_LINE_rec.percent_price;
1266 END IF;
1267
1268 IF l_PRICE_LIST_LINE_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
1269 l_PRICE_LIST_LINE_rec.price_break_type_code := p_old_PRICE_LIST_LINE_rec.price_break_type_code;
1270 END IF;
1271
1272 IF l_PRICE_LIST_LINE_rec.price_by_formula_id = FND_API.G_MISS_NUM THEN
1273 l_PRICE_LIST_LINE_rec.price_by_formula_id := p_old_PRICE_LIST_LINE_rec.price_by_formula_id;
1274 END IF;
1275
1276 IF l_PRICE_LIST_LINE_rec.primary_uom_flag = FND_API.G_MISS_CHAR THEN
1277 l_PRICE_LIST_LINE_rec.primary_uom_flag := p_old_PRICE_LIST_LINE_rec.primary_uom_flag;
1278 END IF;
1279
1280 IF l_PRICE_LIST_LINE_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
1281 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := p_old_PRICE_LIST_LINE_rec.print_on_invoice_flag;
1282 END IF;
1283
1284 IF l_PRICE_LIST_LINE_rec.program_application_id = FND_API.G_MISS_NUM THEN
1285 l_PRICE_LIST_LINE_rec.program_application_id := p_old_PRICE_LIST_LINE_rec.program_application_id;
1286 END IF;
1287
1288 IF l_PRICE_LIST_LINE_rec.program_id = FND_API.G_MISS_NUM THEN
1289 l_PRICE_LIST_LINE_rec.program_id := p_old_PRICE_LIST_LINE_rec.program_id;
1290 END IF;
1291
1292 IF l_PRICE_LIST_LINE_rec.program_update_date = FND_API.G_MISS_DATE THEN
1293 l_PRICE_LIST_LINE_rec.program_update_date := p_old_PRICE_LIST_LINE_rec.program_update_date;
1294 END IF;
1295
1296 IF l_PRICE_LIST_LINE_rec.rebate_trxn_type_code = FND_API.G_MISS_CHAR THEN
1297 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := p_old_PRICE_LIST_LINE_rec.rebate_trxn_type_code;
1298 END IF;
1299
1300 -- block pricing
1301 IF l_PRICE_LIST_LINE_rec.recurring_value = FND_API.G_MISS_NUM THEN
1302 l_PRICE_LIST_LINE_rec.recurring_value := p_old_PRICE_LIST_LINE_rec.recurring_value;
1303 END IF;
1304
1305 IF l_PRICE_LIST_LINE_rec.related_item_id = FND_API.G_MISS_NUM THEN
1306 l_PRICE_LIST_LINE_rec.related_item_id := p_old_PRICE_LIST_LINE_rec.related_item_id;
1307 END IF;
1308
1309 IF l_PRICE_LIST_LINE_rec.relationship_type_id = FND_API.G_MISS_NUM THEN
1310 l_PRICE_LIST_LINE_rec.relationship_type_id := p_old_PRICE_LIST_LINE_rec.relationship_type_id;
1311 END IF;
1312
1313 IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
1314 l_PRICE_LIST_LINE_rec.reprice_flag := p_old_PRICE_LIST_LINE_rec.reprice_flag;
1315 END IF;
1316
1317 IF l_PRICE_LIST_LINE_rec.request_id = FND_API.G_MISS_NUM THEN
1318 l_PRICE_LIST_LINE_rec.request_id := p_old_PRICE_LIST_LINE_rec.request_id;
1319 END IF;
1320
1321 IF l_PRICE_LIST_LINE_rec.revision = FND_API.G_MISS_CHAR THEN
1322 l_PRICE_LIST_LINE_rec.revision := p_old_PRICE_LIST_LINE_rec.revision;
1323 END IF;
1324
1325 IF l_PRICE_LIST_LINE_rec.revision_date = FND_API.G_MISS_DATE THEN
1326 l_PRICE_LIST_LINE_rec.revision_date := p_old_PRICE_LIST_LINE_rec.revision_date;
1327 END IF;
1328
1329 IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
1330 l_PRICE_LIST_LINE_rec.revision_reason_code := p_old_PRICE_LIST_LINE_rec.revision_reason_code;
1331 END IF;
1332
1333 IF l_PRICE_LIST_LINE_rec.start_date_active = FND_API.G_MISS_DATE THEN
1334 l_PRICE_LIST_LINE_rec.start_date_active := p_old_PRICE_LIST_LINE_rec.start_date_active;
1335 END IF;
1336
1337 IF l_PRICE_LIST_LINE_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
1338 l_PRICE_LIST_LINE_rec.substitution_attribute := p_old_PRICE_LIST_LINE_rec.substitution_attribute;
1339 END IF;
1340
1341 IF l_PRICE_LIST_LINE_rec.substitution_context = FND_API.G_MISS_CHAR THEN
1342 l_PRICE_LIST_LINE_rec.substitution_context := p_old_PRICE_LIST_LINE_rec.substitution_context;
1343 END IF;
1344
1345 IF l_PRICE_LIST_LINE_rec.substitution_value = FND_API.G_MISS_CHAR THEN
1346 l_PRICE_LIST_LINE_rec.substitution_value := p_old_PRICE_LIST_LINE_rec.substitution_value;
1347 END IF;
1348
1349 IF l_PRICE_LIST_LINE_rec.qualification_ind = FND_API.G_MISS_NUM THEN
1350 l_PRICE_LIST_LINE_rec.qualification_ind := p_old_PRICE_LIST_LINE_rec.qualification_ind;
1351 END IF;
1352
1353 IF l_PRICE_LIST_LINE_rec.break_uom_code = FND_API.G_MISS_CHAR THEN
1354 l_PRICE_LIST_LINE_rec.break_uom_code := p_old_PRICE_LIST_LINE_rec.break_uom_code;
1355 END IF;
1356
1357 IF l_PRICE_LIST_LINE_rec.break_uom_context = FND_API.G_MISS_CHAR THEN
1358 l_PRICE_LIST_LINE_rec.break_uom_context := p_old_PRICE_LIST_LINE_rec.break_uom_context;
1359 END IF;
1360
1361 IF l_PRICE_LIST_LINE_rec.break_uom_attribute = FND_API.G_MISS_CHAR THEN
1362 l_PRICE_LIST_LINE_rec.break_uom_attribute := p_old_PRICE_LIST_LINE_rec.break_uom_attribute;
1363 END IF;
1364
1365 IF l_PRICE_LIST_LINE_rec.continuous_price_break_flag = FND_API.G_MISS_CHAR THEN
1366 l_PRICE_LIST_LINE_rec.continuous_price_break_flag := p_old_PRICE_LIST_LINE_rec.continuous_price_break_flag;
1367 END IF;
1368
1369 RETURN l_PRICE_LIST_LINE_rec;
1370
1371 END Complete_Record;
1372
1373 -- Function Convert_Miss_To_Null
1374
1375 FUNCTION Convert_Miss_To_Null
1376 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
1377 ) RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
1378 IS
1379 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type := p_PRICE_LIST_LINE_rec;
1380 BEGIN
1381
1382 IF l_PRICE_LIST_LINE_rec.accrual_qty = FND_API.G_MISS_NUM THEN
1383 l_PRICE_LIST_LINE_rec.accrual_qty := NULL;
1384 END IF;
1385
1386 IF l_PRICE_LIST_LINE_rec.accrual_uom_code = FND_API.G_MISS_CHAR THEN
1387 l_PRICE_LIST_LINE_rec.accrual_uom_code := NULL;
1388 END IF;
1389
1390 IF l_PRICE_LIST_LINE_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
1391 l_PRICE_LIST_LINE_rec.arithmetic_operator := NULL;
1392 END IF;
1393
1394 IF l_PRICE_LIST_LINE_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1395 l_PRICE_LIST_LINE_rec.attribute1 := NULL;
1396 END IF;
1397
1398 IF l_PRICE_LIST_LINE_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1399 l_PRICE_LIST_LINE_rec.attribute10 := NULL;
1400 END IF;
1401
1402 IF l_PRICE_LIST_LINE_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1403 l_PRICE_LIST_LINE_rec.attribute11 := NULL;
1404 END IF;
1405
1406 IF l_PRICE_LIST_LINE_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1407 l_PRICE_LIST_LINE_rec.attribute12 := NULL;
1408 END IF;
1409
1410 IF l_PRICE_LIST_LINE_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1411 l_PRICE_LIST_LINE_rec.attribute13 := NULL;
1412 END IF;
1413
1414 IF l_PRICE_LIST_LINE_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1415 l_PRICE_LIST_LINE_rec.attribute14 := NULL;
1416 END IF;
1417
1418 IF l_PRICE_LIST_LINE_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1419 l_PRICE_LIST_LINE_rec.attribute15 := NULL;
1420 END IF;
1421
1422 IF l_PRICE_LIST_LINE_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1423 l_PRICE_LIST_LINE_rec.attribute2 := NULL;
1424 END IF;
1425
1426 IF l_PRICE_LIST_LINE_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1427 l_PRICE_LIST_LINE_rec.attribute3 := NULL;
1428 END IF;
1429
1430 IF l_PRICE_LIST_LINE_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1431 l_PRICE_LIST_LINE_rec.attribute4 := NULL;
1432 END IF;
1433
1434 IF l_PRICE_LIST_LINE_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1435 l_PRICE_LIST_LINE_rec.attribute5 := NULL;
1436 END IF;
1437
1438 IF l_PRICE_LIST_LINE_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1439 l_PRICE_LIST_LINE_rec.attribute6 := NULL;
1440 END IF;
1441
1442 IF l_PRICE_LIST_LINE_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1443 l_PRICE_LIST_LINE_rec.attribute7 := NULL;
1444 END IF;
1445
1446 IF l_PRICE_LIST_LINE_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1447 l_PRICE_LIST_LINE_rec.attribute8 := NULL;
1448 END IF;
1449
1450 IF l_PRICE_LIST_LINE_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1451 l_PRICE_LIST_LINE_rec.attribute9 := NULL;
1452 END IF;
1453
1454 IF l_PRICE_LIST_LINE_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1455 l_PRICE_LIST_LINE_rec.automatic_flag := NULL;
1456 END IF;
1457
1458 IF l_PRICE_LIST_LINE_rec.base_qty = FND_API.G_MISS_NUM THEN
1459 l_PRICE_LIST_LINE_rec.base_qty := NULL;
1460 END IF;
1461
1462 IF l_PRICE_LIST_LINE_rec.base_uom_code = FND_API.G_MISS_CHAR THEN
1463 l_PRICE_LIST_LINE_rec.base_uom_code := NULL;
1464 END IF;
1465
1466 IF l_PRICE_LIST_LINE_rec.comments = FND_API.G_MISS_CHAR THEN
1467 l_PRICE_LIST_LINE_rec.comments := NULL;
1468 END IF;
1469
1470 IF l_PRICE_LIST_LINE_rec.context = FND_API.G_MISS_CHAR THEN
1471 l_PRICE_LIST_LINE_rec.context := NULL;
1472 END IF;
1473
1474 IF l_PRICE_LIST_LINE_rec.created_by = FND_API.G_MISS_NUM THEN
1475 l_PRICE_LIST_LINE_rec.created_by := NULL;
1476 END IF;
1477
1478 IF l_PRICE_LIST_LINE_rec.creation_date = FND_API.G_MISS_DATE THEN
1479 l_PRICE_LIST_LINE_rec.creation_date := NULL;
1480 END IF;
1481
1482 IF l_PRICE_LIST_LINE_rec.effective_period_uom = FND_API.G_MISS_CHAR THEN
1483 l_PRICE_LIST_LINE_rec.effective_period_uom := NULL;
1484 END IF;
1485
1486 IF l_PRICE_LIST_LINE_rec.end_date_active = FND_API.G_MISS_DATE THEN
1487 l_PRICE_LIST_LINE_rec.end_date_active := NULL;
1488 END IF;
1489
1490 IF l_PRICE_LIST_LINE_rec.estim_accrual_rate = FND_API.G_MISS_NUM THEN
1491 l_PRICE_LIST_LINE_rec.estim_accrual_rate := NULL;
1492 END IF;
1493
1494 IF l_PRICE_LIST_LINE_rec.generate_using_formula_id = FND_API.G_MISS_NUM THEN
1495 l_PRICE_LIST_LINE_rec.generate_using_formula_id := NULL;
1496 END IF;
1497
1498 IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
1499 l_PRICE_LIST_LINE_rec.inventory_item_id := NULL;
1500 END IF;
1501
1502 IF l_PRICE_LIST_LINE_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1503 l_PRICE_LIST_LINE_rec.last_updated_by := NULL;
1504 END IF;
1505
1506 IF l_PRICE_LIST_LINE_rec.last_update_date = FND_API.G_MISS_DATE THEN
1507 l_PRICE_LIST_LINE_rec.last_update_date := NULL;
1508 END IF;
1509
1510 IF l_PRICE_LIST_LINE_rec.last_update_login = FND_API.G_MISS_NUM THEN
1511 l_PRICE_LIST_LINE_rec.last_update_login := NULL;
1512 END IF;
1513
1514 IF l_PRICE_LIST_LINE_rec.list_header_id = FND_API.G_MISS_NUM THEN
1515 l_PRICE_LIST_LINE_rec.list_header_id := NULL;
1516 END IF;
1517
1518 IF l_PRICE_LIST_LINE_rec.list_line_id = FND_API.G_MISS_NUM THEN
1519 l_PRICE_LIST_LINE_rec.list_line_id := NULL;
1520 END IF;
1521
1522 IF l_PRICE_LIST_LINE_rec.list_line_no = FND_API.G_MISS_CHAR THEN -- bug 4751658, 4199398
1523 l_PRICE_LIST_LINE_rec.list_line_no := NULL;
1524 END IF;
1525
1526 IF l_PRICE_LIST_LINE_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
1527 l_PRICE_LIST_LINE_rec.list_line_type_code := NULL;
1528 END IF;
1529
1530 IF l_PRICE_LIST_LINE_rec.list_price = FND_API.G_MISS_NUM THEN
1531 l_PRICE_LIST_LINE_rec.list_price := NULL;
1532 END IF;
1533
1534 IF l_PRICE_LIST_LINE_rec.from_rltd_modifier_id = FND_API.G_MISS_NUM THEN
1535 l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := NULL;
1536 END IF;
1537
1538 IF l_PRICE_LIST_LINE_rec.rltd_modifier_group_no = FND_API.G_MISS_NUM THEN
1539 l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := NULL;
1540 END IF;
1541
1542 IF l_PRICE_LIST_LINE_rec.product_precedence = FND_API.G_MISS_NUM THEN
1543 l_PRICE_LIST_LINE_rec.product_precedence := NULL;
1544 END IF;
1545
1546 IF l_PRICE_LIST_LINE_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
1547 l_PRICE_LIST_LINE_rec.modifier_level_code := NULL;
1548 END IF;
1549
1550 IF l_PRICE_LIST_LINE_rec.number_effective_periods = FND_API.G_MISS_NUM THEN
1551 l_PRICE_LIST_LINE_rec.number_effective_periods := NULL;
1552 END IF;
1553
1554 IF l_PRICE_LIST_LINE_rec.operand = FND_API.G_MISS_NUM THEN
1555 l_PRICE_LIST_LINE_rec.operand := NULL;
1556 END IF;
1557
1558 IF l_PRICE_LIST_LINE_rec.organization_id = FND_API.G_MISS_NUM THEN
1559 l_PRICE_LIST_LINE_rec.organization_id := NULL;
1560 END IF;
1561
1562 IF l_PRICE_LIST_LINE_rec.override_flag = FND_API.G_MISS_CHAR THEN
1563 l_PRICE_LIST_LINE_rec.override_flag := NULL;
1564 END IF;
1565
1566 IF l_PRICE_LIST_LINE_rec.percent_price = FND_API.G_MISS_NUM THEN
1567 l_PRICE_LIST_LINE_rec.percent_price := NULL;
1568 END IF;
1569
1570 IF l_PRICE_LIST_LINE_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
1571 l_PRICE_LIST_LINE_rec.price_break_type_code := NULL;
1572 END IF;
1573
1574 IF l_PRICE_LIST_LINE_rec.price_by_formula_id = FND_API.G_MISS_NUM THEN
1575 l_PRICE_LIST_LINE_rec.price_by_formula_id := NULL;
1576 END IF;
1577
1578 IF l_PRICE_LIST_LINE_rec.primary_uom_flag = FND_API.G_MISS_CHAR THEN
1579 l_PRICE_LIST_LINE_rec.primary_uom_flag := NULL;
1580 END IF;
1581
1582 IF l_PRICE_LIST_LINE_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
1583 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := NULL;
1584 END IF;
1585
1586 IF l_PRICE_LIST_LINE_rec.program_application_id = FND_API.G_MISS_NUM THEN
1587 l_PRICE_LIST_LINE_rec.program_application_id := NULL;
1588 END IF;
1589
1590 IF l_PRICE_LIST_LINE_rec.program_id = FND_API.G_MISS_NUM THEN
1591 l_PRICE_LIST_LINE_rec.program_id := NULL;
1592 END IF;
1593
1594 IF l_PRICE_LIST_LINE_rec.program_update_date = FND_API.G_MISS_DATE THEN
1595 l_PRICE_LIST_LINE_rec.program_update_date := NULL;
1596 END IF;
1597
1598 IF l_PRICE_LIST_LINE_rec.rebate_trxn_type_code = FND_API.G_MISS_CHAR THEN
1599 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := NULL;
1600 END IF;
1601
1602 -- block pricing
1603 IF l_PRICE_LIST_LINE_rec.recurring_value = FND_API.G_MISS_NUM THEN
1604 l_PRICE_LIST_LINE_rec.recurring_value := NULL;
1605 END IF;
1606
1607 IF l_PRICE_LIST_LINE_rec.related_item_id = FND_API.G_MISS_NUM THEN
1608 l_PRICE_LIST_LINE_rec.related_item_id := NULL;
1609 END IF;
1610
1611 IF l_PRICE_LIST_LINE_rec.relationship_type_id = FND_API.G_MISS_NUM THEN
1612 l_PRICE_LIST_LINE_rec.relationship_type_id := NULL;
1613 END IF;
1614
1615 IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
1616 l_PRICE_LIST_LINE_rec.reprice_flag := NULL;
1617 END IF;
1618
1619 IF l_PRICE_LIST_LINE_rec.request_id = FND_API.G_MISS_NUM THEN
1620 l_PRICE_LIST_LINE_rec.request_id := NULL;
1621 END IF;
1622
1623 IF l_PRICE_LIST_LINE_rec.revision = FND_API.G_MISS_CHAR THEN
1624 l_PRICE_LIST_LINE_rec.revision := NULL;
1625 END IF;
1626
1627 IF l_PRICE_LIST_LINE_rec.revision_date = FND_API.G_MISS_DATE THEN
1628 l_PRICE_LIST_LINE_rec.revision_date := NULL;
1629 END IF;
1630
1631 IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
1632 l_PRICE_LIST_LINE_rec.revision_reason_code := NULL;
1633 END IF;
1634
1635 IF l_PRICE_LIST_LINE_rec.start_date_active = FND_API.G_MISS_DATE THEN
1636 l_PRICE_LIST_LINE_rec.start_date_active := NULL;
1637 END IF;
1638
1639 IF l_PRICE_LIST_LINE_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
1640 l_PRICE_LIST_LINE_rec.substitution_attribute := NULL;
1641 END IF;
1642
1643 IF l_PRICE_LIST_LINE_rec.substitution_context = FND_API.G_MISS_CHAR THEN
1644 l_PRICE_LIST_LINE_rec.substitution_context := NULL;
1645 END IF;
1646
1647 IF l_PRICE_LIST_LINE_rec.substitution_value = FND_API.G_MISS_CHAR THEN
1648 l_PRICE_LIST_LINE_rec.substitution_value := NULL;
1649 END IF;
1650
1651 IF l_PRICE_LIST_LINE_rec.qualification_ind = FND_API.G_MISS_NUM THEN
1652 l_PRICE_LIST_LINE_rec.qualification_ind := NULL;
1653 END IF;
1654
1655 IF l_PRICE_LIST_LINE_rec.break_uom_code = FND_API.G_MISS_CHAR THEN
1656 l_PRICE_LIST_LINE_rec.break_uom_code := NULL;
1657 END IF;
1658
1659 IF l_PRICE_LIST_LINE_rec.break_uom_context = FND_API.G_MISS_CHAR THEN
1660 l_PRICE_LIST_LINE_rec.break_uom_context := NULL;
1661 END IF;
1662
1663 IF l_PRICE_LIST_LINE_rec.break_uom_attribute = FND_API.G_MISS_CHAR THEN
1664 l_PRICE_LIST_LINE_rec.break_uom_attribute := NULL;
1665 END IF;
1666
1667 IF l_PRICE_LIST_LINE_rec.continuous_price_break_flag = FND_API.G_MISS_CHAR THEN
1668 l_PRICE_LIST_LINE_rec.continuous_price_break_flag := NULL;
1669 END IF;
1670
1671 RETURN l_PRICE_LIST_LINE_rec;
1672
1673 END Convert_Miss_To_Null;
1674
1675 -- Procedure Update_Row
1676
1677 -- Added for Enhancement 1732601
1678
1679 FUNCTION Round_List_Price(p_price_list_header_id IN NUMBER)
1680 RETURN NUMBER
1681 IS
1682 l_rounding_factor NUMBER;
1683
1684 BEGIN
1685 BEGIN
1686 select rounding_factor
1687 into l_rounding_factor
1688 from qp_list_headers_b
1689 where list_header_id =p_price_list_header_id;
1690 EXCEPTION
1691 WHEN OTHERS THEN
1692 l_rounding_factor := -2;
1693 END;
1694 Return l_rounding_factor;
1695 END Round_List_Price;
1696
1697 PROCEDURE Update_Row
1698 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
1699 )
1700 IS
1701 l_operand NUMBER;
1702 l_check_active_flag VARCHAR2(1); /* Proration */
1703 l_active_flag VARCHAR2(1); /* Proration */
1704 BEGIN
1705 /* Added for Enhancement 1732601 */
1706 IF fnd_profile.value('QP_PRICE_ROUNDING') IS NOT NULL THEN
1707 l_operand := round(p_PRICE_LIST_LINE_rec.operand,-1*Round_List_Price(p_PRICE_LIST_LINE_rec.list_header_id));
1708 ELSE
1709 l_operand := p_PRICE_LIST_LINE_rec.operand;
1710 END IF;
1711
1712 /* Proration Start */
1713 BEGIN
1714 SELECT ACTIVE_FLAG
1715 INTO l_active_flag
1716 FROM QP_LIST_HEADERS_B
1717 WHERE list_header_id=p_PRICE_LIST_LINE_rec.list_header_id;
1718 EXCEPTION
1719 WHEN OTHERS THEN
1720 NULL;
1721 END;
1722 /* Proration End */
1723
1724 UPDATE QP_LIST_LINES
1725 SET ACCRUAL_QTY = p_PRICE_LIST_LINE_rec.accrual_qty
1726 , ACCRUAL_UOM_CODE = p_PRICE_LIST_LINE_rec.accrual_uom_code
1727 , ARITHMETIC_OPERATOR = p_PRICE_LIST_LINE_rec.arithmetic_operator
1728 , ATTRIBUTE1 = p_PRICE_LIST_LINE_rec.attribute1
1729 , ATTRIBUTE10 = p_PRICE_LIST_LINE_rec.attribute10
1730 , ATTRIBUTE11 = p_PRICE_LIST_LINE_rec.attribute11
1731 , ATTRIBUTE12 = p_PRICE_LIST_LINE_rec.attribute12
1732 , ATTRIBUTE13 = p_PRICE_LIST_LINE_rec.attribute13
1733 , ATTRIBUTE14 = p_PRICE_LIST_LINE_rec.attribute14
1734 , ATTRIBUTE15 = p_PRICE_LIST_LINE_rec.attribute15
1735 , ATTRIBUTE2 = p_PRICE_LIST_LINE_rec.attribute2
1736 , ATTRIBUTE3 = p_PRICE_LIST_LINE_rec.attribute3
1737 , ATTRIBUTE4 = p_PRICE_LIST_LINE_rec.attribute4
1738 , ATTRIBUTE5 = p_PRICE_LIST_LINE_rec.attribute5
1739 , ATTRIBUTE6 = p_PRICE_LIST_LINE_rec.attribute6
1740 , ATTRIBUTE7 = p_PRICE_LIST_LINE_rec.attribute7
1741 , ATTRIBUTE8 = p_PRICE_LIST_LINE_rec.attribute8
1742 , ATTRIBUTE9 = p_PRICE_LIST_LINE_rec.attribute9
1743 , AUTOMATIC_FLAG = p_PRICE_LIST_LINE_rec.automatic_flag
1744 , BASE_QTY = p_PRICE_LIST_LINE_rec.base_qty
1745 , BASE_UOM_CODE = p_PRICE_LIST_LINE_rec.base_uom_code
1746 , COMMENTS = p_PRICE_LIST_LINE_rec.comments
1747 , CONTEXT = p_PRICE_LIST_LINE_rec.context
1748 , CREATED_BY = p_PRICE_LIST_LINE_rec.created_by
1749 , CREATION_DATE = p_PRICE_LIST_LINE_rec.creation_date
1750 , EFFECTIVE_PERIOD_UOM = p_PRICE_LIST_LINE_rec.effective_period_uom
1751 , END_DATE_ACTIVE = trunc(p_PRICE_LIST_LINE_rec.end_date_active)
1752 , ESTIM_ACCRUAL_RATE = p_PRICE_LIST_LINE_rec.estim_accrual_rate
1753 , GENERATE_USING_FORMULA_ID = p_PRICE_LIST_LINE_rec.generate_using_formula_id
1754 , INVENTORY_ITEM_ID = p_PRICE_LIST_LINE_rec.inventory_item_id
1755 , LAST_UPDATED_BY = p_PRICE_LIST_LINE_rec.last_updated_by
1756 , LAST_UPDATE_DATE = p_PRICE_LIST_LINE_rec.last_update_date
1757 , LAST_UPDATE_LOGIN = p_PRICE_LIST_LINE_rec.last_update_login
1758 , LIST_HEADER_ID = p_PRICE_LIST_LINE_rec.list_header_id
1759 , LIST_LINE_ID = p_PRICE_LIST_LINE_rec.list_line_id
1760 , LIST_LINE_NO = p_PRICE_LIST_LINE_rec.list_line_no
1761 , LIST_LINE_TYPE_CODE = p_PRICE_LIST_LINE_rec.list_line_type_code
1762 , LIST_PRICE = p_PRICE_LIST_LINE_rec.list_price
1763 , PRODUCT_PRECEDENCE = p_PRICE_LIST_LINE_rec.product_precedence
1764 , MODIFIER_LEVEL_CODE = p_PRICE_LIST_LINE_rec.modifier_level_code
1765 , NUMBER_EFFECTIVE_PERIODS = p_PRICE_LIST_LINE_rec.number_effective_periods
1766 --, OPERAND = p_PRICE_LIST_LINE_rec.operand
1767 , OPERAND = l_operand --Modified for Enhancement 1732601
1768 , ORGANIZATION_ID = p_PRICE_LIST_LINE_rec.organization_id
1769 , OVERRIDE_FLAG = p_PRICE_LIST_LINE_rec.override_flag
1770 , PERCENT_PRICE = p_PRICE_LIST_LINE_rec.percent_price
1771 , PRICE_BREAK_TYPE_CODE = p_PRICE_LIST_LINE_rec.price_break_type_code
1772 , PRICE_BY_FORMULA_ID = p_PRICE_LIST_LINE_rec.price_by_formula_id
1773 , PRIMARY_UOM_FLAG = p_PRICE_LIST_LINE_rec.primary_uom_flag
1774 , PRINT_ON_INVOICE_FLAG = p_PRICE_LIST_LINE_rec.print_on_invoice_flag
1775 , PROGRAM_APPLICATION_ID = p_PRICE_LIST_LINE_rec.program_application_id
1776 , PROGRAM_ID = p_PRICE_LIST_LINE_rec.program_id
1777 , PROGRAM_UPDATE_DATE = p_PRICE_LIST_LINE_rec.program_update_date
1778 , REBATE_TRANSACTION_TYPE_CODE = p_PRICE_LIST_LINE_rec.rebate_trxn_type_code
1779 , RELATED_ITEM_ID = p_PRICE_LIST_LINE_rec.related_item_id
1780 , RELATIONSHIP_TYPE_ID = p_PRICE_LIST_LINE_rec.relationship_type_id
1781 , REPRICE_FLAG = p_PRICE_LIST_LINE_rec.reprice_flag
1782 , REQUEST_ID = p_PRICE_LIST_LINE_rec.request_id
1783 , REVISION = p_PRICE_LIST_LINE_rec.revision
1784 , REVISION_DATE = trunc(p_PRICE_LIST_LINE_rec.revision_date)
1785 , REVISION_REASON_CODE = p_PRICE_LIST_LINE_rec.revision_reason_code
1786 , START_DATE_ACTIVE = trunc(p_PRICE_LIST_LINE_rec.start_date_active)
1787 , SUBSTITUTION_ATTRIBUTE = p_PRICE_LIST_LINE_rec.substitution_attribute
1788 , SUBSTITUTION_CONTEXT = p_PRICE_LIST_LINE_rec.substitution_context
1789 , SUBSTITUTION_VALUE = p_PRICE_LIST_LINE_rec.substitution_value
1790 , PRICING_GROUP_SEQUENCE = 0
1791 , PRICING_PHASE_ID = 1
1792 , INCOMPATIBILITY_GRP_CODE = 'EXCL'
1793 , QUALIFICATION_IND = p_PRICE_LIST_LINE_rec.qualification_ind
1794 , RECURRING_VALUE = p_PRICE_LIST_LINE_rec.recurring_value -- block pricing
1795 , CUSTOMER_ITEM_ID = p_PRICE_LIST_LINE_rec.customer_item_id
1796 , BREAK_UOM_CODE = p_PRICE_LIST_LINE_rec.break_uom_code -- OKS proration
1797 , BREAK_UOM_CONTEXT = p_PRICE_LIST_LINE_rec.break_uom_context -- OKS
1798 , BREAK_UOM_ATTRIBUTE = p_PRICE_LIST_LINE_rec.break_uom_attribute -- OKS proration
1799 , CONTINUOUS_PRICE_BREAK_FLAG = p_PRICE_LIST_LINE_rec.continuous_price_break_flag
1800 -- Continuous price breaks
1801 WHERE LIST_LINE_ID = p_PRICE_LIST_LINE_rec.list_line_id
1802 ;
1803
1804 /* Proration Start */
1805 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1806 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1807 IF(p_PRICE_LIST_LINE_rec.break_uom_context IS NOT NULL) AND
1808 (p_PRICE_LIST_LINE_rec.break_uom_attribute IS NOT NULL) THEN
1809
1810 UPDATE qp_pte_segments set used_in_setup='Y'
1811 WHERE nvl(used_in_setup,'N')='N'
1812 AND segment_id IN
1813 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1814 WHERE a.segment_mapping_column=p_PRICE_LIST_LINE_rec.break_uom_attribute
1815 AND a.prc_context_id=b.prc_context_id
1816 AND b.prc_context_type = 'PRICING_ATTRIBUTE'
1817 AND b.prc_context_code=p_PRICE_LIST_LINE_rec.break_uom_context);
1818
1819 END IF;
1820 END IF;
1821 /* Proration End */
1822
1823 EXCEPTION
1824
1825 WHEN OTHERS THEN
1826
1827 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1828 THEN
1829 oe_msg_pub.Add_Exc_Msg
1830 ( G_PKG_NAME
1831 , 'Update_Row'
1832 );
1833 END IF;
1834
1835 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1836
1837 END Update_Row;
1838
1839 -- Procedure Insert_Row
1840
1841 PROCEDURE Insert_Row
1842 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
1843 )
1844 IS
1845 l_return_status varchar2(30);
1846 l_operand NUMBER;
1847 l_check_active_flag VARCHAR2(1); /* Proration */
1848 l_active_flag VARCHAR2(1); /* Proration */
1849
1850 BEGIN
1851
1852 /* Added for Enhancement 1732601 */
1853 IF fnd_profile.value('QP_PRICE_ROUNDING') IS NOT NULL THEN
1854 l_operand := round(p_PRICE_LIST_LINE_rec.operand,-1*Round_List_Price(p_PRICE_LIST_LINE_rec.list_header_id));
1855 ELSE
1856 l_operand := p_PRICE_LIST_LINE_rec.operand;
1857 END IF;
1858
1859 /* pricing group sequence = 0, pricing_phase_id = 1 - list line price */
1860
1861 /* Proration Start */
1862 begin
1863 SELECT ACTIVE_FLAG
1864 INTO l_active_flag
1865 FROM QP_LIST_HEADERS_B
1866 WHERE list_header_id=p_PRICE_LIST_LINE_rec.list_header_id;
1867 exception
1868 when others then
1869 null;
1870 end;
1871
1872 /* Proration End */
1873
1874 INSERT INTO QP_LIST_LINES
1875 ( ACCRUAL_QTY
1876 , ACCRUAL_UOM_CODE
1877 , ARITHMETIC_OPERATOR
1878 , ATTRIBUTE1
1879 , ATTRIBUTE10
1880 , ATTRIBUTE11
1881 , ATTRIBUTE12
1882 , ATTRIBUTE13
1883 , ATTRIBUTE14
1884 , ATTRIBUTE15
1885 , ATTRIBUTE2
1886 , ATTRIBUTE3
1887 , ATTRIBUTE4
1888 , ATTRIBUTE5
1889 , ATTRIBUTE6
1890 , ATTRIBUTE7
1891 , ATTRIBUTE8
1892 , ATTRIBUTE9
1893 , AUTOMATIC_FLAG
1894 , BASE_QTY
1895 , BASE_UOM_CODE
1896 , COMMENTS
1897 , CONTEXT
1898 , CREATED_BY
1899 , CREATION_DATE
1900 , EFFECTIVE_PERIOD_UOM
1901 , END_DATE_ACTIVE
1902 , ESTIM_ACCRUAL_RATE
1903 , GENERATE_USING_FORMULA_ID
1904 , INVENTORY_ITEM_ID
1905 , LAST_UPDATED_BY
1906 , LAST_UPDATE_DATE
1907 , LAST_UPDATE_LOGIN
1908 , LIST_HEADER_ID
1909 , LIST_LINE_ID
1910 , LIST_LINE_NO
1911 , LIST_LINE_TYPE_CODE
1912 , LIST_PRICE
1913 , PRODUCT_PRECEDENCE
1914 , MODIFIER_LEVEL_CODE
1915 , NUMBER_EFFECTIVE_PERIODS
1916 , OPERAND
1917 , ORGANIZATION_ID
1918 , OVERRIDE_FLAG
1919 , PERCENT_PRICE
1920 , PRICE_BREAK_TYPE_CODE
1921 , PRICE_BY_FORMULA_ID
1922 , PRIMARY_UOM_FLAG
1923 , PRINT_ON_INVOICE_FLAG
1924 , PROGRAM_APPLICATION_ID
1925 , PROGRAM_ID
1926 , PROGRAM_UPDATE_DATE
1927 , REBATE_TRANSACTION_TYPE_CODE
1928 , RELATED_ITEM_ID
1929 , RELATIONSHIP_TYPE_ID
1930 , REPRICE_FLAG
1931 , REQUEST_ID
1932 , REVISION
1933 , REVISION_DATE
1934 , REVISION_REASON_CODE
1935 , START_DATE_ACTIVE
1936 , SUBSTITUTION_ATTRIBUTE
1937 , SUBSTITUTION_CONTEXT
1938 , SUBSTITUTION_VALUE
1939 , PRICING_GROUP_SEQUENCE
1940 , PRICING_PHASE_ID
1941 , INCOMPATIBILITY_GRP_CODE
1942 , QUALIFICATION_IND
1943 , RECURRING_VALUE -- block pricing
1944 , CUSTOMER_ITEM_ID
1945 , BREAK_UOM_CODE -- OKS proration
1946 , BREAK_UOM_CONTEXT -- OKS proration
1947 , BREAK_UOM_ATTRIBUTE -- OKS proration
1948 , CONTINUOUS_PRICE_BREAK_FLAG -- Continuous price breaks
1949 --ENH Upgrade BOAPI for orig_sys...ref RAVI
1950 ,orig_sys_line_ref
1951 ,ORIG_SYS_HEADER_REF
1952 )
1953 VALUES
1954 ( p_PRICE_LIST_LINE_rec.accrual_qty
1955 , p_PRICE_LIST_LINE_rec.accrual_uom_code
1956 , p_PRICE_LIST_LINE_rec.arithmetic_operator
1957 , p_PRICE_LIST_LINE_rec.attribute1
1958 , p_PRICE_LIST_LINE_rec.attribute10
1959 , p_PRICE_LIST_LINE_rec.attribute11
1960 , p_PRICE_LIST_LINE_rec.attribute12
1961 , p_PRICE_LIST_LINE_rec.attribute13
1962 , p_PRICE_LIST_LINE_rec.attribute14
1963 , p_PRICE_LIST_LINE_rec.attribute15
1964 , p_PRICE_LIST_LINE_rec.attribute2
1965 , p_PRICE_LIST_LINE_rec.attribute3
1966 , p_PRICE_LIST_LINE_rec.attribute4
1967 , p_PRICE_LIST_LINE_rec.attribute5
1968 , p_PRICE_LIST_LINE_rec.attribute6
1969 , p_PRICE_LIST_LINE_rec.attribute7
1970 , p_PRICE_LIST_LINE_rec.attribute8
1971 , p_PRICE_LIST_LINE_rec.attribute9
1972 , p_PRICE_LIST_LINE_rec.automatic_flag
1973 , p_PRICE_LIST_LINE_rec.base_qty
1974 , p_PRICE_LIST_LINE_rec.base_uom_code
1975 , p_PRICE_LIST_LINE_rec.comments
1976 , p_PRICE_LIST_LINE_rec.context
1977 , p_PRICE_LIST_LINE_rec.created_by
1978 , p_PRICE_LIST_LINE_rec.creation_date
1979 , p_PRICE_LIST_LINE_rec.effective_period_uom
1980 , trunc(p_PRICE_LIST_LINE_rec.end_date_active)
1981 , p_PRICE_LIST_LINE_rec.estim_accrual_rate
1982 , p_PRICE_LIST_LINE_rec.generate_using_formula_id
1983 , p_PRICE_LIST_LINE_rec.inventory_item_id
1984 , p_PRICE_LIST_LINE_rec.last_updated_by
1985 , p_PRICE_LIST_LINE_rec.last_update_date
1986 , p_PRICE_LIST_LINE_rec.last_update_login
1987 , p_PRICE_LIST_LINE_rec.list_header_id
1988 , p_PRICE_LIST_LINE_rec.list_line_id
1989 , p_PRICE_LIST_LINE_rec.list_line_no
1990 , p_PRICE_LIST_LINE_rec.list_line_type_code
1991 , p_PRICE_LIST_LINE_rec.list_price
1992 , p_PRICE_LIST_LINE_rec.product_precedence
1993 , p_PRICE_LIST_LINE_rec.modifier_level_code
1994 , p_PRICE_LIST_LINE_rec.number_effective_periods
1995 -- , p_PRICE_LIST_LINE_rec.operand
1996 , l_operand --Modified for 1732601
1997 , p_PRICE_LIST_LINE_rec.organization_id
1998 , p_PRICE_LIST_LINE_rec.override_flag
1999 , p_PRICE_LIST_LINE_rec.percent_price
2000 , p_PRICE_LIST_LINE_rec.price_break_type_code
2001 , p_PRICE_LIST_LINE_rec.price_by_formula_id
2002 , p_PRICE_LIST_LINE_rec.primary_uom_flag
2003 , p_PRICE_LIST_LINE_rec.print_on_invoice_flag
2004 , p_PRICE_LIST_LINE_rec.program_application_id
2005 , p_PRICE_LIST_LINE_rec.program_id
2006 , p_PRICE_LIST_LINE_rec.program_update_date
2007 , p_PRICE_LIST_LINE_rec.rebate_trxn_type_code
2008 , p_PRICE_LIST_LINE_rec.related_item_id
2009 , p_PRICE_LIST_LINE_rec.relationship_type_id
2010 , p_PRICE_LIST_LINE_rec.reprice_flag
2011 , p_PRICE_LIST_LINE_rec.request_id
2012 , p_PRICE_LIST_LINE_rec.revision
2013 , trunc(p_PRICE_LIST_LINE_rec.revision_date)
2014 , p_PRICE_LIST_LINE_rec.revision_reason_code
2015 , trunc(p_PRICE_LIST_LINE_rec.start_date_active)
2016 , p_PRICE_LIST_LINE_rec.substitution_attribute
2017 , p_PRICE_LIST_LINE_rec.substitution_context
2018 , p_PRICE_LIST_LINE_rec.substitution_value
2019 , 0
2020 , 1
2021 , 'EXCL'
2022 , p_PRICE_LIST_LINE_rec.qualification_ind --Euro Bug 2138996
2023 , p_PRICE_LIST_LINE_rec.recurring_value -- block pricing
2024 , p_PRICE_LIST_LINE_rec.customer_item_id
2025 , p_PRICE_LIST_LINE_rec.break_uom_code -- OKS proration
2026 , p_PRICE_LIST_LINE_rec.break_uom_context -- OKS
2027 , p_PRICE_LIST_LINE_rec.break_uom_attribute -- OKS proration
2028 , p_PRICE_LIST_LINE_rec.continuous_price_break_flag -- Continuous price breaks
2029 --ENH Upgrade BOAPI for orig_sys...ref RAVI
2030 ,to_char(p_PRICE_LIST_LINE_rec.list_line_id)
2031 ,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_PRICE_LIST_LINE_rec.list_header_id)
2032 );
2033 /* Added delayed request by dhgupta for bug 2018275 */
2034
2035 qp_delayed_requests_PVT.log_request(
2036 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2037 p_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
2038 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_ALL,
2039 p_requesting_entity_id => p_PRICE_LIST_LINE_rec.list_line_id,
2040 p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
2041 x_return_status => l_return_status);
2042
2043 /* Proration Start */
2044 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
2045 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
2046 IF(p_PRICE_LIST_LINE_rec.break_uom_context IS NOT NULL) AND
2047 (p_PRICE_LIST_LINE_rec.break_uom_attribute IS NOT NULL) THEN
2048
2049 UPDATE qp_pte_segments set used_in_setup='Y'
2050 WHERE nvl(used_in_setup,'N')='N'
2051 AND segment_id IN
2052 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
2053 WHERE a.segment_mapping_column=p_PRICE_LIST_LINE_rec.break_uom_attribute
2054 AND a.prc_context_id=b.prc_context_id
2055 AND b.prc_context_type = 'PRICING_ATTRIBUTE'
2056 AND b.prc_context_code=p_PRICE_LIST_LINE_rec.break_uom_context);
2057
2058 END IF;
2059 END IF;
2060 /* Proration End */
2061
2062 EXCEPTION
2063
2064 WHEN OTHERS THEN
2065
2066 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2067 THEN
2068 oe_msg_pub.Add_Exc_Msg
2069 ( G_PKG_NAME
2070 , 'Insert_Row'
2071 );
2072 END IF;
2073
2074 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2075
2076 END Insert_Row;
2077
2078 -- Procedure delete_Row
2079
2080 PROCEDURE Delete_Row
2081 ( p_list_line_id IN NUMBER
2082 )
2083 IS
2084 L_LINE_TYPE_CODE VARCHAR2(30) := NULL;
2085
2086 cursor get_rltd_mods(line_id in number) is
2087 select from_rltd_modifier_id, to_rltd_modifier_id
2088 from qp_rltd_modifiers
2089 where from_rltd_modifier_id = line_id;
2090
2091
2092 BEGIN
2093
2094 SELECT LIST_LINE_TYPE_CODE
2095 INTO L_LINE_TYPE_CODE
2096 FROM QP_LIST_LINES
2097 WHERE LIST_LINE_ID = p_list_line_id;
2098
2099 /* delete all the related modifier lines if the line is a PBH,
2100 else delete all references of this line in qp_rltd_modifiers */
2101
2102 IF L_LINE_TYPE_CODE = 'PBH' THEN
2103
2104 for get_rltd_mods_rec in get_rltd_mods(p_list_line_id) loop
2105
2106 QP_PRICE_LIST_LINE_UTIL.DELETE_ROW(get_rltd_mods_rec.to_rltd_modifier_id);
2107
2108 end loop;
2109
2110 DELETE FROM QP_RLTD_MODIFIERS
2111 WHERE FROM_RLTD_MODIFIER_ID = p_list_line_id;
2112
2113 ELSE
2114
2115 DELETE FROM QP_RLTD_MODIFIERS
2116 WHERE TO_RLTD_MODIFIER_ID = p_list_line_id;
2117
2118 END IF; /* done with related modifier lines */
2119
2120
2121 /* delete all the pricing attributes */
2122
2123 DELETE FROM QP_PRICING_ATTRIBUTES
2124 WHERE LIST_LINE_ID = p_list_line_id; /* done with pricing attributes */
2125
2126
2127 DELETE FROM QP_LIST_LINES
2128 WHERE LIST_LINE_ID = p_list_line_id
2129 ;
2130
2131 EXCEPTION
2132
2133 WHEN OTHERS THEN
2134
2135 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2136 THEN
2137 oe_msg_pub.Add_Exc_Msg
2138 ( G_PKG_NAME
2139 , 'Delete_Row'
2140 );
2141 END IF;
2142
2143 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2144
2145 END Delete_Row;
2146
2147 -- Function Query_Row
2148
2149 FUNCTION Query_Row
2150 ( p_list_line_id IN NUMBER
2151 ) RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
2152 IS
2153 BEGIN
2154
2155 RETURN Query_Rows
2156 ( p_list_line_id => p_list_line_id
2157 )(1);
2158
2159 END Query_Row;
2160
2161 -- Function Query_Rows
2162
2163 --
2164
2165 FUNCTION Query_Rows
2166 ( p_list_line_id IN NUMBER :=
2167 FND_API.G_MISS_NUM
2168 , p_list_header_id IN NUMBER :=
2169 FND_API.G_MISS_NUM
2170 ) RETURN QP_Price_List_PUB.Price_List_Line_Tbl_Type
2171 IS
2172 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
2173 l_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
2174
2175 CURSOR l_PRICE_LIST_LINE_csr IS
2176 SELECT ACCRUAL_QTY
2177 , ACCRUAL_UOM_CODE
2178 , ARITHMETIC_OPERATOR
2179 , ATTRIBUTE1
2180 , ATTRIBUTE10
2181 , ATTRIBUTE11
2182 , ATTRIBUTE12
2183 , ATTRIBUTE13
2184 , ATTRIBUTE14
2185 , ATTRIBUTE15
2186 , ATTRIBUTE2
2187 , ATTRIBUTE3
2188 , ATTRIBUTE4
2189 , ATTRIBUTE5
2190 , ATTRIBUTE6
2191 , ATTRIBUTE7
2192 , ATTRIBUTE8
2193 , ATTRIBUTE9
2194 , AUTOMATIC_FLAG
2195 , BASE_QTY
2196 , BASE_UOM_CODE
2197 , COMMENTS
2198 , CONTEXT
2199 , CREATED_BY
2200 , CREATION_DATE
2201 , EFFECTIVE_PERIOD_UOM
2202 , END_DATE_ACTIVE
2203 , ESTIM_ACCRUAL_RATE
2204 , GENERATE_USING_FORMULA_ID
2205 , INVENTORY_ITEM_ID
2206 , LAST_UPDATED_BY
2207 , LAST_UPDATE_DATE
2208 , LAST_UPDATE_LOGIN
2209 , LIST_HEADER_ID
2210 , LIST_LINE_ID
2211 , LIST_LINE_NO
2212 , LIST_LINE_TYPE_CODE
2213 , LIST_PRICE
2214 , PRODUCT_PRECEDENCE
2215 , MODIFIER_LEVEL_CODE
2216 , NUMBER_EFFECTIVE_PERIODS
2217 , OPERAND
2218 , ORGANIZATION_ID
2219 , OVERRIDE_FLAG
2220 , PERCENT_PRICE
2221 , PRICE_BREAK_TYPE_CODE
2222 , PRICE_BY_FORMULA_ID
2223 , PRIMARY_UOM_FLAG
2224 , PRINT_ON_INVOICE_FLAG
2225 , PROGRAM_APPLICATION_ID
2226 , PROGRAM_ID
2227 , PROGRAM_UPDATE_DATE
2228 , REBATE_TRANSACTION_TYPE_CODE
2229 , RELATED_ITEM_ID
2230 , RELATIONSHIP_TYPE_ID
2231 , REPRICE_FLAG
2232 , REQUEST_ID
2233 , REVISION
2234 , REVISION_DATE
2235 , REVISION_REASON_CODE
2236 , START_DATE_ACTIVE
2237 , SUBSTITUTION_ATTRIBUTE
2238 , SUBSTITUTION_CONTEXT
2239 , SUBSTITUTION_VALUE
2240 , QUALIFICATION_IND
2241 , RECURRING_VALUE -- block pricing
2242 , CUSTOMER_ITEM_ID
2243 , BREAK_UOM_CODE
2244 , BREAK_UOM_CONTEXT
2245 , BREAK_UOM_ATTRIBUTE
2246 , CONTINUOUS_PRICE_BREAK_FLAG -- Continuous price breaks
2247 FROM QP_LIST_LINES
2248 WHERE LIST_LINE_ID = p_list_line_id;
2249
2250 /* Peformance changes for 2422019 */
2251 /*
2252 )
2253 OR ( LIST_HEADER_ID = p_list_header_id
2254 );
2255 */
2256
2257 CURSOR l_PRICE_LIST_LINE_hdr_csr IS
2258 SELECT ACCRUAL_QTY
2259 , ACCRUAL_UOM_CODE
2260 , ARITHMETIC_OPERATOR
2261 , ATTRIBUTE1
2262 , ATTRIBUTE10
2263 , ATTRIBUTE11
2264 , ATTRIBUTE12
2265 , ATTRIBUTE13
2266 , ATTRIBUTE14
2267 , ATTRIBUTE15
2268 , ATTRIBUTE2
2269 , ATTRIBUTE3
2270 , ATTRIBUTE4
2271 , ATTRIBUTE5
2272 , ATTRIBUTE6
2273 , ATTRIBUTE7
2274 , ATTRIBUTE8
2275 , ATTRIBUTE9
2276 , AUTOMATIC_FLAG
2277 , BASE_QTY
2278 , BASE_UOM_CODE
2279 , COMMENTS
2280 , CONTEXT
2281 , CREATED_BY
2282 , CREATION_DATE
2283 , EFFECTIVE_PERIOD_UOM
2284 , END_DATE_ACTIVE
2285 , ESTIM_ACCRUAL_RATE
2286 , GENERATE_USING_FORMULA_ID
2287 , INVENTORY_ITEM_ID
2288 , LAST_UPDATED_BY
2289 , LAST_UPDATE_DATE
2290 , LAST_UPDATE_LOGIN
2291 , LIST_HEADER_ID
2292 , LIST_LINE_ID
2293 , LIST_LINE_NO
2294 , LIST_LINE_TYPE_CODE
2295 , LIST_PRICE
2296 , PRODUCT_PRECEDENCE
2297 , MODIFIER_LEVEL_CODE
2298 , NUMBER_EFFECTIVE_PERIODS
2299 , OPERAND
2300 , ORGANIZATION_ID
2301 , OVERRIDE_FLAG
2302 , PERCENT_PRICE
2303 , PRICE_BREAK_TYPE_CODE
2304 , PRICE_BY_FORMULA_ID
2305 , PRIMARY_UOM_FLAG
2306 , PRINT_ON_INVOICE_FLAG
2307 , PROGRAM_APPLICATION_ID
2308 , PROGRAM_ID
2309 , PROGRAM_UPDATE_DATE
2310 , REBATE_TRANSACTION_TYPE_CODE
2311 , RELATED_ITEM_ID
2312 , RELATIONSHIP_TYPE_ID
2313 , REPRICE_FLAG
2314 , REQUEST_ID
2315 , REVISION
2316 , REVISION_DATE
2317 , REVISION_REASON_CODE
2318 , START_DATE_ACTIVE
2319 , SUBSTITUTION_ATTRIBUTE
2320 , SUBSTITUTION_CONTEXT
2321 , SUBSTITUTION_VALUE
2322 , QUALIFICATION_IND
2323 , RECURRING_VALUE -- block pricing
2324 , CUSTOMER_ITEM_ID
2325 , BREAK_UOM_CODE
2326 , BREAK_UOM_CONTEXT
2327 , BREAK_UOM_ATTRIBUTE
2328 , CONTINUOUS_PRICE_BREAK_FLAG -- Continuous price breaks
2329 FROM QP_LIST_LINES
2330 WHERE LIST_HEADER_ID = p_list_header_id;
2331
2332 BEGIN
2333
2334 IF
2335 (p_list_line_id IS NOT NULL
2336 AND
2337 p_list_line_id <> FND_API.G_MISS_NUM)
2338 AND
2339 (p_list_header_id IS NOT NULL
2340 AND
2341 p_list_header_id <> FND_API.G_MISS_NUM)
2342 THEN
2343 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2344 THEN
2345 oe_msg_pub.Add_Exc_Msg
2346 ( G_PKG_NAME
2347 , 'Query Rows'
2348 , 'Keys are mutually exclusive: list_line_id = '|| p_list_line_id || ', list_header_id = '|| p_list_header_id
2349 );
2350 END IF;
2351
2352 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2353
2354 END IF;
2355
2356
2357 -- Loop over fetched records
2358 IF (p_list_line_id IS NOT NULL) AND (p_list_line_id <> FND_API.G_MISS_NUM) THEN --Added for performance bug2422019
2359 FOR l_implicit_rec IN l_PRICE_LIST_LINE_csr LOOP
2360
2361 l_PRICE_LIST_LINE_rec.accrual_qty := l_implicit_rec.ACCRUAL_QTY;
2362 l_PRICE_LIST_LINE_rec.accrual_uom_code := l_implicit_rec.ACCRUAL_UOM_CODE;
2363 l_PRICE_LIST_LINE_rec.arithmetic_operator := l_implicit_rec.ARITHMETIC_OPERATOR;
2364 l_PRICE_LIST_LINE_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2365 l_PRICE_LIST_LINE_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2366 l_PRICE_LIST_LINE_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2367 l_PRICE_LIST_LINE_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2368 l_PRICE_LIST_LINE_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2369 l_PRICE_LIST_LINE_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2370 l_PRICE_LIST_LINE_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2371 l_PRICE_LIST_LINE_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2372 l_PRICE_LIST_LINE_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2373 l_PRICE_LIST_LINE_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2374 l_PRICE_LIST_LINE_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2375 l_PRICE_LIST_LINE_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2376 l_PRICE_LIST_LINE_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2377 l_PRICE_LIST_LINE_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2378 l_PRICE_LIST_LINE_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2379 l_PRICE_LIST_LINE_rec.automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
2380 l_PRICE_LIST_LINE_rec.base_qty := l_implicit_rec.BASE_QTY;
2381 l_PRICE_LIST_LINE_rec.base_uom_code := l_implicit_rec.BASE_UOM_CODE;
2382 l_PRICE_LIST_LINE_rec.comments := l_implicit_rec.COMMENTS;
2383 l_PRICE_LIST_LINE_rec.context := l_implicit_rec.CONTEXT;
2384 l_PRICE_LIST_LINE_rec.created_by := l_implicit_rec.CREATED_BY;
2385 l_PRICE_LIST_LINE_rec.creation_date := l_implicit_rec.CREATION_DATE;
2386 l_PRICE_LIST_LINE_rec.effective_period_uom := l_implicit_rec.EFFECTIVE_PERIOD_UOM;
2387 l_PRICE_LIST_LINE_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
2388 l_PRICE_LIST_LINE_rec.estim_accrual_rate := l_implicit_rec.ESTIM_ACCRUAL_RATE;
2389 l_PRICE_LIST_LINE_rec.generate_using_formula_id := l_implicit_rec.GENERATE_USING_FORMULA_ID;
2390 l_PRICE_LIST_LINE_rec.inventory_item_id := l_implicit_rec.INVENTORY_ITEM_ID;
2391 l_PRICE_LIST_LINE_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2392 l_PRICE_LIST_LINE_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2393 l_PRICE_LIST_LINE_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2394 l_PRICE_LIST_LINE_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
2395 l_PRICE_LIST_LINE_rec.list_line_id := l_implicit_rec.LIST_LINE_ID;
2396 l_PRICE_LIST_LINE_rec.list_line_no := l_implicit_rec.LIST_LINE_NO;
2397 l_PRICE_LIST_LINE_rec.list_line_type_code := l_implicit_rec.LIST_LINE_TYPE_CODE;
2398 l_PRICE_LIST_LINE_rec.list_price := l_implicit_rec.LIST_PRICE;
2399 l_PRICE_LIST_LINE_rec.product_precedence := l_implicit_rec.PRODUCT_PRECEDENCE;
2400 l_PRICE_LIST_LINE_rec.modifier_level_code := l_implicit_rec.MODIFIER_LEVEL_CODE;
2401 l_PRICE_LIST_LINE_rec.number_effective_periods := l_implicit_rec.NUMBER_EFFECTIVE_PERIODS;
2402 l_PRICE_LIST_LINE_rec.operand := l_implicit_rec.OPERAND;
2403 l_PRICE_LIST_LINE_rec.organization_id := l_implicit_rec.ORGANIZATION_ID;
2404 l_PRICE_LIST_LINE_rec.override_flag := l_implicit_rec.OVERRIDE_FLAG;
2405 l_PRICE_LIST_LINE_rec.percent_price := l_implicit_rec.PERCENT_PRICE;
2406 l_PRICE_LIST_LINE_rec.price_break_type_code := l_implicit_rec.PRICE_BREAK_TYPE_CODE;
2407 l_PRICE_LIST_LINE_rec.price_by_formula_id := l_implicit_rec.PRICE_BY_FORMULA_ID;
2408 l_PRICE_LIST_LINE_rec.primary_uom_flag := l_implicit_rec.PRIMARY_UOM_FLAG;
2409 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := l_implicit_rec.PRINT_ON_INVOICE_FLAG;
2410 l_PRICE_LIST_LINE_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2411 l_PRICE_LIST_LINE_rec.program_id := l_implicit_rec.PROGRAM_ID;
2412 l_PRICE_LIST_LINE_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2413 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := l_implicit_rec.REBATE_TRANSACTION_TYPE_CODE;
2414 l_PRICE_LIST_LINE_rec.related_item_id := l_implicit_rec.RELATED_ITEM_ID;
2415 l_PRICE_LIST_LINE_rec.relationship_type_id := l_implicit_rec.RELATIONSHIP_TYPE_ID;
2416 l_PRICE_LIST_LINE_rec.reprice_flag := l_implicit_rec.REPRICE_FLAG;
2417 l_PRICE_LIST_LINE_rec.request_id := l_implicit_rec.REQUEST_ID;
2418 l_PRICE_LIST_LINE_rec.revision := l_implicit_rec.REVISION;
2419 l_PRICE_LIST_LINE_rec.revision_date := l_implicit_rec.REVISION_DATE;
2420 l_PRICE_LIST_LINE_rec.revision_reason_code := l_implicit_rec.REVISION_REASON_CODE;
2421 l_PRICE_LIST_LINE_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
2422 l_PRICE_LIST_LINE_rec.substitution_attribute := l_implicit_rec.SUBSTITUTION_ATTRIBUTE;
2423 l_PRICE_LIST_LINE_rec.substitution_context := l_implicit_rec.SUBSTITUTION_CONTEXT;
2424 l_PRICE_LIST_LINE_rec.substitution_value := l_implicit_rec.SUBSTITUTION_VALUE;
2425 l_PRICE_LIST_LINE_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
2426 l_PRICE_LIST_LINE_rec.recurring_value := l_implicit_rec.RECURRING_VALUE; -- block pricing
2427 l_PRICE_LIST_LINE_rec.customer_item_id := l_implicit_rec.CUSTOMER_ITEM_ID;
2428 l_PRICE_LIST_LINE_rec.break_uom_code := l_implicit_rec.BREAK_UOM_CODE;
2429 l_PRICE_LIST_LINE_rec.break_uom_context := l_implicit_rec.BREAK_UOM_CONTEXT;
2430 l_PRICE_LIST_LINE_rec.break_uom_attribute := l_implicit_rec.BREAK_UOM_ATTRIBUTE; --OKS proration
2431 l_PRICE_LIST_LINE_rec.continuous_price_break_flag := l_implicit_rec.CONTINUOUS_PRICE_BREAK_FLAG;
2432 -- Continuous price breaks
2433 BEGIN
2434 SELECT RLTD_MODIFIER_GRP_NO
2435 , RLTD_MODIFIER_GRP_TYPE
2436 , FROM_RLTD_MODIFIER_ID
2437 , TO_RLTD_MODIFIER_ID
2438 , RLTD_MODIFIER_ID
2439 INTO l_PRICE_LIST_LINE_rec.rltd_modifier_group_no
2440 , l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type
2441 , l_PRICE_LIST_LINE_rec.from_rltd_modifier_id
2442 , l_PRICE_LIST_LINE_rec.to_rltd_modifier_id
2443 , l_PRICE_LIST_LINE_rec.rltd_modifier_id
2444 FROM QP_RLTD_MODIFIERS
2445 WHERE ( TO_RLTD_MODIFIER_ID = l_implicit_rec.LIST_LINE_ID );
2446
2447 EXCEPTION
2448 WHEN NO_DATA_FOUND THEN
2449 l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := null;
2450 l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type := null;
2451 l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := null;
2452 l_PRICE_LIST_LINE_rec.to_rltd_modifier_id := null;
2453 l_PRICE_LIST_LINE_rec.rltd_modifier_id := null;
2454 END;
2455
2456 l_PRICE_LIST_LINE_tbl(l_PRICE_LIST_LINE_tbl.COUNT + 1) := l_PRICE_LIST_LINE_rec;
2457
2458 END LOOP;
2459
2460 /* Added for performance bug2422019 */
2461
2462 ELSIF (p_list_header_id IS NOT NULL) AND (p_list_header_id <> FND_API.G_MISS_NUM) THEN
2463 FOR l_implicit_rec IN l_PRICE_LIST_LINE_hdr_csr LOOP
2464
2465 l_PRICE_LIST_LINE_rec.accrual_qty := l_implicit_rec.ACCRUAL_QTY;
2466 l_PRICE_LIST_LINE_rec.accrual_uom_code := l_implicit_rec.ACCRUAL_UOM_CODE;
2467 l_PRICE_LIST_LINE_rec.arithmetic_operator := l_implicit_rec.ARITHMETIC_OPERATOR;
2468 l_PRICE_LIST_LINE_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2469 l_PRICE_LIST_LINE_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2470 l_PRICE_LIST_LINE_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2471 l_PRICE_LIST_LINE_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2472 l_PRICE_LIST_LINE_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2473 l_PRICE_LIST_LINE_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2474 l_PRICE_LIST_LINE_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2475 l_PRICE_LIST_LINE_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2476 l_PRICE_LIST_LINE_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2477 l_PRICE_LIST_LINE_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2478 l_PRICE_LIST_LINE_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2479 l_PRICE_LIST_LINE_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2480 l_PRICE_LIST_LINE_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2481 l_PRICE_LIST_LINE_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2482 l_PRICE_LIST_LINE_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2483 l_PRICE_LIST_LINE_rec.automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
2484 l_PRICE_LIST_LINE_rec.base_qty := l_implicit_rec.BASE_QTY;
2485 l_PRICE_LIST_LINE_rec.base_uom_code := l_implicit_rec.BASE_UOM_CODE;
2486 l_PRICE_LIST_LINE_rec.comments := l_implicit_rec.COMMENTS;
2487 l_PRICE_LIST_LINE_rec.context := l_implicit_rec.CONTEXT;
2488 l_PRICE_LIST_LINE_rec.created_by := l_implicit_rec.CREATED_BY;
2489 l_PRICE_LIST_LINE_rec.creation_date := l_implicit_rec.CREATION_DATE;
2490 l_PRICE_LIST_LINE_rec.effective_period_uom := l_implicit_rec.EFFECTIVE_PERIOD_UOM;
2491 l_PRICE_LIST_LINE_rec.end_date_active := l_implicit_rec.END_DATE_ACTIVE;
2492 l_PRICE_LIST_LINE_rec.estim_accrual_rate := l_implicit_rec.ESTIM_ACCRUAL_RATE;
2493 l_PRICE_LIST_LINE_rec.generate_using_formula_id := l_implicit_rec.GENERATE_USING_FORMULA_ID;
2494 l_PRICE_LIST_LINE_rec.inventory_item_id := l_implicit_rec.INVENTORY_ITEM_ID;
2495 l_PRICE_LIST_LINE_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2496 l_PRICE_LIST_LINE_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2497 l_PRICE_LIST_LINE_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2498 l_PRICE_LIST_LINE_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
2499 l_PRICE_LIST_LINE_rec.list_line_id := l_implicit_rec.LIST_LINE_ID;
2500 l_PRICE_LIST_LINE_rec.list_line_no := l_implicit_rec.LIST_LINE_NO;
2501 l_PRICE_LIST_LINE_rec.list_line_type_code := l_implicit_rec.LIST_LINE_TYPE_CODE;
2502 l_PRICE_LIST_LINE_rec.list_price := l_implicit_rec.LIST_PRICE;
2503 l_PRICE_LIST_LINE_rec.product_precedence := l_implicit_rec.PRODUCT_PRECEDENCE;
2504 l_PRICE_LIST_LINE_rec.modifier_level_code := l_implicit_rec.MODIFIER_LEVEL_CODE;
2505 l_PRICE_LIST_LINE_rec.number_effective_periods := l_implicit_rec.NUMBER_EFFECTIVE_PERIODS;
2506 l_PRICE_LIST_LINE_rec.operand := l_implicit_rec.OPERAND;
2507 l_PRICE_LIST_LINE_rec.organization_id := l_implicit_rec.ORGANIZATION_ID;
2508 l_PRICE_LIST_LINE_rec.override_flag := l_implicit_rec.OVERRIDE_FLAG;
2509 l_PRICE_LIST_LINE_rec.percent_price := l_implicit_rec.PERCENT_PRICE;
2510 l_PRICE_LIST_LINE_rec.price_break_type_code := l_implicit_rec.PRICE_BREAK_TYPE_CODE;
2511 l_PRICE_LIST_LINE_rec.price_by_formula_id := l_implicit_rec.PRICE_BY_FORMULA_ID;
2512 l_PRICE_LIST_LINE_rec.primary_uom_flag := l_implicit_rec.PRIMARY_UOM_FLAG;
2513 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := l_implicit_rec.PRINT_ON_INVOICE_FLAG;
2514 l_PRICE_LIST_LINE_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2515 l_PRICE_LIST_LINE_rec.program_id := l_implicit_rec.PROGRAM_ID;
2516 l_PRICE_LIST_LINE_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2517 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := l_implicit_rec.REBATE_TRANSACTION_TYPE_CODE;
2518 l_PRICE_LIST_LINE_rec.related_item_id := l_implicit_rec.RELATED_ITEM_ID;
2519 l_PRICE_LIST_LINE_rec.relationship_type_id := l_implicit_rec.RELATIONSHIP_TYPE_ID;
2520 l_PRICE_LIST_LINE_rec.reprice_flag := l_implicit_rec.REPRICE_FLAG;
2521 l_PRICE_LIST_LINE_rec.request_id := l_implicit_rec.REQUEST_ID;
2522 l_PRICE_LIST_LINE_rec.revision := l_implicit_rec.REVISION;
2523 l_PRICE_LIST_LINE_rec.revision_date := l_implicit_rec.REVISION_DATE;
2524 l_PRICE_LIST_LINE_rec.revision_reason_code := l_implicit_rec.REVISION_REASON_CODE;
2525 l_PRICE_LIST_LINE_rec.start_date_active := l_implicit_rec.START_DATE_ACTIVE;
2526 l_PRICE_LIST_LINE_rec.substitution_attribute := l_implicit_rec.SUBSTITUTION_ATTRIBUTE;
2527 l_PRICE_LIST_LINE_rec.substitution_context := l_implicit_rec.SUBSTITUTION_CONTEXT;
2528 l_PRICE_LIST_LINE_rec.substitution_value := l_implicit_rec.SUBSTITUTION_VALUE;
2529 l_PRICE_LIST_LINE_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
2530 l_PRICE_LIST_LINE_rec.recurring_value := l_implicit_rec.RECURRING_VALUE; -- block pricing
2531 l_PRICE_LIST_LINE_rec.customer_item_id := l_implicit_rec.CUSTOMER_ITEM_ID;
2532 l_PRICE_LIST_LINE_rec.break_uom_code := l_implicit_rec.BREAK_UOM_CODE;
2533 l_PRICE_LIST_LINE_rec.break_uom_context := l_implicit_rec.BREAK_UOM_CONTEXT;
2534 l_PRICE_LIST_LINE_rec.break_uom_attribute := l_implicit_rec.BREAK_UOM_ATTRIBUTE; --OKS proration
2535 l_PRICE_LIST_LINE_rec.continuous_price_break_flag := l_implicit_rec.CONTINUOUS_PRICE_BREAK_FLAG;
2536 -- Continuous price breaks
2537 BEGIN
2538 SELECT RLTD_MODIFIER_GRP_NO
2539 , RLTD_MODIFIER_GRP_TYPE
2540 , FROM_RLTD_MODIFIER_ID
2541 , TO_RLTD_MODIFIER_ID
2542 , RLTD_MODIFIER_ID
2543 INTO l_PRICE_LIST_LINE_rec.rltd_modifier_group_no
2544 , l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type
2545 , l_PRICE_LIST_LINE_rec.from_rltd_modifier_id
2546 , l_PRICE_LIST_LINE_rec.to_rltd_modifier_id
2547 , l_PRICE_LIST_LINE_rec.rltd_modifier_id
2548 FROM QP_RLTD_MODIFIERS
2549 WHERE ( TO_RLTD_MODIFIER_ID = l_implicit_rec.LIST_LINE_ID );
2550
2551 EXCEPTION
2552 WHEN NO_DATA_FOUND THEN
2553 l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := null;
2554 l_PRICE_LIST_LINE_rec.rltd_modifier_grp_type := null;
2555 l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := null;
2556 l_PRICE_LIST_LINE_rec.to_rltd_modifier_id := null;
2557 l_PRICE_LIST_LINE_rec.rltd_modifier_id := null;
2558 END;
2559
2560 l_PRICE_LIST_LINE_tbl(l_PRICE_LIST_LINE_tbl.COUNT + 1) := l_PRICE_LIST_LINE_rec;
2561
2562 END LOOP;
2563
2564 END IF;
2565
2566 -- PK sent and no rows found
2567
2568 IF
2569 (p_list_line_id IS NOT NULL
2570 AND
2571 p_list_line_id <> FND_API.G_MISS_NUM)
2572 AND
2573 (l_PRICE_LIST_LINE_tbl.COUNT = 0)
2574 THEN
2575 RAISE NO_DATA_FOUND;
2576 END IF;
2577
2578
2579 -- Return fetched table
2580
2581 RETURN l_PRICE_LIST_LINE_tbl;
2582
2583 EXCEPTION
2584
2585 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2586
2587 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2588
2589 WHEN OTHERS THEN
2590
2591 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2592 THEN
2593 oe_msg_pub.Add_Exc_Msg
2594 ( G_PKG_NAME
2595 , 'Query_Rows'
2596 );
2597 END IF;
2598
2599 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2600
2601 END Query_Rows;
2602
2603 -- Procedure lock_Row
2604 --
2605
2606 PROCEDURE Lock_Row
2607 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2608 , p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
2609 , x_PRICE_LIST_LINE_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Price_List_Line_Rec_Type
2610 )
2611 IS
2612 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
2613 BEGIN
2614
2615 QP_Price_List_Line_Util.Print_Price_List_line(p_PRICE_LIST_LINE_rec,
2616 1);
2617
2618
2619 SELECT ACCRUAL_QTY
2620 , ACCRUAL_UOM_CODE
2621 , ARITHMETIC_OPERATOR
2622 , ATTRIBUTE1
2623 , ATTRIBUTE10
2624 , ATTRIBUTE11
2625 , ATTRIBUTE12
2626 , ATTRIBUTE13
2627 , ATTRIBUTE14
2628 , ATTRIBUTE15
2629 , ATTRIBUTE2
2630 , ATTRIBUTE3
2631 , ATTRIBUTE4
2632 , ATTRIBUTE5
2633 , ATTRIBUTE6
2634 , ATTRIBUTE7
2635 , ATTRIBUTE8
2636 , ATTRIBUTE9
2637 , AUTOMATIC_FLAG
2638 , BASE_QTY
2639 , BASE_UOM_CODE
2640 , COMMENTS
2641 , CONTEXT
2642 , CREATED_BY
2643 , CREATION_DATE
2644 , EFFECTIVE_PERIOD_UOM
2645 , END_DATE_ACTIVE
2646 , ESTIM_ACCRUAL_RATE
2647 , GENERATE_USING_FORMULA_ID
2648 , INVENTORY_ITEM_ID
2649 , LAST_UPDATED_BY
2650 , LAST_UPDATE_DATE
2651 , LAST_UPDATE_LOGIN
2652 , LIST_HEADER_ID
2653 , LIST_LINE_ID
2654 , LIST_LINE_TYPE_CODE
2655 , LIST_PRICE
2656 , PRODUCT_PRECEDENCE
2657 , MODIFIER_LEVEL_CODE
2658 , NUMBER_EFFECTIVE_PERIODS
2659 , OPERAND
2660 , ORGANIZATION_ID
2661 , OVERRIDE_FLAG
2662 , PERCENT_PRICE
2663 , PRICE_BREAK_TYPE_CODE
2664 , PRICE_BY_FORMULA_ID
2665 , PRIMARY_UOM_FLAG
2666 , PRINT_ON_INVOICE_FLAG
2667 , PROGRAM_APPLICATION_ID
2668 , PROGRAM_ID
2669 , PROGRAM_UPDATE_DATE
2670 , REBATE_TRANSACTION_TYPE_CODE
2671 , RECURRING_VALUE -- block pricing
2672 , RELATED_ITEM_ID
2673 , RELATIONSHIP_TYPE_ID
2674 , REPRICE_FLAG
2675 , REQUEST_ID
2676 , REVISION
2677 , REVISION_DATE
2678 , REVISION_REASON_CODE
2679 , START_DATE_ACTIVE
2680 , SUBSTITUTION_ATTRIBUTE
2681 , SUBSTITUTION_CONTEXT
2682 , SUBSTITUTION_VALUE
2683 , CUSTOMER_ITEM_ID
2684 , BREAK_UOM_CODE
2685 , BREAK_UOM_CONTEXT
2686 , BREAK_UOM_ATTRIBUTE
2687 , CONTINUOUS_PRICE_BREAK_FLAG -- Continuous price breaks
2688 INTO l_PRICE_LIST_LINE_rec.accrual_qty
2689 , l_PRICE_LIST_LINE_rec.accrual_uom_code
2690 , l_PRICE_LIST_LINE_rec.arithmetic_operator
2691 , l_PRICE_LIST_LINE_rec.attribute1
2692 , l_PRICE_LIST_LINE_rec.attribute10
2693 , l_PRICE_LIST_LINE_rec.attribute11
2694 , l_PRICE_LIST_LINE_rec.attribute12
2695 , l_PRICE_LIST_LINE_rec.attribute13
2696 , l_PRICE_LIST_LINE_rec.attribute14
2697 , l_PRICE_LIST_LINE_rec.attribute15
2698 , l_PRICE_LIST_LINE_rec.attribute2
2699 , l_PRICE_LIST_LINE_rec.attribute3
2700 , l_PRICE_LIST_LINE_rec.attribute4
2701 , l_PRICE_LIST_LINE_rec.attribute5
2702 , l_PRICE_LIST_LINE_rec.attribute6
2703 , l_PRICE_LIST_LINE_rec.attribute7
2704 , l_PRICE_LIST_LINE_rec.attribute8
2705 , l_PRICE_LIST_LINE_rec.attribute9
2706 , l_PRICE_LIST_LINE_rec.automatic_flag
2707 , l_PRICE_LIST_LINE_rec.base_qty
2708 , l_PRICE_LIST_LINE_rec.base_uom_code
2709 , l_PRICE_LIST_LINE_rec.comments
2710 , l_PRICE_LIST_LINE_rec.context
2711 , l_PRICE_LIST_LINE_rec.created_by
2712 , l_PRICE_LIST_LINE_rec.creation_date
2713 , l_PRICE_LIST_LINE_rec.effective_period_uom
2714 , l_PRICE_LIST_LINE_rec.end_date_active
2715 , l_PRICE_LIST_LINE_rec.estim_accrual_rate
2716 , l_PRICE_LIST_LINE_rec.generate_using_formula_id
2717 , l_PRICE_LIST_LINE_rec.inventory_item_id
2718 , l_PRICE_LIST_LINE_rec.last_updated_by
2719 , l_PRICE_LIST_LINE_rec.last_update_date
2720 , l_PRICE_LIST_LINE_rec.last_update_login
2721 , l_PRICE_LIST_LINE_rec.list_header_id
2722 , l_PRICE_LIST_LINE_rec.list_line_id
2723 , l_PRICE_LIST_LINE_rec.list_line_type_code
2724 , l_PRICE_LIST_LINE_rec.list_price
2725 , l_PRICE_LIST_LINE_rec.product_precedence
2726 , l_PRICE_LIST_LINE_rec.modifier_level_code
2727 , l_PRICE_LIST_LINE_rec.number_effective_periods
2728 , l_PRICE_LIST_LINE_rec.operand
2729 , l_PRICE_LIST_LINE_rec.organization_id
2730 , l_PRICE_LIST_LINE_rec.override_flag
2731 , l_PRICE_LIST_LINE_rec.percent_price
2732 , l_PRICE_LIST_LINE_rec.price_break_type_code
2733 , l_PRICE_LIST_LINE_rec.price_by_formula_id
2734 , l_PRICE_LIST_LINE_rec.primary_uom_flag
2735 , l_PRICE_LIST_LINE_rec.print_on_invoice_flag
2736 , l_PRICE_LIST_LINE_rec.program_application_id
2737 , l_PRICE_LIST_LINE_rec.program_id
2738 , l_PRICE_LIST_LINE_rec.program_update_date
2739 , l_PRICE_LIST_LINE_rec.rebate_trxn_type_code
2740 , l_PRICE_LIST_LINE_rec.recurring_value -- block pricing
2741 , l_PRICE_LIST_LINE_rec.related_item_id
2742 , l_PRICE_LIST_LINE_rec.relationship_type_id
2743 , l_PRICE_LIST_LINE_rec.reprice_flag
2744 , l_PRICE_LIST_LINE_rec.request_id
2745 , l_PRICE_LIST_LINE_rec.revision
2746 , l_PRICE_LIST_LINE_rec.revision_date
2747 , l_PRICE_LIST_LINE_rec.revision_reason_code
2748 , l_PRICE_LIST_LINE_rec.start_date_active
2749 , l_PRICE_LIST_LINE_rec.substitution_attribute
2750 , l_PRICE_LIST_LINE_rec.substitution_context
2751 , l_PRICE_LIST_LINE_rec.substitution_value
2752 , l_PRICE_LIST_LINE_rec.customer_item_id
2753 , l_PRICE_LIST_LINE_rec.break_uom_code
2754 , l_PRICE_LIST_LINE_rec.break_uom_context
2755 , l_PRICE_LIST_LINE_rec.break_uom_attribute
2756 , l_PRICE_LIST_LINE_rec.continuous_price_break_flag -- Continuous price breaks
2757 FROM QP_LIST_LINES
2758 WHERE LIST_LINE_ID = p_PRICE_LIST_LINE_rec.list_line_id
2759 FOR UPDATE NOWAIT;
2760
2761
2762 -- Row locked. Compare IN attributes to DB attributes.
2763
2764 IF QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_qty,
2765 l_PRICE_LIST_LINE_rec.accrual_qty)
2766 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_uom_code,
2767 l_PRICE_LIST_LINE_rec.accrual_uom_code)
2768 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.arithmetic_operator,
2769 l_PRICE_LIST_LINE_rec.arithmetic_operator)
2770 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute1,
2771 l_PRICE_LIST_LINE_rec.attribute1)
2772 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute10,
2773 l_PRICE_LIST_LINE_rec.attribute10)
2774 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute11,
2775 l_PRICE_LIST_LINE_rec.attribute11)
2776 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute12,
2777 l_PRICE_LIST_LINE_rec.attribute12)
2778 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute13,
2779 l_PRICE_LIST_LINE_rec.attribute13)
2780 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute14,
2781 l_PRICE_LIST_LINE_rec.attribute14)
2782 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute15,
2783 l_PRICE_LIST_LINE_rec.attribute15)
2784 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute2,
2785 l_PRICE_LIST_LINE_rec.attribute2)
2786 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute3,
2787 l_PRICE_LIST_LINE_rec.attribute3)
2788 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute4,
2789 l_PRICE_LIST_LINE_rec.attribute4)
2790 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute5,
2791 l_PRICE_LIST_LINE_rec.attribute5)
2792 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute6,
2793 l_PRICE_LIST_LINE_rec.attribute6)
2794 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute7,
2795 l_PRICE_LIST_LINE_rec.attribute7)
2796 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute8,
2797 l_PRICE_LIST_LINE_rec.attribute8)
2798 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.attribute9,
2799 l_PRICE_LIST_LINE_rec.attribute9)
2800 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.automatic_flag,
2801 l_PRICE_LIST_LINE_rec.automatic_flag)
2802 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_qty,
2803 l_PRICE_LIST_LINE_rec.base_qty)
2804 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_uom_code,
2805 l_PRICE_LIST_LINE_rec.base_uom_code)
2806 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.comments,
2807 l_PRICE_LIST_LINE_rec.comments)
2808 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.context,
2809 l_PRICE_LIST_LINE_rec.context)
2810 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.created_by,
2811 l_PRICE_LIST_LINE_rec.created_by)
2812 AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.creation_date),
2813 trunc(l_PRICE_LIST_LINE_rec.creation_date))
2814 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.effective_period_uom,
2815 l_PRICE_LIST_LINE_rec.effective_period_uom)
2816 AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.end_date_active),
2817 trunc(l_PRICE_LIST_LINE_rec.end_date_active))
2818 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.estim_accrual_rate,
2819 l_PRICE_LIST_LINE_rec.estim_accrual_rate)
2820 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.generate_using_formula_id,
2821 l_PRICE_LIST_LINE_rec.generate_using_formula_id)
2822 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,
2823 l_PRICE_LIST_LINE_rec.inventory_item_id)
2824 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_updated_by,
2825 l_PRICE_LIST_LINE_rec.last_updated_by)
2826 AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.last_update_date),
2827 trunc(l_PRICE_LIST_LINE_rec.last_update_date))
2828 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.last_update_login,
2829 l_PRICE_LIST_LINE_rec.last_update_login)
2830 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_header_id,
2831 l_PRICE_LIST_LINE_rec.list_header_id)
2832 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_id,
2833 l_PRICE_LIST_LINE_rec.list_line_id)
2834 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_type_code,
2835 l_PRICE_LIST_LINE_rec.list_line_type_code)
2836 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_price,
2837 l_PRICE_LIST_LINE_rec.list_price)
2838 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.product_precedence,
2839 l_PRICE_LIST_LINE_rec.product_precedence)
2840 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.modifier_level_code,
2841 l_PRICE_LIST_LINE_rec.modifier_level_code)
2842 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.number_effective_periods,
2843 l_PRICE_LIST_LINE_rec.number_effective_periods)
2844 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.operand,
2845 l_PRICE_LIST_LINE_rec.operand)
2846 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.organization_id,
2847 l_PRICE_LIST_LINE_rec.organization_id)
2848 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.override_flag,
2849 l_PRICE_LIST_LINE_rec.override_flag)
2850 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.percent_price,
2851 l_PRICE_LIST_LINE_rec.percent_price)
2852 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_break_type_code,
2853 l_PRICE_LIST_LINE_rec.price_break_type_code)
2854 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_by_formula_id,
2855 l_PRICE_LIST_LINE_rec.price_by_formula_id)
2856 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary_uom_flag,
2857 l_PRICE_LIST_LINE_rec.primary_uom_flag)
2858 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.print_on_invoice_flag,
2859 l_PRICE_LIST_LINE_rec.print_on_invoice_flag)
2860 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_application_id,
2861 l_PRICE_LIST_LINE_rec.program_application_id)
2862 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.program_id,
2863 l_PRICE_LIST_LINE_rec.program_id)
2864 AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.program_update_date),
2865 trunc(l_PRICE_LIST_LINE_rec.program_update_date))
2866 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rebate_trxn_type_code,
2867 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
2868 -- block pricing
2869 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.recurring_value,
2870 l_PRICE_LIST_LINE_rec.recurring_value)
2871 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.related_item_id,
2872 l_PRICE_LIST_LINE_rec.related_item_id)
2873 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.relationship_type_id,
2874 l_PRICE_LIST_LINE_rec.relationship_type_id)
2875 -- AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,
2876 -- l_PRICE_LIST_LINE_rec.reprice_flag)
2877 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.request_id,
2878 l_PRICE_LIST_LINE_rec.request_id)
2879 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision,
2880 l_PRICE_LIST_LINE_rec.revision)
2881 AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.revision_date),
2882 trunc(l_PRICE_LIST_LINE_rec.revision_date))
2883 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,
2884 l_PRICE_LIST_LINE_rec.revision_reason_code)
2885 AND QP_GLOBALS.Equal(trunc(p_PRICE_LIST_LINE_rec.start_date_active),
2886 trunc(l_PRICE_LIST_LINE_rec.start_date_active))
2887 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_attribute,
2888 l_PRICE_LIST_LINE_rec.substitution_attribute)
2889 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_context,
2890 l_PRICE_LIST_LINE_rec.substitution_context)
2891 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.substitution_value,
2892 l_PRICE_LIST_LINE_rec.substitution_value)
2893 AND QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.customer_item_id,
2894 l_PRICE_LIST_LINE_rec.customer_item_id)
2895 THEN
2896
2897 -- Row has not changed. Set out parameter.
2898
2899 x_PRICE_LIST_LINE_rec := l_PRICE_LIST_LINE_rec;
2900
2901 -- Set return status
2902
2903 x_return_status := FND_API.G_RET_STS_SUCCESS;
2904 x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2905
2906 ELSE
2907
2908 -- Row has changed by another user.
2909
2910 x_return_status := FND_API.G_RET_STS_ERROR;
2911 x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2912
2913 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
2914 THEN
2915
2916 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
2917 oe_msg_pub.Add;
2918
2919 END IF;
2920
2921 END IF;
2922
2923 EXCEPTION
2924
2925 WHEN NO_DATA_FOUND THEN
2926
2927 x_return_status := FND_API.G_RET_STS_ERROR;
2928 x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2929
2930 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
2931 THEN
2932
2933 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
2934 oe_msg_pub.Add;
2935
2936 END IF;
2937 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2938
2939 x_return_status := FND_API.G_RET_STS_ERROR;
2940 x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
2941
2942 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
2943 THEN
2944
2945 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
2946 oe_msg_pub.Add;
2947
2948 END IF;
2949 WHEN OTHERS THEN
2950
2951 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2952 x_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2953
2954 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2955 THEN
2956 oe_msg_pub.Add_Exc_Msg
2957 ( G_PKG_NAME
2958 , 'Lock_Row'
2959 );
2960 END IF;
2961
2962 END Lock_Row;
2963
2964 -- Function Get_Values
2965
2966 FUNCTION Get_Values
2967 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
2968 , p_old_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type :=
2969 QP_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC
2970 ) RETURN QP_Price_List_PUB.Price_List_Line_Val_Rec_Type
2971 IS
2972 l_PRICE_LIST_LINE_val_rec QP_Price_List_PUB.Price_List_Line_Val_Rec_Type;
2973 BEGIN
2974
2975 /*
2976 IF p_PRICE_LIST_LINE_rec.accrual_uom_code IS NOT NULL AND
2977 p_PRICE_LIST_LINE_rec.accrual_uom_code <> FND_API.G_MISS_CHAR AND
2978 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.accrual_uom_code,
2979 p_old_PRICE_LIST_LINE_rec.accrual_uom_code)
2980 THEN
2981 l_PRICE_LIST_LINE_val_rec.accrual_uom := QP_Id_To_Value.Accrual_Uom
2982 ( p_accrual_uom_code => p_PRICE_LIST_LINE_rec.accrual_uom_code
2983 );
2984 END IF;
2985
2986 */
2987
2988 IF p_PRICE_LIST_LINE_rec.automatic_flag IS NOT NULL AND
2989 p_PRICE_LIST_LINE_rec.automatic_flag <> FND_API.G_MISS_CHAR AND
2990 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.automatic_flag,
2991 p_old_PRICE_LIST_LINE_rec.automatic_flag)
2992 THEN
2993 l_PRICE_LIST_LINE_val_rec.automatic := QP_Id_To_Value.Automatic
2994 ( p_automatic_flag => p_PRICE_LIST_LINE_rec.automatic_flag
2995 );
2996 END IF;
2997
2998 IF p_PRICE_LIST_LINE_rec.base_uom_code IS NOT NULL AND
2999 p_PRICE_LIST_LINE_rec.base_uom_code <> FND_API.G_MISS_CHAR AND
3000 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.base_uom_code,
3001 p_old_PRICE_LIST_LINE_rec.base_uom_code)
3002 THEN
3003 l_PRICE_LIST_LINE_val_rec.base_uom := QP_Id_To_Value.Base_Uom
3004 ( p_base_uom_code => p_PRICE_LIST_LINE_rec.base_uom_code
3005 );
3006 END IF;
3007
3008 IF p_PRICE_LIST_LINE_rec.generate_using_formula_id IS NOT NULL AND
3009 p_PRICE_LIST_LINE_rec.generate_using_formula_id <> FND_API.G_MISS_NUM AND
3010 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.generate_using_formula_id,
3011 p_old_PRICE_LIST_LINE_rec.generate_using_formula_id)
3012 THEN
3013 l_PRICE_LIST_LINE_val_rec.generate_using_formula := QP_Id_To_Value.Generate_Using_Formula
3014 ( p_generate_using_formula_id => p_PRICE_LIST_LINE_rec.generate_using_formula_id
3015 );
3016 END IF;
3017
3018
3019 IF p_PRICE_LIST_LINE_rec.inventory_item_id IS NOT NULL AND
3020 p_PRICE_LIST_LINE_rec.inventory_item_id <> FND_API.G_MISS_NUM AND
3021 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.inventory_item_id,
3022 p_old_PRICE_LIST_LINE_rec.inventory_item_id)
3023 THEN
3024 l_PRICE_LIST_LINE_val_rec.inventory_item := QP_Id_To_Value.Inventory_Item
3025 ( p_inventory_item_id => p_PRICE_LIST_LINE_rec.inventory_item_id
3026 );
3027 END IF;
3028
3029 IF p_PRICE_LIST_LINE_rec.list_header_id IS NOT NULL AND
3030 p_PRICE_LIST_LINE_rec.list_header_id <> FND_API.G_MISS_NUM AND
3031 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_header_id,
3032 p_old_PRICE_LIST_LINE_rec.list_header_id)
3033 THEN
3034 l_PRICE_LIST_LINE_val_rec.list_header := QP_Id_To_Value.List_Header
3035 ( p_list_header_id => p_PRICE_LIST_LINE_rec.list_header_id
3036 );
3037 END IF;
3038
3039 IF p_PRICE_LIST_LINE_rec.list_line_id IS NOT NULL AND
3040 p_PRICE_LIST_LINE_rec.list_line_id <> FND_API.G_MISS_NUM AND
3041 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_id,
3042 p_old_PRICE_LIST_LINE_rec.list_line_id)
3043 THEN
3044 l_PRICE_LIST_LINE_val_rec.list_line := QP_Id_To_Value.List_Line
3045 ( p_list_line_id => p_PRICE_LIST_LINE_rec.list_line_id
3046 );
3047 END IF;
3048
3049 IF p_PRICE_LIST_LINE_rec.list_line_type_code IS NOT NULL AND
3050 p_PRICE_LIST_LINE_rec.list_line_type_code <> FND_API.G_MISS_CHAR AND
3051 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.list_line_type_code,
3052 p_old_PRICE_LIST_LINE_rec.list_line_type_code)
3053 THEN
3054 l_PRICE_LIST_LINE_val_rec.list_line_type := QP_Id_To_Value.List_Line_Type
3055 ( p_list_line_type_code => p_PRICE_LIST_LINE_rec.list_line_type_code
3056 );
3057 END IF;
3058
3059 IF p_PRICE_LIST_LINE_rec.modifier_level_code IS NOT NULL AND
3060 p_PRICE_LIST_LINE_rec.modifier_level_code <> FND_API.G_MISS_CHAR AND
3061 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.modifier_level_code,
3062 p_old_PRICE_LIST_LINE_rec.modifier_level_code)
3063 THEN
3064 l_PRICE_LIST_LINE_val_rec.modifier_level := QP_Id_To_Value.Modifier_Level
3065 ( p_modifier_level_code => p_PRICE_LIST_LINE_rec.modifier_level_code
3066 );
3067 END IF;
3068
3069 IF p_PRICE_LIST_LINE_rec.organization_id IS NOT NULL AND
3070 p_PRICE_LIST_LINE_rec.organization_id <> FND_API.G_MISS_NUM AND
3071 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.organization_id,
3072 p_old_PRICE_LIST_LINE_rec.organization_id)
3073 THEN
3074 l_PRICE_LIST_LINE_val_rec.organization := QP_Id_To_Value.Organization
3075 ( p_organization_id => p_PRICE_LIST_LINE_rec.organization_id
3076 );
3077 END IF;
3078
3079 IF p_PRICE_LIST_LINE_rec.override_flag IS NOT NULL AND
3080 p_PRICE_LIST_LINE_rec.override_flag <> FND_API.G_MISS_CHAR AND
3081 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.override_flag,
3082 p_old_PRICE_LIST_LINE_rec.override_flag)
3083 THEN
3084 l_PRICE_LIST_LINE_val_rec.override := QP_Id_To_Value.Override
3085 ( p_override_flag => p_PRICE_LIST_LINE_rec.override_flag
3086 );
3087 END IF;
3088
3089 IF p_PRICE_LIST_LINE_rec.price_break_type_code IS NOT NULL AND
3090 p_PRICE_LIST_LINE_rec.price_break_type_code <> FND_API.G_MISS_CHAR AND
3091 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_break_type_code,
3092 p_old_PRICE_LIST_LINE_rec.price_break_type_code)
3093 THEN
3094 l_PRICE_LIST_LINE_val_rec.price_break_type := QP_Id_To_Value.Price_Break_Type
3095 ( p_price_break_type_code => p_PRICE_LIST_LINE_rec.price_break_type_code
3096 );
3097 END IF;
3098
3099 IF p_PRICE_LIST_LINE_rec.price_by_formula_id IS NOT NULL AND
3100 p_PRICE_LIST_LINE_rec.price_by_formula_id <> FND_API.G_MISS_NUM AND
3101 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.price_by_formula_id,
3102 p_old_PRICE_LIST_LINE_rec.price_by_formula_id)
3103 THEN
3104 l_PRICE_LIST_LINE_val_rec.price_by_formula := QP_Id_To_Value.Price_By_Formula
3105 ( p_price_by_formula_id => p_PRICE_LIST_LINE_rec.price_by_formula_id
3106 );
3107 END IF;
3108
3109 IF p_PRICE_LIST_LINE_rec.primary_uom_flag IS NOT NULL AND
3110 p_PRICE_LIST_LINE_rec.primary_uom_flag <> FND_API.G_MISS_CHAR AND
3111 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.primary_uom_flag,
3112 p_old_PRICE_LIST_LINE_rec.primary_uom_flag)
3113 THEN
3114 l_PRICE_LIST_LINE_val_rec.primary_uom := QP_Id_To_Value.Primary_Uom
3115 ( p_primary_uom_flag => p_PRICE_LIST_LINE_rec.primary_uom_flag
3116 );
3117 END IF;
3118
3119 IF p_PRICE_LIST_LINE_rec.print_on_invoice_flag IS NOT NULL AND
3120 p_PRICE_LIST_LINE_rec.print_on_invoice_flag <> FND_API.G_MISS_CHAR AND
3121 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.print_on_invoice_flag,
3122 p_old_PRICE_LIST_LINE_rec.print_on_invoice_flag)
3123 THEN
3124 l_PRICE_LIST_LINE_val_rec.print_on_invoice := QP_Id_To_Value.Print_On_Invoice
3125 ( p_print_on_invoice_flag => p_PRICE_LIST_LINE_rec.print_on_invoice_flag
3126 );
3127 END IF;
3128
3129 IF p_PRICE_LIST_LINE_rec.rebate_trxn_type_code IS NOT NULL AND
3130 p_PRICE_LIST_LINE_rec.rebate_trxn_type_code <> FND_API.G_MISS_CHAR AND
3131 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.rebate_trxn_type_code,
3132 p_old_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
3133 THEN
3134 l_PRICE_LIST_LINE_val_rec.rebate_transaction_type := QP_Id_To_Value.Rebate_Transaction_Type
3135 ( p_rebate_trxn_type_code => p_PRICE_LIST_LINE_rec.rebate_trxn_type_code
3136 );
3137 END IF;
3138
3139 IF p_PRICE_LIST_LINE_rec.related_item_id IS NOT NULL AND
3140 p_PRICE_LIST_LINE_rec.related_item_id <> FND_API.G_MISS_NUM AND
3141 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.related_item_id,
3142 p_old_PRICE_LIST_LINE_rec.related_item_id)
3143 THEN
3144 l_PRICE_LIST_LINE_val_rec.related_item := QP_Id_To_Value.Related_Item
3145 ( p_related_item_id => p_PRICE_LIST_LINE_rec.related_item_id
3146 );
3147 END IF;
3148
3149 IF p_PRICE_LIST_LINE_rec.relationship_type_id IS NOT NULL AND
3150 p_PRICE_LIST_LINE_rec.relationship_type_id <> FND_API.G_MISS_NUM AND
3151 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.relationship_type_id,
3152 p_old_PRICE_LIST_LINE_rec.relationship_type_id)
3153 THEN
3154 l_PRICE_LIST_LINE_val_rec.relationship_type := QP_Id_To_Value.Relationship_Type
3155 ( p_relationship_type_id => p_PRICE_LIST_LINE_rec.relationship_type_id
3156 );
3157 END IF;
3158
3159 IF p_PRICE_LIST_LINE_rec.reprice_flag IS NOT NULL AND
3160 p_PRICE_LIST_LINE_rec.reprice_flag <> FND_API.G_MISS_CHAR AND
3161 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.reprice_flag,
3162 p_old_PRICE_LIST_LINE_rec.reprice_flag)
3163 THEN
3164 l_PRICE_LIST_LINE_val_rec.reprice := QP_Id_To_Value.Reprice
3165 ( p_reprice_flag => p_PRICE_LIST_LINE_rec.reprice_flag
3166 );
3167 END IF;
3168
3169 IF p_PRICE_LIST_LINE_rec.revision_reason_code IS NOT NULL AND
3170 p_PRICE_LIST_LINE_rec.revision_reason_code <> FND_API.G_MISS_CHAR AND
3171 NOT QP_GLOBALS.Equal(p_PRICE_LIST_LINE_rec.revision_reason_code,
3172 p_old_PRICE_LIST_LINE_rec.revision_reason_code)
3173 THEN
3174 l_PRICE_LIST_LINE_val_rec.revision_reason := QP_Id_To_Value.Revision_Reason
3175 ( p_revision_reason_code => p_PRICE_LIST_LINE_rec.revision_reason_code
3176 );
3177 END IF;
3178
3179 RETURN l_PRICE_LIST_LINE_val_rec;
3180
3181 END Get_Values;
3182
3183 -- Function Get_Ids
3184
3185 FUNCTION Get_Ids
3186 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
3187 , p_PRICE_LIST_LINE_val_rec IN QP_Price_List_PUB.Price_List_Line_Val_Rec_Type
3188 ) RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
3189 IS
3190 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
3191 BEGIN
3192
3193 -- initialize return_status.
3194
3195 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_SUCCESS;
3196
3197 -- initialize l_PRICE_LIST_LINE_rec.
3198
3199 l_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
3200
3201 IF p_PRICE_LIST_LINE_val_rec.accrual_uom <> FND_API.G_MISS_CHAR
3202 THEN
3203
3204 IF p_PRICE_LIST_LINE_rec.accrual_uom_code <> FND_API.G_MISS_CHAR THEN
3205
3206 l_PRICE_LIST_LINE_rec.accrual_uom_code := p_PRICE_LIST_LINE_rec.accrual_uom_code;
3207
3208 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3209 THEN
3210
3211 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3212 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','accrual_uom');
3213 oe_msg_pub.Add;
3214
3215 END IF;
3216
3217 ELSE
3218
3219 /*
3220
3221 l_PRICE_LIST_LINE_rec.accrual_uom_code := QP_Value_To_Id.accrual_uom
3222 ( p_accrual_uom => p_PRICE_LIST_LINE_val_rec.accrual_uom
3223 );
3224
3225 */
3226
3227 IF l_PRICE_LIST_LINE_rec.accrual_uom_code = FND_API.G_MISS_CHAR THEN
3228 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3229 END IF;
3230
3231 END IF;
3232
3233 END IF;
3234
3235 IF p_PRICE_LIST_LINE_val_rec.automatic <> FND_API.G_MISS_CHAR
3236 THEN
3237
3238 IF p_PRICE_LIST_LINE_rec.automatic_flag <> FND_API.G_MISS_CHAR THEN
3239
3240 l_PRICE_LIST_LINE_rec.automatic_flag := p_PRICE_LIST_LINE_rec.automatic_flag;
3241
3242 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3243 THEN
3244
3245 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3246 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','automatic');
3247 oe_msg_pub.Add;
3248
3249 END IF;
3250
3251 ELSE
3252
3253 l_PRICE_LIST_LINE_rec.automatic_flag := QP_Value_To_Id.automatic
3254 ( p_automatic => p_PRICE_LIST_LINE_val_rec.automatic
3255 );
3256
3257 IF l_PRICE_LIST_LINE_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
3258 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3259 END IF;
3260
3261 END IF;
3262
3263 END IF;
3264
3265 IF p_PRICE_LIST_LINE_val_rec.base_uom <> FND_API.G_MISS_CHAR
3266 THEN
3267
3268 IF p_PRICE_LIST_LINE_rec.base_uom_code <> FND_API.G_MISS_CHAR THEN
3269
3270 l_PRICE_LIST_LINE_rec.base_uom_code := p_PRICE_LIST_LINE_rec.base_uom_code;
3271
3272 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3273 THEN
3274
3275 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3276 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','base_uom');
3277 oe_msg_pub.Add;
3278
3279 END IF;
3280
3281 ELSE
3282
3283 l_PRICE_LIST_LINE_rec.base_uom_code := QP_Value_To_Id.base_uom
3284 ( p_base_uom => p_PRICE_LIST_LINE_val_rec.base_uom
3285 );
3286
3287 IF l_PRICE_LIST_LINE_rec.base_uom_code = FND_API.G_MISS_CHAR THEN
3288 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3289 END IF;
3290
3291 END IF;
3292
3293 END IF;
3294
3295 IF p_PRICE_LIST_LINE_val_rec.generate_using_formula <> FND_API.G_MISS_CHAR
3296 THEN
3297
3298 IF p_PRICE_LIST_LINE_rec.generate_using_formula_id <> FND_API.G_MISS_NUM THEN
3299
3300 l_PRICE_LIST_LINE_rec.generate_using_formula_id := p_PRICE_LIST_LINE_rec.generate_using_formula_id;
3301
3302 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3303 THEN
3304
3305 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3306 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','generate_using_formula');
3307 oe_msg_pub.Add;
3308
3309 END IF;
3310
3311 ELSE
3312
3313 l_PRICE_LIST_LINE_rec.generate_using_formula_id := QP_Value_To_Id.generate_using_formula
3314 ( p_generate_using_formula => p_PRICE_LIST_LINE_val_rec.generate_using_formula
3315 );
3316
3317 IF l_PRICE_LIST_LINE_rec.generate_using_formula_id = FND_API.G_MISS_NUM THEN
3318 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3319 END IF;
3320
3321 END IF;
3322
3323 END IF;
3324
3325 IF p_PRICE_LIST_LINE_val_rec.inventory_item <> FND_API.G_MISS_CHAR
3326 THEN
3327
3328 IF p_PRICE_LIST_LINE_rec.inventory_item_id <> FND_API.G_MISS_NUM THEN
3329
3330 l_PRICE_LIST_LINE_rec.inventory_item_id := p_PRICE_LIST_LINE_rec.inventory_item_id;
3331
3332 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3333 THEN
3334
3335 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3336 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','inventory_item');
3337 oe_msg_pub.Add;
3338
3339 END IF;
3340
3341 ELSE
3342
3343 l_PRICE_LIST_LINE_rec.inventory_item_id := QP_Value_To_Id.inventory_item
3344 ( p_inventory_item => p_PRICE_LIST_LINE_val_rec.inventory_item
3345 );
3346
3347 IF l_PRICE_LIST_LINE_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
3348 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3349 END IF;
3350
3351 END IF;
3352
3353 END IF;
3354
3355 IF p_PRICE_LIST_LINE_val_rec.list_header <> FND_API.G_MISS_CHAR
3356 THEN
3357
3358 IF p_PRICE_LIST_LINE_rec.list_header_id <> FND_API.G_MISS_NUM THEN
3359
3360 l_PRICE_LIST_LINE_rec.list_header_id := p_PRICE_LIST_LINE_rec.list_header_id;
3361
3362 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3363 THEN
3364
3365 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3366 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_header');
3367 oe_msg_pub.Add;
3368
3369 END IF;
3370
3371 ELSE
3372
3373 l_PRICE_LIST_LINE_rec.list_header_id := QP_Value_To_Id.list_header
3374 ( p_list_header => p_PRICE_LIST_LINE_val_rec.list_header
3375 );
3376
3377 IF l_PRICE_LIST_LINE_rec.list_header_id = FND_API.G_MISS_NUM THEN
3378 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3379 END IF;
3380
3381 END IF;
3382
3383 END IF;
3384
3385 IF p_PRICE_LIST_LINE_val_rec.list_line <> FND_API.G_MISS_CHAR
3386 THEN
3387
3388 IF p_PRICE_LIST_LINE_rec.list_line_id <> FND_API.G_MISS_NUM THEN
3389
3390 l_PRICE_LIST_LINE_rec.list_line_id := p_PRICE_LIST_LINE_rec.list_line_id;
3391
3392 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3393 THEN
3394
3395 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3396 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line');
3397 oe_msg_pub.Add;
3398
3399 END IF;
3400
3401 ELSE
3402
3403 l_PRICE_LIST_LINE_rec.list_line_id := QP_Value_To_Id.list_line
3404 ( p_list_line => p_PRICE_LIST_LINE_val_rec.list_line
3405 );
3406
3407 IF l_PRICE_LIST_LINE_rec.list_line_id = FND_API.G_MISS_NUM THEN
3408 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3409 END IF;
3410
3411 END IF;
3412
3413 END IF;
3414
3415 IF p_PRICE_LIST_LINE_val_rec.list_line_type <> FND_API.G_MISS_CHAR
3416 THEN
3417
3418 IF p_PRICE_LIST_LINE_rec.list_line_type_code <> FND_API.G_MISS_CHAR THEN
3419
3420 l_PRICE_LIST_LINE_rec.list_line_type_code := p_PRICE_LIST_LINE_rec.list_line_type_code;
3421
3422 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3423 THEN
3424
3425 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3426 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line_type');
3427 oe_msg_pub.Add;
3428
3429 END IF;
3430
3431 ELSE
3432
3433 l_PRICE_LIST_LINE_rec.list_line_type_code := QP_Value_To_Id.list_line_type
3434 ( p_list_line_type => p_PRICE_LIST_LINE_val_rec.list_line_type
3435 );
3436
3437 IF l_PRICE_LIST_LINE_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
3438 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3439 END IF;
3440
3441 END IF;
3442
3443 END IF;
3444
3445 IF p_PRICE_LIST_LINE_val_rec.modifier_level <> FND_API.G_MISS_CHAR
3446 THEN
3447
3448 IF p_PRICE_LIST_LINE_rec.modifier_level_code <> FND_API.G_MISS_CHAR THEN
3449
3450 l_PRICE_LIST_LINE_rec.modifier_level_code := p_PRICE_LIST_LINE_rec.modifier_level_code;
3451
3452 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3453 THEN
3454
3455 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3456 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','modifier_level');
3457 oe_msg_pub.Add;
3458
3459 END IF;
3460
3461 ELSE
3462
3463 l_PRICE_LIST_LINE_rec.modifier_level_code := QP_Value_To_Id.modifier_level
3464 ( p_modifier_level => p_PRICE_LIST_LINE_val_rec.modifier_level
3465 );
3466
3467 IF l_PRICE_LIST_LINE_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
3468 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3469 END IF;
3470
3471 END IF;
3472
3473 END IF;
3474
3475 IF p_PRICE_LIST_LINE_val_rec.organization <> FND_API.G_MISS_CHAR
3476 THEN
3477
3478 IF p_PRICE_LIST_LINE_rec.organization_id <> FND_API.G_MISS_NUM THEN
3479
3480 l_PRICE_LIST_LINE_rec.organization_id := p_PRICE_LIST_LINE_rec.organization_id;
3481
3482 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3483 THEN
3484
3485 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3486 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','organization');
3487 oe_msg_pub.Add;
3488
3489 END IF;
3490
3491 ELSE
3492
3493 l_PRICE_LIST_LINE_rec.organization_id := QP_Value_To_Id.organization
3494 ( p_organization => p_PRICE_LIST_LINE_val_rec.organization
3495 );
3496
3497 IF l_PRICE_LIST_LINE_rec.organization_id = FND_API.G_MISS_NUM THEN
3498 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3499 END IF;
3500
3501 END IF;
3502
3503 END IF;
3504
3505 IF p_PRICE_LIST_LINE_val_rec.override <> FND_API.G_MISS_CHAR
3506 THEN
3507
3508 IF p_PRICE_LIST_LINE_rec.override_flag <> FND_API.G_MISS_CHAR THEN
3509
3510 l_PRICE_LIST_LINE_rec.override_flag := p_PRICE_LIST_LINE_rec.override_flag;
3511
3512 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3513 THEN
3514
3515 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3516 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','override');
3517 oe_msg_pub.Add;
3518
3519 END IF;
3520
3521 ELSE
3522
3523 l_PRICE_LIST_LINE_rec.override_flag := QP_Value_To_Id.override
3524 ( p_override => p_PRICE_LIST_LINE_val_rec.override
3525 );
3526
3527 IF l_PRICE_LIST_LINE_rec.override_flag = FND_API.G_MISS_CHAR THEN
3528 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3529 END IF;
3530
3531 END IF;
3532
3533 END IF;
3534
3535 IF p_PRICE_LIST_LINE_val_rec.price_break_type <> FND_API.G_MISS_CHAR
3536 THEN
3537
3538 IF p_PRICE_LIST_LINE_rec.price_break_type_code <> FND_API.G_MISS_CHAR THEN
3539
3540 l_PRICE_LIST_LINE_rec.price_break_type_code := p_PRICE_LIST_LINE_rec.price_break_type_code;
3541
3542 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3543 THEN
3544
3545 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3546 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_break_type');
3547 oe_msg_pub.Add;
3548
3549 END IF;
3550
3551 ELSE
3552
3553 l_PRICE_LIST_LINE_rec.price_break_type_code := QP_Value_To_Id.price_break_type
3554 ( p_price_break_type => p_PRICE_LIST_LINE_val_rec.price_break_type
3555 );
3556
3557 IF l_PRICE_LIST_LINE_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
3558 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3559 END IF;
3560
3561 END IF;
3562
3563 END IF;
3564
3565 IF p_PRICE_LIST_LINE_val_rec.price_by_formula <> FND_API.G_MISS_CHAR
3566 THEN
3567
3568 IF p_PRICE_LIST_LINE_rec.price_by_formula_id <> FND_API.G_MISS_NUM THEN
3569
3570 l_PRICE_LIST_LINE_rec.price_by_formula_id := p_PRICE_LIST_LINE_rec.price_by_formula_id;
3571
3572 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3573 THEN
3574
3575 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3576 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_by_formula');
3577 oe_msg_pub.Add;
3578
3579 END IF;
3580
3581 ELSE
3582
3583 l_PRICE_LIST_LINE_rec.price_by_formula_id := QP_Value_To_Id.price_by_formula
3584 ( p_price_by_formula => p_PRICE_LIST_LINE_val_rec.price_by_formula
3585 );
3586
3587 IF l_PRICE_LIST_LINE_rec.price_by_formula_id = FND_API.G_MISS_NUM THEN
3588 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3589 END IF;
3590
3591 END IF;
3592
3593 END IF;
3594
3595 IF p_PRICE_LIST_LINE_val_rec.primary_uom <> FND_API.G_MISS_CHAR
3596 THEN
3597
3598 IF p_PRICE_LIST_LINE_rec.primary_uom_flag <> FND_API.G_MISS_CHAR THEN
3599
3600 l_PRICE_LIST_LINE_rec.primary_uom_flag := p_PRICE_LIST_LINE_rec.primary_uom_flag;
3601
3602 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3603 THEN
3604
3605 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3606 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','primary_uom');
3607 oe_msg_pub.Add;
3608
3609 END IF;
3610
3611 ELSE
3612
3613 l_PRICE_LIST_LINE_rec.primary_uom_flag := QP_Value_To_Id.primary_uom
3614 ( p_primary_uom => p_PRICE_LIST_LINE_val_rec.primary_uom
3615 );
3616
3617 IF l_PRICE_LIST_LINE_rec.primary_uom_flag = FND_API.G_MISS_CHAR THEN
3618 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3619 END IF;
3620
3621 END IF;
3622
3623 END IF;
3624
3625 IF p_PRICE_LIST_LINE_val_rec.print_on_invoice <> FND_API.G_MISS_CHAR
3626 THEN
3627
3628 IF p_PRICE_LIST_LINE_rec.print_on_invoice_flag <> FND_API.G_MISS_CHAR THEN
3629
3630 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := p_PRICE_LIST_LINE_rec.print_on_invoice_flag;
3631
3632 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3633 THEN
3634
3635 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3636 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','print_on_invoice');
3637 oe_msg_pub.Add;
3638
3639 END IF;
3640
3641 ELSE
3642
3643 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := QP_Value_To_Id.print_on_invoice
3644 ( p_print_on_invoice => p_PRICE_LIST_LINE_val_rec.print_on_invoice
3645 );
3646
3647 IF l_PRICE_LIST_LINE_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
3648 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3649 END IF;
3650
3651 END IF;
3652
3653 END IF;
3654
3655 IF p_PRICE_LIST_LINE_val_rec.rebate_transaction_type <> FND_API.G_MISS_CHAR
3656 THEN
3657
3658 IF p_PRICE_LIST_LINE_rec.rebate_trxn_type_code <> FND_API.G_MISS_CHAR THEN
3659
3660 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := p_PRICE_LIST_LINE_rec.rebate_trxn_type_code;
3661
3662 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3663 THEN
3664
3665 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3666 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','rebate_transaction_type');
3667 oe_msg_pub.Add;
3668
3669 END IF;
3670
3671 ELSE
3672
3673 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := QP_Value_To_Id.rebate_transaction_type
3674 ( p_rebate_transaction_type => p_PRICE_LIST_LINE_val_rec.rebate_transaction_type
3675 );
3676
3677 IF l_PRICE_LIST_LINE_rec.rebate_trxn_type_code = FND_API.G_MISS_CHAR THEN
3678 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3679 END IF;
3680
3681 END IF;
3682
3683 END IF;
3684
3685 IF p_PRICE_LIST_LINE_val_rec.related_item <> FND_API.G_MISS_CHAR
3686 THEN
3687
3688 IF p_PRICE_LIST_LINE_rec.related_item_id <> FND_API.G_MISS_NUM THEN
3689
3690 l_PRICE_LIST_LINE_rec.related_item_id := p_PRICE_LIST_LINE_rec.related_item_id;
3691
3692 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3693 THEN
3694
3695 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3696 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','related_item');
3697 oe_msg_pub.Add;
3698
3699 END IF;
3700
3701 ELSE
3702
3703 l_PRICE_LIST_LINE_rec.related_item_id := QP_Value_To_Id.related_item
3704 ( p_related_item => p_PRICE_LIST_LINE_val_rec.related_item
3705 );
3706
3707 IF l_PRICE_LIST_LINE_rec.related_item_id = FND_API.G_MISS_NUM THEN
3708 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3709 END IF;
3710
3711 END IF;
3712
3713 END IF;
3714
3715 IF p_PRICE_LIST_LINE_val_rec.relationship_type <> FND_API.G_MISS_CHAR
3716 THEN
3717
3718 IF p_PRICE_LIST_LINE_rec.relationship_type_id <> FND_API.G_MISS_NUM THEN
3719
3720 l_PRICE_LIST_LINE_rec.relationship_type_id := p_PRICE_LIST_LINE_rec.relationship_type_id;
3721
3722 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3723 THEN
3724
3725 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3726 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','relationship_type');
3727 oe_msg_pub.Add;
3728
3729 END IF;
3730
3731 ELSE
3732
3733 l_PRICE_LIST_LINE_rec.relationship_type_id := QP_Value_To_Id.relationship_type
3734 ( p_relationship_type => p_PRICE_LIST_LINE_val_rec.relationship_type
3735 );
3736
3737 IF l_PRICE_LIST_LINE_rec.relationship_type_id = FND_API.G_MISS_NUM THEN
3738 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3739 END IF;
3740
3741 END IF;
3742
3743 END IF;
3744
3745 IF p_PRICE_LIST_LINE_val_rec.reprice <> FND_API.G_MISS_CHAR
3746 THEN
3747
3748 IF p_PRICE_LIST_LINE_rec.reprice_flag <> FND_API.G_MISS_CHAR THEN
3749
3750 l_PRICE_LIST_LINE_rec.reprice_flag := p_PRICE_LIST_LINE_rec.reprice_flag;
3751
3752 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3753 THEN
3754
3755 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3756 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','reprice');
3757 oe_msg_pub.Add;
3758
3759 END IF;
3760
3761 ELSE
3762
3763 l_PRICE_LIST_LINE_rec.reprice_flag := QP_Value_To_Id.reprice
3764 ( p_reprice => p_PRICE_LIST_LINE_val_rec.reprice
3765 );
3766
3767 IF l_PRICE_LIST_LINE_rec.reprice_flag = FND_API.G_MISS_CHAR THEN
3768 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3769 END IF;
3770
3771 END IF;
3772
3773 END IF;
3774
3775 IF p_PRICE_LIST_LINE_val_rec.revision_reason <> FND_API.G_MISS_CHAR
3776 THEN
3777
3778 IF p_PRICE_LIST_LINE_rec.revision_reason_code <> FND_API.G_MISS_CHAR THEN
3779
3780 l_PRICE_LIST_LINE_rec.revision_reason_code := p_PRICE_LIST_LINE_rec.revision_reason_code;
3781
3782 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
3783 THEN
3784
3785 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
3786 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','revision_reason');
3787 oe_msg_pub.Add;
3788
3789 END IF;
3790
3791 ELSE
3792
3793 l_PRICE_LIST_LINE_rec.revision_reason_code := QP_Value_To_Id.revision_reason
3794 ( p_revision_reason => p_PRICE_LIST_LINE_val_rec.revision_reason
3795 );
3796
3797 IF l_PRICE_LIST_LINE_rec.revision_reason_code = FND_API.G_MISS_CHAR THEN
3798 l_PRICE_LIST_LINE_rec.return_status := FND_API.G_RET_STS_ERROR;
3799 END IF;
3800
3801 END IF;
3802
3803 END IF;
3804
3805
3806 RETURN l_PRICE_LIST_LINE_rec;
3807
3808 END Get_Ids;
3809
3810
3811 Procedure Print_Price_List_Line
3812 (p_PRICE_LIST_LINE_rec IN QP_PRICE_LIST_PUB.PRICE_LIST_LINE_REC_TYPE,
3813 p_counter IN NUMBER)
3814 IS
3815 BEGIN
3816
3817 oe_debug_pub.add('accrual qty ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.accrual_qty);
3818
3819 oe_debug_pub.add('accrual uom code ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.accrual_uom_code);
3820 oe_debug_pub.add('arithmetic_operator ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.arithmetic_operator);
3821 oe_debug_pub.add('attribute1 ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.attribute1);
3822 oe_debug_pub.add('attribute10 ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.attribute10);
3823 oe_debug_pub.add('attribute11 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute11);
3824 oe_debug_pub.add('attribute12 ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.attribute12);
3825 oe_debug_pub.add('attribute13 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute13);
3826 oe_debug_pub.add('attribute14 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute14);
3827 oe_debug_pub.add('attribute15 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute15);
3828 oe_debug_pub.add('attribute2 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute2);
3829 oe_debug_pub.add('attribute3 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute3);
3830 oe_debug_pub.add('attribute4 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute4);
3831 oe_debug_pub.add('attribute5 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute5);
3832 oe_debug_pub.add('attribute6 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute6);
3833 oe_debug_pub.add('attribute7 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute7);
3834 oe_debug_pub.add('attribute8 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute8);
3835 oe_debug_pub.add('attribute9 ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.attribute9);
3836 oe_debug_pub.add('automatic_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.automatic_flag);
3837 oe_debug_pub.add('base qty ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.base_qty);
3838 oe_debug_pub.add('base uom code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.base_uom_code);
3839 oe_debug_pub.add('comments ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.comments);
3840 oe_debug_pub.add('context ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.context);
3841 oe_debug_pub.add('created_by ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.created_by);
3842 oe_debug_pub.add('creation_date ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.creation_date);
3843 oe_debug_pub.add('effective_period_uom ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.effective_period_uom);
3844 oe_debug_pub.add('end_date_active ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.end_date_active);
3845 oe_debug_pub.add('estim_accrual_rate ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.estim_accrual_rate);
3846 oe_debug_pub.add('generate_using_formula_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.generate_using_formula_id);
3847 oe_debug_pub.add('inventory_item_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.inventory_item_id);
3848 oe_debug_pub.add('last_updated_by ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.last_updated_by);
3849 oe_debug_pub.add('last_update_date ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.last_update_date);
3850 oe_debug_pub.add('accrual qty ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.last_update_login);
3851 oe_debug_pub.add('list_header_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.list_header_id);
3852 oe_debug_pub.add('list_line_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.list_line_id);
3853 oe_debug_pub.add('list_line_type_code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.list_line_type_code);
3854 oe_debug_pub.add('list_price ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.list_price);
3855 oe_debug_pub.add('product_precedence ' || p_counter || ': ' || p_PRICE_LIST_LINE_rec.product_precedence);
3856 oe_debug_pub.add('modifier_level_code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.modifier_level_code);
3857 oe_debug_pub.add('number_effective_periods ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.number_effective_periods);
3858 oe_debug_pub.add('operand ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.operand);
3859 oe_debug_pub.add('organization_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.organization_id);
3860 oe_debug_pub.add('override_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.override_flag);
3861 oe_debug_pub.add('percent_price ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.percent_price);
3862 oe_debug_pub.add('accrual qty ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.price_break_type_code);
3863 oe_debug_pub.add('price_by_formula_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.price_by_formula_id);
3864 oe_debug_pub.add('primary_uom_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.primary_uom_flag);
3865 oe_debug_pub.add('print_on_invoice_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.print_on_invoice_flag);
3866 oe_debug_pub.add('program_application_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.program_application_id);
3867 oe_debug_pub.add('program_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.program_id);
3868 oe_debug_pub.add('program_update_date ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.program_update_date);
3869 oe_debug_pub.add('rebate_trxn_type_code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.rebate_trxn_type_code);
3870 -- block pricing
3871 oe_debug_pub.add('recurring_value' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.recurring_value);
3872 oe_debug_pub.add('related_item_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.related_item_id);
3873 oe_debug_pub.add('relationship_type_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.relationship_type_id);
3874 oe_debug_pub.add('reprice_flag ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.reprice_flag);
3875 oe_debug_pub.add('request_id ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.request_id);
3876 oe_debug_pub.add('revision ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.revision);
3877 oe_debug_pub.add('revision_date ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.revision_date);
3878 oe_debug_pub.add('revision_reason_code ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.revision_reason_code);
3879 oe_debug_pub.add('start_date_active ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.start_date_active);
3880 oe_debug_pub.add('substitution_attr ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.substitution_attribute);
3881 oe_debug_pub.add('substitution_context ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.substitution_context);
3882 oe_debug_pub.add('substitution_value ' || p_counter || ': ' ||p_PRICE_LIST_LINE_rec.substitution_value);
3883
3884 END Print_Price_List_Line;
3885
3886 FUNCTION get_qualifier_attr_value(p_qual_attr_value in varchar2)
3887 return varchar2
3888 is
3889 l_qual_attr_value number;
3890 BEGIN
3891
3892 IF p_qual_attr_value is not null THEN
3893
3894 select to_number(p_qual_attr_value)
3895 into l_qual_attr_value
3896 from dual;
3897
3898 return to_char(l_qual_attr_value);
3899 ELSE
3900 return null;
3901 END IF;
3902
3903 EXCEPTION
3904
3905 WHEN INVALID_NUMBER THEN
3906
3907 return NULL;
3908
3909 END get_qualifier_attr_value;
3910
3911
3912 /******************************************************************************
3913 * Important: The following function Get_Context is currently not being
3914 * called anywhere. So this function has not been altered for used
3915 * with Attributes Manager installed. So, please do not use this
3916 * utility function from anywhere in the code even in the future
3917 * unless you modify it suitably for use with Attributes Manager.
3918 ******************************************************************************/
3919 FUNCTION Get_Context(p_FlexField_Name IN VARCHAR2
3920 ,p_context IN VARCHAR2)RETURN VARCHAR2 IS
3921
3922 Flexfield FND_DFLEX.dflex_r;
3923 Flexinfo FND_DFLEX.dflex_dr;
3924 Contexts FND_DFLEX.contexts_dr;
3925
3926
3927 x_context_code VARCHAR2(240);
3928
3929 BEGIN
3930
3931 -- Call Flexapi to get contexts
3932
3933 FND_DFLEX.get_flexfield('QP',p_FlexField_Name,Flexfield,Flexinfo);
3934 FND_DFLEX.get_contexts(Flexfield,Contexts);
3935
3936
3937 For i in 1..Contexts.ncontexts LOOP
3938
3939 If(Contexts.is_enabled(i) AND (NOT (Contexts.is_global(i)))) Then
3940
3941 If p_context = Contexts.context_code(i) Then
3942 x_context_code :=Contexts.context_name(i);
3943 EXIT;
3944 End If;
3945
3946 End if;
3947 End Loop;
3948
3949 RETURN x_context_code;
3950
3951 END Get_Context;
3952
3953 /******************************************************************************
3954 * Important: The following function Get_Attribute_Code is currently not being
3955 * called anywhere. So this function has not been altered for used
3956 * with Attributes Manager installed. So, please do not use this
3957 * utility function from anywhere in the code even in the future
3958 * unless you modify it suitably for use with Attributes Manager.
3959 ******************************************************************************/
3960 FUNCTION Get_Attribute_Code(p_FlexField_Name IN VARCHAR2
3961 ,p_Context_Name IN VARCHAR2
3962 ,p_attribute IN VARCHAR2
3963 ) RETURN VARCHAR2 IS
3964
3965 Flexfield FND_DFLEX.dflex_r;
3966 Flexinfo FND_DFLEX.dflex_dr;
3967 Contexts FND_DFLEX.contexts_dr;
3968 segments FND_DFLEX.segments_dr;
3969 i BINARY_INTEGER;
3970 x_attribute_code VARCHAR2(240) := NULL;
3971
3972 BEGIN
3973
3974 --fnd_message.debug('passsed values are ' ||p_FlexField_Name);
3975 --fnd_message.debug('passsed values are ' ||p_Context_Name);
3976 --fnd_message.debug('passsed values are ' ||p_attribute);
3977
3978
3979 FND_DFLEX.get_flexfield('QP',p_FlexField_Name,Flexfield,Flexinfo);
3980 FND_DFLEX.get_segments(FND_DFLEX.make_context(Flexfield,p_Context_Name),
3981 segments,TRUE);
3982
3983 For i in 1..segments.nsegments LOOP
3984
3985 IF segments.is_enabled(i) THEN
3986
3987 --fnd_message.debug('col name is ' ||segments.application_column_name(i));
3988 --fnd_message.debug(' seg name is ' ||segments.segment_name(i));
3989 IF segments.application_column_name(i) = p_attribute Then
3990 x_attribute_code := segments.row_prompt(i);
3991 RETURN x_attribute_code;
3992 End if;
3993 END IF;
3994 END LOOP;
3995
3996 RETURN x_attribute_code;
3997
3998 END Get_Attribute_Code;
3999
4000 FUNCTION Get_Product_Value(p_FlexField_Name IN VARCHAR2
4001 ,p_Context_Name IN VARCHAR2
4002 ,p_attribute_name IN VARCHAR2
4003 ,p_attr_value IN VARCHAR2
4004 ) RETURN VARCHAR2 IS
4005 l_item_name varchar2(240) := NULL;
4006 l_category_name varchar2(240) := NULL;
4007 l_segment_name varchar2(240) := NULL;
4008 l_organization_id VARCHAR2(30) := TO_CHAR(QP_UTIL.Get_Item_Validation_Org);
4009
4010
4011 BEGIN
4012
4013 IF ( (p_FlexField_Name = 'QP_ATTR_DEFNS_PRICING')
4014 and ( p_Context_Name = 'ITEM' ) ) THEN
4015
4016 IF (p_attribute_name = 'PRICING_ATTRIBUTE1') then
4017
4018 --changed the code to use G_ORGANIZATION_ID for performance problem on modifiers
4019 select concatenated_segments
4020 into l_item_name
4021 from mtl_system_items_vl
4022 where inventory_item_id = to_number(p_attr_value)
4023 and organization_id = l_organization_id and rownum=1;
4024
4025 RETURN l_item_name;
4026
4027 ELSIF (p_attribute_name = 'PRICING_ATTRIBUTE2') then
4028 /* product catalog
4029 select concatenated_segments
4030 into l_category_name
4031 from mtl_categories_kfv
4032 where category_id = to_number(p_attr_value) and rownum=1;
4033 */
4034 select category_name
4035 into l_category_name
4036 from qp_item_categories_v
4037 where category_id = to_number(p_attr_value) and rownum=1;
4038
4039 RETURN l_category_name;
4040 /*
4041
4042 ELSIF (p_attribute_name = 'PRICING_ATTRIBUTE3') then
4043
4044 RETURN( Get_Attribute_Value(
4045 p_FlexField_Name => 'QP_ATTR_DEFNS_PRICING'
4046 ,p_Context_Name => 'ITEM'
4047 ,p_segment_name => 'ALL_ITEMS'
4048 ,p_attr_value => p_attr_value) );
4049
4050 */
4051
4052 ELSE
4053
4054 l_segment_name := Get_Segment_Name(p_FlexField_Name,
4055 p_Context_Name,
4056 p_attribute_name);
4057
4058 RETURN( Get_Attribute_Value(
4059 p_FlexField_Name
4060 ,p_Context_Name
4061 ,l_segment_name
4062 ,p_attr_value) );
4063
4064
4065
4066 END IF;
4067
4068 ELSE
4069
4070 RETURN NULL;
4071
4072 END IF;
4073
4074 EXCEPTION
4075
4076 WHEN OTHERS THEN RETURN NULL;
4077
4078 END Get_Product_Value;
4079
4080 FUNCTION Get_Attribute_Value(p_FlexField_Name IN VARCHAR2
4081 ,p_Context_Name IN VARCHAR2
4082 ,p_segment_name IN VARCHAR2
4083 ,p_attr_value IN VARCHAR2
4084 ) RETURN VARCHAR2 IS
4085
4086 Vset FND_VSET.valueset_r;
4087 Fmt FND_VSET.valueset_dr;
4088
4089 Found BOOLEAN;
4090 Row NUMBER;
4091 Value FND_VSET.value_dr;
4092
4093
4094
4095 x_Format_Type Varchar2(1);
4096 x_Validation_Type Varchar2(1);
4097 x_Vsid NUMBER;
4098
4099
4100 x_attr_value_code VARCHAR2(240);
4101 l_id VARCHAR2(150);
4102 l_value VARCHAR2(150);
4103
4104
4105 BEGIN
4106
4107 QP_UTIL.get_valueset_id(p_FlexField_Name,p_Context_Name,p_Segment_Name,x_Vsid,x_Format_Type,
4108 x_Validation_Type);
4109 --fnd_message.debug(x_Vsid);
4110 --fnd_message.debug(x_Validation_Type);
4111 --fnd_message.show;
4112
4113 IF x_Validation_Type In('F' ,'I') AND x_Vsid IS NOT NULL THEN
4114 IF x_Validation_Type = 'I' THEN --Added for 2332139
4115 FND_VSET.get_valueset(x_Vsid,Vset,Fmt);
4116 FND_VSET.get_value_init(Vset,TRUE);
4117 FND_VSET.get_value(Vset,Row,Found,Value);
4118
4119 IF Fmt.Has_Id Then --id is defined.Hence compare for id
4120
4121 While(Found) Loop
4122
4123 --fnd_message.debug(Value.value);
4124 --fnd_message.debug(Value.meaning);
4125 --fnd_message.debug(Value.id);
4126
4127 If p_attr_value = Value.id Then
4128
4129 x_attr_value_code := Value.Value;
4130 RETURN x_attr_value_code;
4131 End If;
4132 FND_VSET.get_value(Vset,Row,Found,Value);
4133
4134 End Loop;
4135
4136 Else
4137
4138 While(Found) Loop
4139
4140 --fnd_message.debug(Value.value);
4141 --fnd_message.debug(Value.meaning);
4142 --fnd_message.debug(Value.id);
4143
4144 If p_attr_value = Value.value Then
4145
4146 x_attr_value_code := p_attr_value;
4147 RETURN x_attr_value_code;
4148 End If;
4149 FND_VSET.get_value(Vset,Row,Found,Value);
4150
4151 End Loop;
4152
4153 End If; -- end of Fmt.Has_Id
4154
4155 FND_VSET.get_value_end(Vset);
4156
4157 /* Added for 2332139 */
4158
4159 ELSIF x_Validation_Type='F' THEN
4160 FND_VSET.get_valueset(x_Vsid,Vset,Fmt);
4161
4162 IF (QP_UTIL.value_exists_in_table(Vset.table_info,
4163 p_attr_value,l_id,l_value)) THEN
4164
4165 IF Fmt.Has_Id Then
4166 --id is defined. Hence compare id
4167
4168 IF p_attr_value = l_id Then
4169
4170 x_attr_value_code := l_value;
4171 END IF;
4172 ELSE
4173 IF p_attr_value = l_value THEN
4174 x_attr_value_code := p_attr_value;
4175 END IF;
4176 END IF; --End of Fmt.Has_ID
4177 END IF;
4178
4179 END IF;
4180
4181 ELSE
4182
4183 x_attr_value_code := p_attr_value;
4184 END IF;
4185
4186 RETURN x_attr_value_code;
4187
4188
4189 END Get_Attribute_Value;
4190
4191 FUNCTION Get_Item_Validate_Org_Value(p_pricing_attribute IN VARCHAR2,p_attr_value IN VARCHAR2
4192 ) RETURN VARCHAR2 IS
4193
4194 l_name varchar2(240) := 'Y';
4195
4196 BEGIN
4197 IF (p_pricing_attribute = 'PRICING_ATTRIBUTE1') then
4198
4199 select to_char(organization_id)
4200 into l_name
4201 from mtl_system_items_b
4202 where inventory_item_id = to_number(p_attr_value)
4203 and organization_id = G_ORGANIZATION_ID;
4204
4205 RETURN l_name;
4206 ELSE
4207
4208 RETURN l_name;
4209
4210 END IF;
4211
4212 EXCEPTION
4213
4214 WHEN OTHERS THEN RETURN 'N';
4215
4216 END Get_Item_Validate_Org_Value;
4217
4218 FUNCTION Get_Segment_Name(p_FlexField_Name IN VARCHAR2
4219 ,p_Context_Name IN VARCHAR2
4220 ,p_attribute IN VARCHAR2
4221 ) RETURN VARCHAR2 IS
4222
4223 Flexfield FND_DFLEX.dflex_r;
4224 Flexinfo FND_DFLEX.dflex_dr;
4225 Contexts FND_DFLEX.contexts_dr;
4226 segments FND_DFLEX.segments_dr;
4227 i BINARY_INTEGER;
4228 x_segment_name VARCHAR2(240) := NULL;
4229
4230 l_pte_code VARCHAR2(30);
4231 l_context_type VARCHAR2(30);
4232 l_error_code NUMBER;
4233
4234 CURSOR attribute_cur(a_context_type VARCHAR2, a_context_code VARCHAR2,
4235 a_pte_code VARCHAR2, a_attribute VARCHAR2)
4236 IS
4237 SELECT b.segment_code
4238 FROM qp_segments_tl a, qp_segments_b b,
4239 qp_prc_contexts_b c, qp_pte_segments d
4240 WHERE c.prc_context_type = a_context_type
4241 AND c.prc_context_code = a_context_code
4242 AND c.prc_context_id = b.prc_context_id
4243 AND b.segment_mapping_column = a_attribute
4244 AND b.segment_id = a.segment_id
4245 AND a.language = userenv('LANG')
4246 AND b.segment_id = d.segment_id
4247 AND d.pte_code = a_pte_code;
4248
4249
4250 BEGIN
4251
4252
4253 IF QP_UTIL.Attrmgr_Installed = 'Y' THEN
4254
4255 FND_PROFILE.GET('QP_PRICING_TRANSACTION_ENTITY', l_pte_code);
4256
4257 IF l_pte_code IS NULL THEN
4258 l_pte_code := 'ORDFUL';
4259 END IF;
4260
4261 QP_UTIL.Get_Context_Type(p_flexfield_name, p_context_name,
4262 l_context_type, l_error_code);
4263
4264 IF l_error_code = 0 THEN
4265
4266 OPEN attribute_cur(l_context_type, p_context_name,
4267 l_pte_code, p_attribute);
4268
4269 FETCH attribute_cur INTO x_segment_name;
4270 CLOSE attribute_cur;
4271
4272 END IF; --If l_error_code = 0
4273
4274 ELSE
4275
4276 /* Added for 2332139 */
4277
4278 BEGIN
4279 select end_user_column_name
4280 INTO x_segment_name
4281 from FND_DESCR_FLEX_COL_USAGE_VL
4282 where APPLICATION_ID = 661 and
4283 DESCRIPTIVE_FLEXFIELD_NAME = p_FlexField_Name and
4284 DESCRIPTIVE_FLEX_CONTEXT_CODE = p_Context_Name and
4285 application_column_name = p_attribute and
4286 enabled_flag='Y';
4287
4288 EXCEPTION
4289 WHEN OTHERS THEN
4290 x_segment_name := NULL;
4291 END;
4292
4293 /* Commented out for 2332139 */
4294 /*
4295
4296 FND_DFLEX.get_flexfield('QP',p_FlexField_Name,Flexfield,Flexinfo);
4297 FND_DFLEX.get_segments(FND_DFLEX.make_context(Flexfield,p_Context_Name),
4298 segments,TRUE);
4299
4300 FOR i IN 1..segments.nsegments LOOP
4301
4302 IF segments.is_enabled(i) THEN
4303
4304 IF segments.application_column_name(i) = p_attribute Then
4305 x_segment_name := segments.segment_name(i);
4306 EXIT;
4307 END IF;
4308
4309 END IF;
4310
4311 END LOOP;
4312 */
4313 END IF; --If qp_util.attrmgr_installed = 'Y'
4314
4315 RETURN x_segment_name;
4316
4317 END Get_Segment_Name;
4318
4319
4320 FUNCTION Get_Product_Id(p_FlexField_Name IN VARCHAR2
4321 ,p_Context_Name IN VARCHAR2
4322 ,p_attribute IN VARCHAR2
4323 ,p_attr_value IN VARCHAR2) RETURN NUMBER IS
4324
4325 l_product_id number := NULL;
4326
4327 BEGIN
4328
4329 IF p_flexfield_name = 'QP_ATTR_DEFNS_PRICING' THEN
4330
4331 IF ( p_Context_Name = 'ITEM' and
4332 (p_attribute in ('PRICING_ATTRIBUTE1', 'PRICING_ATTRIBUTE2') )
4333 ) then
4334
4335 l_product_id := TO_NUMBER(p_attr_value);
4336
4337 END IF;
4338
4339 END IF;
4340
4341 RETURN l_product_id;
4342
4343 END Get_Product_Id;
4344
4345
4346
4347 END QP_Price_List_Line_Util;