[Home] [Help]
PACKAGE BODY: APPS.QP_QP_FORM_MODIFIERS
Source
1 PACKAGE BODY QP_QP_Form_Modifiers AS
2 /* $Header: QPXFMLLB.pls 120.5 2006/03/06 00:02:41 nirmkuma noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_QP_Form_Modifiers';
7
8 -- Global variables holding cached record.
9
10 g_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
11 g_db_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
12
13 -- Forward declaration of procedures maintaining entity record cache.
14
15 PROCEDURE Write_MODIFIERS
16 ( p_MODIFIERS_rec IN QP_Modifiers_PUB.Modifiers_Rec_Type
17 , p_db_record IN BOOLEAN := FALSE
18 );
19
20 FUNCTION Get_MODIFIERS
21 ( p_db_record IN BOOLEAN := FALSE
22 , p_list_line_id IN NUMBER
23 )
24 RETURN QP_Modifiers_PUB.Modifiers_Rec_Type;
25
26 PROCEDURE Clear_MODIFIERS;
27
28 -- Global variable holding performed operations.
29
30 g_opr__tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
31
32 -- Procedure : Default_Attributes
33 --
34
35 PROCEDURE Default_Attributes
36 ( p_list_header_id IN NUMBER
37 , x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
38 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
39 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
40 , x_arithmetic_operator OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 , x_automatic_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 --, x_base_qty OUT NOCOPY /* file.sql.39 change */ NUMBER
58 , x_pricing_phase_id OUT NOCOPY /* file.sql.39 change */ NUMBER
59 --, x_base_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
60 , x_comments OUT NOCOPY /* file.sql.39 change */ VARCHAR2
61 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
62 , x_effective_period_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
63 , x_end_date_active OUT NOCOPY /* file.sql.39 change */ DATE
64 , x_estim_accrual_rate OUT NOCOPY /* file.sql.39 change */ NUMBER
65 , x_generate_using_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
66 --, x_gl_class_id OUT NOCOPY /* file.sql.39 change */ NUMBER
67 , x_inventory_item_id OUT NOCOPY /* file.sql.39 change */ NUMBER
68 , x_list_header_id OUT NOCOPY /* file.sql.39 change */ NUMBER
69 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
70 , x_list_line_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 , x_list_price OUT NOCOPY /* file.sql.39 change */ NUMBER
72 --, x_list_price_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
73 , x_modifier_level_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
74 --, x_new_price OUT NOCOPY /* file.sql.39 change */ NUMBER
75 , x_number_effective_periods OUT NOCOPY /* file.sql.39 change */ NUMBER
76 , x_operand OUT NOCOPY /* file.sql.39 change */ NUMBER
77 , x_organization_id OUT NOCOPY /* file.sql.39 change */ NUMBER
78 , x_override_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
79 , x_percent_price OUT NOCOPY /* file.sql.39 change */ NUMBER
80 , x_price_break_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
81 , x_price_by_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
82 , x_primary_uom_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
83 , x_print_on_invoice_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
84 --, x_rebate_subtype_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
85 , x_rebate_trxn_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
86 , x_related_item_id OUT NOCOPY /* file.sql.39 change */ NUMBER
87 , x_relationship_type_id OUT NOCOPY /* file.sql.39 change */ NUMBER
88 , x_reprice_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
89 , x_revision OUT NOCOPY /* file.sql.39 change */ VARCHAR2
90 , x_revision_date OUT NOCOPY /* file.sql.39 change */ DATE
91 , x_revision_reason_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
92 , x_start_date_active OUT NOCOPY /* file.sql.39 change */ DATE
93 , x_substitution_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
94 , x_substitution_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
95 , x_substitution_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
96 , x_automatic OUT NOCOPY /* file.sql.39 change */ VARCHAR2
97 --, x_base_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
98 , x_generate_using_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
99 --, x_gl_class OUT NOCOPY /* file.sql.39 change */ VARCHAR2
100 , x_inventory_item OUT NOCOPY /* file.sql.39 change */ VARCHAR2
101 , x_list_header OUT NOCOPY /* file.sql.39 change */ VARCHAR2
102 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
103 , x_list_line_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
104 --, x_list_price_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
105 , x_modifier_level OUT NOCOPY /* file.sql.39 change */ VARCHAR2
106 , x_organization OUT NOCOPY /* file.sql.39 change */ VARCHAR2
107 , x_override OUT NOCOPY /* file.sql.39 change */ VARCHAR2
108 , x_price_break_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
109 , x_price_by_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
110 , x_primary_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
111 , x_print_on_invoice OUT NOCOPY /* file.sql.39 change */ VARCHAR2
112 --, x_rebate_subtype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
113 , x_rebate_transaction_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
114 , x_related_item OUT NOCOPY /* file.sql.39 change */ VARCHAR2
115 , x_relationship_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
116 , x_reprice OUT NOCOPY /* file.sql.39 change */ VARCHAR2
117 , x_revision_reason OUT NOCOPY /* file.sql.39 change */ VARCHAR2
118 , x_accrual_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
119 , x_pricing_group_sequence OUT NOCOPY /* file.sql.39 change */ NUMBER
120 , x_incompatibility_grp_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
121 , x_list_line_no OUT NOCOPY /* file.sql.39 change */ VARCHAR2
122 , x_product_precedence OUT NOCOPY /* file.sql.39 change */ NUMBER
123 , x_expiration_period_start_date OUT NOCOPY /* file.sql.39 change */ DATE
124 , x_number_expiration_periods OUT NOCOPY /* file.sql.39 change */ NUMBER
125 , x_expiration_period_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
126 , x_expiration_date OUT NOCOPY /* file.sql.39 change */ DATE
127 , x_estim_gl_value OUT NOCOPY /* file.sql.39 change */ NUMBER
128 , x_benefit_price_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
129 --, x_recurring_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
130 , x_benefit_limit OUT NOCOPY /* file.sql.39 change */ NUMBER
131 , x_charge_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
132 , x_charge_subtype_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
133 , x_benefit_qty OUT NOCOPY /* file.sql.39 change */ NUMBER
134 , x_benefit_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
135 , x_accrual_conversion_rate OUT NOCOPY /* file.sql.39 change */ NUMBER
136 , x_proration_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
137 , x_include_on_returns_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
138 , x_from_rltd_modifier_id OUT NOCOPY /* file.sql.39 change */ NUMBER
139 , x_to_rltd_modifier_id OUT NOCOPY /* file.sql.39 change */ NUMBER
140 , x_rltd_modifier_grp_no OUT NOCOPY /* file.sql.39 change */ NUMBER
141 , x_rltd_modifier_grp_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
142 , x_net_amount_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
143 , x_accum_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
144 , x_continuous_price_break_flag OUT NOCOPY VARCHAR2 --Continuous Price Breaks
145 )
146 IS
147 l_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
148 l_MODIFIERS_val_rec QP_Modifiers_PUB.Modifiers_Val_Rec_Type;
149 l_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
150 l_control_rec QP_GLOBALS.Control_Rec_Type;
151 l_return_status VARCHAR2(1);
152 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
153 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
154 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
155 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
156 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
157 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
158 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
159 BEGIN
160
161 oe_debug_pub.add('BEGIN Default_Attributes in QPXFMLLB');
162
163 -- Set control flags.
164
165 l_control_rec.controlled_operation := TRUE;
166 l_control_rec.default_attributes := TRUE;
167
168 l_control_rec.change_attributes := FALSE;
169 l_control_rec.validate_entity := FALSE;
170 l_control_rec.write_to_DB := FALSE;
171 l_control_rec.process := FALSE;
172
173 -- Instruct API to retain its caches
174
175 l_control_rec.clear_api_cache := FALSE;
176 l_control_rec.clear_api_requests := FALSE;
177
178 -- Load IN parameters if any exist
179
180 l_MODIFIERS_rec.list_header_id := p_list_header_id;
181
182
183 -- Defaulting of flex values is currently done by the form.
184 -- Set flex attributes to NULL in order to avoid defaulting them.
185
186 l_MODIFIERS_rec.attribute1 := NULL;
187 l_MODIFIERS_rec.attribute10 := NULL;
188 l_MODIFIERS_rec.attribute11 := NULL;
189 l_MODIFIERS_rec.attribute12 := NULL;
190 l_MODIFIERS_rec.attribute13 := NULL;
191 l_MODIFIERS_rec.attribute14 := NULL;
192 l_MODIFIERS_rec.attribute15 := NULL;
193 l_MODIFIERS_rec.attribute2 := NULL;
194 l_MODIFIERS_rec.attribute3 := NULL;
195 l_MODIFIERS_rec.attribute4 := NULL;
196 l_MODIFIERS_rec.attribute5 := NULL;
197 l_MODIFIERS_rec.attribute6 := NULL;
198 l_MODIFIERS_rec.attribute7 := NULL;
199 l_MODIFIERS_rec.attribute8 := NULL;
200 l_MODIFIERS_rec.attribute9 := NULL;
201 l_MODIFIERS_rec.context := NULL;
202
203 -- Set Operation to Create
204
205 l_MODIFIERS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
206
207 -- Populate MODIFIERS table
208
209 l_MODIFIERS_tbl(1) := l_MODIFIERS_rec;
210
211 -- Call QP_Modifiers_PVT.Process_MODIFIERS
212
213 QP_Modifiers_PVT.Process_MODIFIERS
214 ( p_api_version_number => 1.0
215 , p_init_msg_list => FND_API.G_TRUE
216 , x_return_status => l_return_status
217 , x_msg_count => x_msg_count
218 , x_msg_data => x_msg_data
219 , p_control_rec => l_control_rec
220 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
221 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
222 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
223 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
224 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
225 );
226
227 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
228 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
229 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
230 RAISE FND_API.G_EXC_ERROR;
231 END IF;
232
233
234 -- Unload out tbl
235
236 l_x_MODIFIERS_rec := l_x_MODIFIERS_tbl(1);
237
238 -- Load OUT parameters.
239
240 x_arithmetic_operator := l_x_MODIFIERS_rec.arithmetic_operator;
241 x_attribute1 := l_x_MODIFIERS_rec.attribute1;
242 x_attribute10 := l_x_MODIFIERS_rec.attribute10;
243 x_attribute11 := l_x_MODIFIERS_rec.attribute11;
244 x_attribute12 := l_x_MODIFIERS_rec.attribute12;
245 x_attribute13 := l_x_MODIFIERS_rec.attribute13;
246 x_attribute14 := l_x_MODIFIERS_rec.attribute14;
247 x_attribute15 := l_x_MODIFIERS_rec.attribute15;
248 x_attribute2 := l_x_MODIFIERS_rec.attribute2;
249 x_attribute3 := l_x_MODIFIERS_rec.attribute3;
250 x_attribute4 := l_x_MODIFIERS_rec.attribute4;
251 x_attribute5 := l_x_MODIFIERS_rec.attribute5;
252 x_attribute6 := l_x_MODIFIERS_rec.attribute6;
253 x_attribute7 := l_x_MODIFIERS_rec.attribute7;
254 x_attribute8 := l_x_MODIFIERS_rec.attribute8;
255 x_attribute9 := l_x_MODIFIERS_rec.attribute9;
256 x_automatic_flag := l_x_MODIFIERS_rec.automatic_flag;
257 -- x_base_qty := l_x_MODIFIERS_rec.base_qty;
258 x_pricing_phase_id := l_x_MODIFIERS_rec.pricing_phase_id;
259 -- x_base_uom_code := l_x_MODIFIERS_rec.base_uom_code;
260 x_comments := l_x_MODIFIERS_rec.comments;
261 x_context := l_x_MODIFIERS_rec.context;
262 x_effective_period_uom := l_x_MODIFIERS_rec.effective_period_uom;
263 x_end_date_active := l_x_MODIFIERS_rec.end_date_active;
264 x_estim_accrual_rate := l_x_MODIFIERS_rec.estim_accrual_rate;
265 x_generate_using_formula_id := l_x_MODIFIERS_rec.generate_using_formula_id;
266 -- x_gl_class_id := l_x_MODIFIERS_rec.gl_class_id;
267 x_inventory_item_id := l_x_MODIFIERS_rec.inventory_item_id;
268 x_list_header_id := l_x_MODIFIERS_rec.list_header_id;
269 x_list_line_id := l_x_MODIFIERS_rec.list_line_id;
270 x_list_line_type_code := l_x_MODIFIERS_rec.list_line_type_code;
271 x_list_price := l_x_MODIFIERS_rec.list_price;
272 -- x_list_price_uom_code := l_x_MODIFIERS_rec.list_price_uom_code;
273 x_modifier_level_code := l_x_MODIFIERS_rec.modifier_level_code;
274 -- x_new_price := l_x_MODIFIERS_rec.new_price;
275 x_number_effective_periods := l_x_MODIFIERS_rec.number_effective_periods;
276 x_operand := l_x_MODIFIERS_rec.operand;
277 x_organization_id := l_x_MODIFIERS_rec.organization_id;
278 x_override_flag := l_x_MODIFIERS_rec.override_flag;
279 x_percent_price := l_x_MODIFIERS_rec.percent_price;
280 x_price_break_type_code := l_x_MODIFIERS_rec.price_break_type_code;
281 x_price_by_formula_id := l_x_MODIFIERS_rec.price_by_formula_id;
282 x_primary_uom_flag := l_x_MODIFIERS_rec.primary_uom_flag;
283 x_print_on_invoice_flag := l_x_MODIFIERS_rec.print_on_invoice_flag;
284 -- x_rebate_subtype_code := l_x_MODIFIERS_rec.rebate_subtype_code;
285 x_rebate_trxn_type_code := l_x_MODIFIERS_rec.rebate_trxn_type_code;
286 x_related_item_id := l_x_MODIFIERS_rec.related_item_id;
287 x_relationship_type_id := l_x_MODIFIERS_rec.relationship_type_id;
288 x_reprice_flag := l_x_MODIFIERS_rec.reprice_flag;
289 x_revision := l_x_MODIFIERS_rec.revision;
290 x_revision_date := l_x_MODIFIERS_rec.revision_date;
291 x_revision_reason_code := l_x_MODIFIERS_rec.revision_reason_code;
292 x_start_date_active := l_x_MODIFIERS_rec.start_date_active;
293 x_substitution_attribute := l_x_MODIFIERS_rec.substitution_attribute;
294 x_substitution_context := l_x_MODIFIERS_rec.substitution_context;
295 x_substitution_value := l_x_MODIFIERS_rec.substitution_value;
296 x_accrual_flag := l_x_MODIFIERS_rec.accrual_flag;
297 x_pricing_group_sequence := l_x_MODIFIERS_rec.pricing_group_sequence;
298 x_incompatibility_grp_code := l_x_MODIFIERS_rec.incompatibility_grp_code;
299 x_list_line_no := l_x_MODIFIERS_rec.list_line_no;
300 x_product_precedence := l_x_MODIFIERS_rec.product_precedence;
301 x_expiration_period_start_date := l_x_MODIFIERS_rec.expiration_period_start_date;
302 x_number_expiration_periods := l_x_MODIFIERS_rec.number_expiration_periods;
303 x_expiration_period_uom := l_x_MODIFIERS_rec.expiration_period_uom;
304 x_expiration_date := l_x_MODIFIERS_rec.expiration_date;
305 x_estim_gl_value := l_x_MODIFIERS_rec.estim_gl_value;
306 x_benefit_price_list_line_id := l_x_MODIFIERS_rec.benefit_price_list_line_id;
307 -- x_recurring_flag := l_x_MODIFIERS_rec.recurring_flag;
308 x_benefit_limit := l_x_MODIFIERS_rec.benefit_limit;
309 x_charge_type_code := l_x_MODIFIERS_rec.charge_type_code;
310 x_charge_subtype_code := l_x_MODIFIERS_rec.charge_subtype_code;
311 x_benefit_qty := l_x_MODIFIERS_rec.benefit_qty;
312 x_benefit_uom_code := l_x_MODIFIERS_rec.benefit_uom_code;
313 x_accrual_conversion_rate := l_x_MODIFIERS_rec.accrual_conversion_rate;
314 x_proration_type_code := l_x_MODIFIERS_rec.proration_type_code;
315 x_include_on_returns_flag := l_x_MODIFIERS_rec.include_on_returns_flag;
316 x_from_rltd_modifier_id := l_x_MODIFIERS_rec.from_rltd_modifier_id;
317 x_to_rltd_modifier_id := l_x_MODIFIERS_rec.to_rltd_modifier_id;
318 x_rltd_modifier_grp_no := l_x_MODIFIERS_rec.rltd_modifier_grp_no;
319 x_rltd_modifier_grp_type := l_x_MODIFIERS_rec.rltd_modifier_grp_type;
320 x_net_amount_flag := l_x_MODIFIERS_rec.net_amount_flag;
321 x_accum_attribute := l_x_MODIFIERS_rec.accum_attribute;
322 x_continuous_price_break_flag := l_x_MODIFIERS_rec.continuous_price_break_flag;
323 --Continuous Price Breaks
324 -- Load display out parameters if any
325
326 l_MODIFIERS_val_rec := QP_Modifiers_Util.Get_Values
327 ( p_MODIFIERS_rec => l_x_MODIFIERS_rec
328 );
329 x_automatic := l_MODIFIERS_val_rec.automatic;
330 -- x_base_uom := l_MODIFIERS_val_rec.base_uom;
331 x_generate_using_formula := l_MODIFIERS_val_rec.generate_using_formula;
332 -- x_gl_class := l_MODIFIERS_val_rec.gl_class;
333 x_inventory_item := l_MODIFIERS_val_rec.inventory_item;
334 x_list_header := l_MODIFIERS_val_rec.list_header;
335 x_list_line := l_MODIFIERS_val_rec.list_line;
336 x_list_line_type := l_MODIFIERS_val_rec.list_line_type;
337 -- x_list_price_uom := l_MODIFIERS_val_rec.list_price_uom;
338 x_modifier_level := l_MODIFIERS_val_rec.modifier_level;
339 x_organization := l_MODIFIERS_val_rec.organization;
340 x_override := l_MODIFIERS_val_rec.override;
341 x_price_break_type := l_MODIFIERS_val_rec.price_break_type;
342 x_price_by_formula := l_MODIFIERS_val_rec.price_by_formula;
343 x_primary_uom := l_MODIFIERS_val_rec.primary_uom;
344 x_print_on_invoice := l_MODIFIERS_val_rec.print_on_invoice;
345 -- x_rebate_subtype := l_MODIFIERS_val_rec.rebate_subtype;
346 x_rebate_transaction_type := l_MODIFIERS_val_rec.rebate_transaction_type;
347 x_related_item := l_MODIFIERS_val_rec.related_item;
348 x_relationship_type := l_MODIFIERS_val_rec.relationship_type;
349 x_reprice := l_MODIFIERS_val_rec.reprice;
350 x_revision_reason := l_MODIFIERS_val_rec.revision_reason;
351
352 -- Write to cache.
353 -- Set db_flag to False before writing to cache
354
355 l_x_MODIFIERS_rec.db_flag := FND_API.G_FALSE;
356
357 Write_MODIFIERS
358 ( p_MODIFIERS_rec => l_x_MODIFIERS_rec
359 );
360
361 -- Set return status.
362
363 x_return_status := FND_API.G_RET_STS_SUCCESS;
364
365 -- Get message count and data
366
367 OE_MSG_PUB.Count_And_Get
368 ( p_count => x_msg_count
369 , p_data => x_msg_data
370 );
371
372 oe_debug_pub.add('END Default_Attributes in QPXFMLLB');
373
374 EXCEPTION
375
376 WHEN FND_API.G_EXC_ERROR THEN
377
378 x_return_status := FND_API.G_RET_STS_ERROR;
379
380 -- Get message count and data
381
382 OE_MSG_PUB.Count_And_Get
383 ( p_count => x_msg_count
384 , p_data => x_msg_data
385 );
386
387 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
388
389 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
390
391 -- Get message count and data
392
393 OE_MSG_PUB.Count_And_Get
394 ( p_count => x_msg_count
395 , p_data => x_msg_data
396 );
397
398 WHEN OTHERS THEN
399
400 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
401
402 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
403 THEN
404 OE_MSG_PUB.Add_Exc_Msg
405 ( G_PKG_NAME
406 , 'Default_Attributes'
407 );
408 END IF;
409
410 -- Get message count and data
411
412 OE_MSG_PUB.Count_And_Get
413 ( p_count => x_msg_count
414 , p_data => x_msg_data
415 );
416
417
418 END Default_Attributes;
419
420 -- Procedure : Change_Attribute
421 --
422
423 PROCEDURE Change_Attribute
424 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
425 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
426 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
427 , p_list_line_id IN NUMBER
428 , p_attr_id IN NUMBER
429 , p_attr_value IN VARCHAR2
430 , p_attribute1 IN VARCHAR2
431 , p_attribute10 IN VARCHAR2
432 , p_attribute11 IN VARCHAR2
433 , p_attribute12 IN VARCHAR2
434 , p_attribute13 IN VARCHAR2
435 , p_attribute14 IN VARCHAR2
436 , p_attribute15 IN VARCHAR2
437 , p_attribute2 IN VARCHAR2
438 , p_attribute3 IN VARCHAR2
439 , p_attribute4 IN VARCHAR2
440 , p_attribute5 IN VARCHAR2
441 , p_attribute6 IN VARCHAR2
442 , p_attribute7 IN VARCHAR2
443 , p_attribute8 IN VARCHAR2
444 , p_attribute9 IN VARCHAR2
445 , p_context IN VARCHAR2
446 , x_arithmetic_operator OUT NOCOPY /* file.sql.39 change */ VARCHAR2
447 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
448 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
449 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
450 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
451 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
452 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
453 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
454 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
455 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
456 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
457 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
458 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
459 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
460 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
461 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
462 , x_automatic_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
463 --, x_base_qty OUT NOCOPY /* file.sql.39 change */ NUMBER
464 , x_pricing_phase_id OUT NOCOPY /* file.sql.39 change */ NUMBER
465 --, x_base_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
466 , x_comments OUT NOCOPY /* file.sql.39 change */ VARCHAR2
467 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
468 , x_effective_period_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
469 , x_end_date_active OUT NOCOPY /* file.sql.39 change */ DATE
470 , x_estim_accrual_rate OUT NOCOPY /* file.sql.39 change */ NUMBER
471 , x_generate_using_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
472 --, x_gl_class_id OUT NOCOPY /* file.sql.39 change */ NUMBER
473 , x_inventory_item_id OUT NOCOPY /* file.sql.39 change */ NUMBER
474 , x_list_header_id OUT NOCOPY /* file.sql.39 change */ NUMBER
475 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
476 , x_list_line_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
477 , x_list_price OUT NOCOPY /* file.sql.39 change */ NUMBER
478 --, x_list_price_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
479 , x_modifier_level_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
480 --, x_new_price OUT NOCOPY /* file.sql.39 change */ NUMBER
481 , x_number_effective_periods OUT NOCOPY /* file.sql.39 change */ NUMBER
482 , x_operand OUT NOCOPY /* file.sql.39 change */ NUMBER
483 , x_organization_id OUT NOCOPY /* file.sql.39 change */ NUMBER
484 , x_override_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
485 , x_percent_price OUT NOCOPY /* file.sql.39 change */ NUMBER
486 , x_price_break_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
487 , x_price_by_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
488 , x_primary_uom_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
489 , x_print_on_invoice_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
490 --, x_rebate_subtype_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
491 , x_rebate_trxn_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
492 , x_related_item_id OUT NOCOPY /* file.sql.39 change */ NUMBER
493 , x_relationship_type_id OUT NOCOPY /* file.sql.39 change */ NUMBER
494 , x_reprice_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
495 , x_revision OUT NOCOPY /* file.sql.39 change */ VARCHAR2
496 , x_revision_date OUT NOCOPY /* file.sql.39 change */ DATE
497 , x_revision_reason_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
498 , x_start_date_active OUT NOCOPY /* file.sql.39 change */ DATE
499 , x_substitution_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
500 , x_substitution_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
501 , x_substitution_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
502 , x_automatic OUT NOCOPY /* file.sql.39 change */ VARCHAR2
503 --, x_base_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
504 , x_generate_using_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
505 --, x_gl_class OUT NOCOPY /* file.sql.39 change */ VARCHAR2
506 , x_inventory_item OUT NOCOPY /* file.sql.39 change */ VARCHAR2
507 , x_list_header OUT NOCOPY /* file.sql.39 change */ VARCHAR2
508 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
509 , x_list_line_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
510 --, x_list_price_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
511 , x_modifier_level OUT NOCOPY /* file.sql.39 change */ VARCHAR2
512 , x_organization OUT NOCOPY /* file.sql.39 change */ VARCHAR2
513 , x_override OUT NOCOPY /* file.sql.39 change */ VARCHAR2
514 , x_price_break_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
515 , x_price_by_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
516 , x_primary_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
517 , x_print_on_invoice OUT NOCOPY /* file.sql.39 change */ VARCHAR2
518 --, x_rebate_subtype OUT NOCOPY /* file.sql.39 change */ VARCHAR2
519 , x_rebate_transaction_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
520 , x_related_item OUT NOCOPY /* file.sql.39 change */ VARCHAR2
521 , x_relationship_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
522 , x_reprice OUT NOCOPY /* file.sql.39 change */ VARCHAR2
523 , x_revision_reason OUT NOCOPY /* file.sql.39 change */ VARCHAR2
524 , x_accrual_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
525 , x_pricing_group_sequence OUT NOCOPY /* file.sql.39 change */ NUMBER
526 , x_incompatibility_grp_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
527 , x_list_line_no OUT NOCOPY /* file.sql.39 change */ VARCHAR2
528 , x_product_precedence OUT NOCOPY /* file.sql.39 change */ NUMBER
529 , x_expiration_period_start_date OUT NOCOPY /* file.sql.39 change */ DATE
530 , x_number_expiration_periods OUT NOCOPY /* file.sql.39 change */ NUMBER
531 , x_expiration_period_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
532 , x_expiration_date OUT NOCOPY /* file.sql.39 change */ DATE
533 , x_estim_gl_value OUT NOCOPY /* file.sql.39 change */ NUMBER
534 , x_benefit_price_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
535 --, x_recurring_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
536 , x_benefit_limit OUT NOCOPY /* file.sql.39 change */ NUMBER
537 , x_charge_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
538 , x_charge_subtype_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
539 , x_benefit_qty OUT NOCOPY /* file.sql.39 change */ NUMBER
540 , x_benefit_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
541 , x_accrual_conversion_rate OUT NOCOPY /* file.sql.39 change */ NUMBER
542 , x_proration_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
543 , x_include_on_returns_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
544 , x_from_rltd_modifier_id OUT NOCOPY /* file.sql.39 change */ NUMBER
545 , x_to_rltd_modifier_id OUT NOCOPY /* file.sql.39 change */ NUMBER
546 , x_rltd_modifier_grp_no OUT NOCOPY /* file.sql.39 change */ NUMBER
547 , x_rltd_modifier_grp_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
548 , x_net_amount_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
549 , x_accum_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
550 , x_continuous_price_break_flag OUT NOCOPY VARCHAR2 --Continuous Price Breaks
551 )
552 IS
553 l_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
554 l_old_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
555 l_MODIFIERS_val_rec QP_Modifiers_PUB.Modifiers_Val_Rec_Type;
556 l_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
557 l_old_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
558 l_control_rec QP_GLOBALS.Control_Rec_Type;
559 l_return_status VARCHAR2(1);
560 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
561 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
562 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
563 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
564 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
565 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
566 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
567 BEGIN
568
569 oe_debug_pub.add('BEGIN Change_attribute in QPXFMLLB');
570
571 -- Set control flags.
572
573 l_control_rec.controlled_operation := TRUE;
574 l_control_rec.change_attributes := TRUE;
575
576 l_control_rec.default_attributes := FALSE;
577 l_control_rec.validate_entity := FALSE;
578 l_control_rec.write_to_DB := FALSE;
579 l_control_rec.process := FALSE;
580
581 -- Instruct API to retain its caches
582
583 l_control_rec.clear_api_cache := FALSE;
584 l_control_rec.clear_api_requests := FALSE;
585
586 -- Read MODIFIERS from cache
587
588 l_MODIFIERS_rec := Get_MODIFIERS
589 ( p_db_record => FALSE
590 , p_list_line_id => p_list_line_id
591 );
592
593 l_old_MODIFIERS_rec := l_MODIFIERS_rec;
594
595
596
597 IF p_attr_id = QP_Modifiers_Util.G_ARITHMETIC_OPERATOR THEN
598 l_MODIFIERS_rec.arithmetic_operator := p_attr_value;
599 ELSIF p_attr_id = QP_Modifiers_Util.G_AUTOMATIC THEN
600 l_MODIFIERS_rec.automatic_flag := p_attr_value;
601 -- ELSIF p_attr_id = QP_Modifiers_Util.G_BASE_QTY THEN
602 -- l_MODIFIERS_rec.base_qty := TO_NUMBER(p_attr_value);
603 ELSIF p_attr_id = QP_Modifiers_Util.G_PRICING_PHASE THEN
604 l_MODIFIERS_rec.pricing_phase_id := TO_NUMBER(p_attr_value);
605 -- ELSIF p_attr_id = QP_Modifiers_Util.G_BASE_UOM THEN
606 -- l_MODIFIERS_rec.base_uom_code := p_attr_value;
607 ELSIF p_attr_id = QP_Modifiers_Util.G_COMMENTS THEN
608 l_MODIFIERS_rec.comments := p_attr_value;
609 ELSIF p_attr_id = QP_Modifiers_Util.G_EFFECTIVE_PERIOD_UOM THEN
610 l_MODIFIERS_rec.effective_period_uom := p_attr_value;
611 ELSIF p_attr_id = QP_Modifiers_Util.G_END_DATE_ACTIVE THEN
612 l_MODIFIERS_rec.end_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
613 ELSIF p_attr_id = QP_Modifiers_Util.G_ESTIM_ACCRUAL_RATE THEN
614 l_MODIFIERS_rec.estim_accrual_rate := TO_NUMBER(p_attr_value);
615 ELSIF p_attr_id = QP_Modifiers_Util.G_GENERATE_USING_FORMULA THEN
616 l_MODIFIERS_rec.generate_using_formula_id := TO_NUMBER(p_attr_value);
617 -- ELSIF p_attr_id = QP_Modifiers_Util.G_GL_CLASS THEN
618 -- l_MODIFIERS_rec.gl_class_id := TO_NUMBER(p_attr_value);
619 ELSIF p_attr_id = QP_Modifiers_Util.G_INVENTORY_ITEM THEN
620 l_MODIFIERS_rec.inventory_item_id := TO_NUMBER(p_attr_value);
621 ELSIF p_attr_id = QP_Modifiers_Util.G_LIST_HEADER THEN
622 l_MODIFIERS_rec.list_header_id := TO_NUMBER(p_attr_value);
623 ELSIF p_attr_id = QP_Modifiers_Util.G_LIST_LINE THEN
624 l_MODIFIERS_rec.list_line_id := TO_NUMBER(p_attr_value);
625 ELSIF p_attr_id = QP_Modifiers_Util.G_LIST_LINE_TYPE THEN
626 l_MODIFIERS_rec.list_line_type_code := p_attr_value;
627 ELSIF p_attr_id = QP_Modifiers_Util.G_LIST_PRICE THEN
628 l_MODIFIERS_rec.list_price := TO_NUMBER(p_attr_value);
629 -- ELSIF p_attr_id = QP_Modifiers_Util.G_LIST_PRICE_UOM THEN
630 -- l_MODIFIERS_rec.list_price_uom_code := p_attr_value;
631 ELSIF p_attr_id = QP_Modifiers_Util.G_MODIFIER_LEVEL THEN
632 l_MODIFIERS_rec.modifier_level_code := p_attr_value;
633 -- ELSIF p_attr_id = QP_Modifiers_Util.G_NEW_PRICE THEN
634 -- l_MODIFIERS_rec.new_price := TO_NUMBER(p_attr_value);
635 ELSIF p_attr_id = QP_Modifiers_Util.G_NUMBER_EFFECTIVE_PERIODS THEN
636 l_MODIFIERS_rec.number_effective_periods := TO_NUMBER(p_attr_value);
637 ELSIF p_attr_id = QP_Modifiers_Util.G_OPERAND THEN
638 l_MODIFIERS_rec.operand := TO_NUMBER(p_attr_value);
639 ELSIF p_attr_id = QP_Modifiers_Util.G_ORGANIZATION THEN
640 l_MODIFIERS_rec.organization_id := TO_NUMBER(p_attr_value);
641 ELSIF p_attr_id = QP_Modifiers_Util.G_OVERRIDE THEN
642 l_MODIFIERS_rec.override_flag := p_attr_value;
643 ELSIF p_attr_id = QP_Modifiers_Util.G_PERCENT_PRICE THEN
644 l_MODIFIERS_rec.percent_price := TO_NUMBER(p_attr_value);
645 ELSIF p_attr_id = QP_Modifiers_Util.G_PRICE_BREAK_TYPE THEN
646 l_MODIFIERS_rec.price_break_type_code := p_attr_value;
647 ELSIF p_attr_id = QP_Modifiers_Util.G_PRICE_BY_FORMULA THEN
648 l_MODIFIERS_rec.price_by_formula_id := TO_NUMBER(p_attr_value);
649 ELSIF p_attr_id = QP_Modifiers_Util.G_PRIMARY_UOM THEN
650 l_MODIFIERS_rec.primary_uom_flag := p_attr_value;
651 ELSIF p_attr_id = QP_Modifiers_Util.G_PRINT_ON_INVOICE THEN
652 OE_Debug_Pub.add(to_char(QP_Modifiers_Util.G_PRINT_ON_INVOICE)||to_char(p_attr_id));
653 l_MODIFIERS_rec.print_on_invoice_flag := p_attr_value;
654 -- ELSIF p_attr_id = QP_Modifiers_Util.G_REBATE_SUBTYPE THEN
655 -- l_MODIFIERS_rec.rebate_subtype_code := p_attr_value;
656 ELSIF p_attr_id = QP_Modifiers_Util.G_REBATE_TRANSACTION_TYPE THEN
657 l_MODIFIERS_rec.rebate_trxn_type_code := p_attr_value;
658 ELSIF p_attr_id = QP_Modifiers_Util.G_RELATED_ITEM THEN
659 l_MODIFIERS_rec.related_item_id := TO_NUMBER(p_attr_value);
660 ELSIF p_attr_id = QP_Modifiers_Util.G_RELATIONSHIP_TYPE THEN
661 l_MODIFIERS_rec.relationship_type_id := TO_NUMBER(p_attr_value);
662 ELSIF p_attr_id = QP_Modifiers_Util.G_REPRICE THEN
663 l_MODIFIERS_rec.reprice_flag := p_attr_value;
664 ELSIF p_attr_id = QP_Modifiers_Util.G_REVISION THEN
665 l_MODIFIERS_rec.revision := p_attr_value;
666 ELSIF p_attr_id = QP_Modifiers_Util.G_REVISION_DATE THEN
667 l_MODIFIERS_rec.revision_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
668 ELSIF p_attr_id = QP_Modifiers_Util.G_REVISION_REASON THEN
669 l_MODIFIERS_rec.revision_reason_code := p_attr_value;
670 ELSIF p_attr_id = QP_Modifiers_Util.G_START_DATE_ACTIVE THEN
671 l_MODIFIERS_rec.start_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
672 ELSIF p_attr_id = QP_Modifiers_Util.G_SUBSTITUTION_ATTRIBUTE THEN
673 l_MODIFIERS_rec.substitution_attribute := p_attr_value;
674 ELSIF p_attr_id = QP_Modifiers_Util.G_SUBSTITUTION_CONTEXT THEN
675 l_MODIFIERS_rec.substitution_context := p_attr_value;
676 ELSIF p_attr_id = QP_Modifiers_Util.G_SUBSTITUTION_VALUE THEN
677 l_MODIFIERS_rec.substitution_value := p_attr_value;
678 ELSIF p_attr_id = QP_Modifiers_Util.G_ACCRUAL_FLAG THEN
679 l_MODIFIERS_rec.accrual_flag := p_attr_value;
680 ELSIF p_attr_id = QP_Modifiers_Util.G_PRICING_GROUP_SEQUENCE THEN
681 l_MODIFIERS_rec.pricing_group_sequence := TO_NUMBER(p_attr_value);
682 ELSIF p_attr_id = QP_Modifiers_Util.G_INCOMPATIBILITY_GRP_CODE THEN
683 l_MODIFIERS_rec.incompatibility_grp_code := p_attr_value;
684 ELSIF p_attr_id = QP_Modifiers_Util.G_LIST_LINE_NO THEN
685 l_MODIFIERS_rec.list_line_no := p_attr_value;
686 ELSIF p_attr_id = QP_Modifiers_Util.G_PRODUCT_PRECEDENCE THEN
687 l_MODIFIERS_rec.product_precedence := TO_NUMBER(p_attr_value);
688 ELSIF p_attr_id = QP_Modifiers_Util.G_EXPIRATION_PERIOD_START_DATE THEN
689 l_MODIFIERS_rec.expiration_period_start_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
690 ELSIF p_attr_id = QP_Modifiers_Util.G_NUMBER_EXPIRATION_PERIODS THEN
691 l_MODIFIERS_rec.number_expiration_periods := TO_NUMBER(p_attr_value);
692 ELSIF p_attr_id = QP_Modifiers_Util.G_EXPIRATION_PERIOD_UOM THEN
693 l_MODIFIERS_rec.expiration_period_uom := p_attr_value;
694 ELSIF p_attr_id = QP_Modifiers_Util.G_EXPIRATION_DATE THEN
695 l_MODIFIERS_rec.expiration_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
696 ELSIF p_attr_id = QP_Modifiers_Util.G_ESTIM_GL_VALUE THEN
697 l_MODIFIERS_rec.estim_gl_value := TO_NUMBER(p_attr_value);
698 ELSIF p_attr_id = QP_Modifiers_Util.G_BENEFIT_PRICE_LIST_LINE THEN
699 l_MODIFIERS_rec.benefit_price_list_line_id := TO_NUMBER(p_attr_value);
700 -- ELSIF p_attr_id = QP_Modifiers_Util.G_RECURRING_FLAG THEN
701 -- l_MODIFIERS_rec.recurring_flag := p_attr_value;
702 ELSIF p_attr_id = QP_Modifiers_Util.G_BENEFIT_LIMIT THEN
703 l_MODIFIERS_rec.benefit_limit := TO_NUMBER(p_attr_value);
704 ELSIF p_attr_id = QP_Modifiers_Util.G_CHARGE_TYPE THEN
705 l_MODIFIERS_rec.charge_type_code := p_attr_value;
706 ELSIF p_attr_id = QP_Modifiers_Util.G_CHARGE_SUBTYPE THEN
707 l_MODIFIERS_rec.charge_subtype_code := p_attr_value;
708 ELSIF p_attr_id = QP_Modifiers_Util.G_BENEFIT_QTY THEN
709 l_MODIFIERS_rec.benefit_qty := TO_NUMBER(p_attr_value);
710 ELSIF p_attr_id = QP_Modifiers_Util.G_BENEFIT_UOM THEN
711 l_MODIFIERS_rec.benefit_uom_code := p_attr_value;
712 ELSIF p_attr_id = QP_Modifiers_Util.G_ACCRUAL_CONVERSION_RATE THEN
713 l_MODIFIERS_rec.accrual_conversion_rate := TO_NUMBER(p_attr_value);
714 ELSIF p_attr_id = QP_Modifiers_Util.G_PRORATION_TYPE THEN
715 l_MODIFIERS_rec.proration_type_code := p_attr_value;
716 ELSIF p_attr_id = QP_Modifiers_Util.G_INCLUDE_ON_RETURNS_FLAG THEN
717 l_MODIFIERS_rec.include_on_returns_flag := p_attr_value;
718 ELSIF p_attr_id = QP_Modifiers_Util.G_FROM_RLTD_MODIFIER THEN
719 l_MODIFIERS_rec.from_rltd_modifier_id := TO_NUMBER(p_attr_value);
720 ELSIF p_attr_id = QP_Modifiers_Util.G_TO_RLTD_MODIFIER THEN
721 l_MODIFIERS_rec.to_rltd_modifier_id := TO_NUMBER(p_attr_value);
722 ELSIF p_attr_id = QP_Modifiers_Util.G_RLTD_MODIFIER_GRP_NO THEN
723 l_MODIFIERS_rec.rltd_modifier_grp_no := TO_NUMBER(p_attr_value);
724 ELSIF p_attr_id = QP_Modifiers_Util.G_RLTD_MODIFIER_GRP_TYPE THEN
725 l_MODIFIERS_rec.rltd_modifier_grp_type := p_attr_value;
726 ELSIF p_attr_id = QP_Modifiers_Util.G_NET_AMOUNT THEN
727 l_MODIFIERS_rec.net_amount_flag := p_attr_value;
728 ELSIF p_attr_id = QP_Modifiers_Util.G_ACCUM_ATTRIBUTE THEN
729 l_MODIFIERS_rec.accum_attribute := p_attr_value;
730 ELSIF p_attr_id = QP_Modifiers_Util.G_continuous_price_break_flag THEN
731 l_MODIFIERS_rec.continuous_price_break_flag := p_attr_value; --Continuous
732 --Price Breaks
733 ELSIF p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE1
734 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE10
735 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE11
736 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE12
737 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE13
738 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE14
739 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE15
740 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE2
741 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE3
742 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE4
743 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE5
744 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE6
745 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE7
746 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE8
747 OR p_attr_id = QP_Modifiers_Util.G_ATTRIBUTE9
748 OR p_attr_id = QP_Modifiers_Util.G_CONTEXT
749 THEN
750
751 l_MODIFIERS_rec.attribute1 := p_attribute1;
752 l_MODIFIERS_rec.attribute10 := p_attribute10;
753 l_MODIFIERS_rec.attribute11 := p_attribute11;
754 l_MODIFIERS_rec.attribute12 := p_attribute12;
755 l_MODIFIERS_rec.attribute13 := p_attribute13;
756 l_MODIFIERS_rec.attribute14 := p_attribute14;
757 l_MODIFIERS_rec.attribute15 := p_attribute15;
758 l_MODIFIERS_rec.attribute2 := p_attribute2;
759 l_MODIFIERS_rec.attribute3 := p_attribute3;
760 l_MODIFIERS_rec.attribute4 := p_attribute4;
761 l_MODIFIERS_rec.attribute5 := p_attribute5;
762 l_MODIFIERS_rec.attribute6 := p_attribute6;
763 l_MODIFIERS_rec.attribute7 := p_attribute7;
764 l_MODIFIERS_rec.attribute8 := p_attribute8;
765 l_MODIFIERS_rec.attribute9 := p_attribute9;
766 l_MODIFIERS_rec.context := p_context;
767
768 ELSE
769
770 -- Unexpected error, unrecognized attribute
771
772 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
773 THEN
774 OE_MSG_PUB.Add_Exc_Msg
775 ( G_PKG_NAME
776 , 'Change_Attribute'
777 , 'Unrecognized attribute'
778 );
779 END IF;
780
781 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
782
783 END IF;
784
785 -- Set Operation.
786
787 IF FND_API.To_Boolean(l_MODIFIERS_rec.db_flag) THEN
788 l_MODIFIERS_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
789 ELSE
790 l_MODIFIERS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
791 END IF;
792
793 -- Populate MODIFIERS table
794
795 l_MODIFIERS_tbl(1) := l_MODIFIERS_rec;
796 l_old_MODIFIERS_tbl(1) := l_old_MODIFIERS_rec;
797
798 -- Call QP_Modifiers_PVT.Process_MODIFIERS
799
800 QP_Modifiers_PVT.Process_MODIFIERS
801 ( p_api_version_number => 1.0
802 , p_init_msg_list => FND_API.G_TRUE
803 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
804 , x_return_status => l_return_status
805 , x_msg_count => x_msg_count
806 , x_msg_data => x_msg_data
807 , p_control_rec => l_control_rec
808 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
809 , p_old_MODIFIERS_tbl => l_old_MODIFIERS_tbl
810 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
811 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
812 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
813 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
814 );
815
816 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
817 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
818 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
819 RAISE FND_API.G_EXC_ERROR;
820 END IF;
821
822
823 -- Unload out tbl
824
825 l_x_MODIFIERS_rec := l_x_MODIFIERS_tbl(1);
826
827 -- Init OUT parameters to missing.
828
829 x_arithmetic_operator := FND_API.G_MISS_CHAR;
830 x_attribute1 := FND_API.G_MISS_CHAR;
831 x_attribute10 := FND_API.G_MISS_CHAR;
832 x_attribute11 := FND_API.G_MISS_CHAR;
833 x_attribute12 := FND_API.G_MISS_CHAR;
834 x_attribute13 := FND_API.G_MISS_CHAR;
835 x_attribute14 := FND_API.G_MISS_CHAR;
836 x_attribute15 := FND_API.G_MISS_CHAR;
837 x_attribute2 := FND_API.G_MISS_CHAR;
838 x_attribute3 := FND_API.G_MISS_CHAR;
839 x_attribute4 := FND_API.G_MISS_CHAR;
840 x_attribute5 := FND_API.G_MISS_CHAR;
841 x_attribute6 := FND_API.G_MISS_CHAR;
842 x_attribute7 := FND_API.G_MISS_CHAR;
843 x_attribute8 := FND_API.G_MISS_CHAR;
844 x_attribute9 := FND_API.G_MISS_CHAR;
845 x_automatic_flag := FND_API.G_MISS_CHAR;
846 -- x_base_qty := FND_API.G_MISS_NUM;
847 x_pricing_phase_id := FND_API.G_MISS_NUM;
848 -- x_base_uom_code := FND_API.G_MISS_CHAR;
849 x_comments := FND_API.G_MISS_CHAR;
850 x_context := FND_API.G_MISS_CHAR;
851 x_effective_period_uom := FND_API.G_MISS_CHAR;
852 x_end_date_active := FND_API.G_MISS_DATE;
853 x_estim_accrual_rate := FND_API.G_MISS_NUM;
854 x_generate_using_formula_id := FND_API.G_MISS_NUM;
855 -- x_gl_class_id := FND_API.G_MISS_NUM;
856 x_inventory_item_id := FND_API.G_MISS_NUM;
857 x_list_header_id := FND_API.G_MISS_NUM;
858 x_list_line_id := FND_API.G_MISS_NUM;
859 x_list_line_type_code := FND_API.G_MISS_CHAR;
860 x_list_price := FND_API.G_MISS_NUM;
861 -- x_list_price_uom_code := FND_API.G_MISS_CHAR;
862 x_modifier_level_code := FND_API.G_MISS_CHAR;
863 -- x_new_price := FND_API.G_MISS_NUM;
864 x_number_effective_periods := FND_API.G_MISS_NUM;
865 x_operand := FND_API.G_MISS_NUM;
866 x_organization_id := FND_API.G_MISS_NUM;
867 x_override_flag := FND_API.G_MISS_CHAR;
868 x_percent_price := FND_API.G_MISS_NUM;
869 x_price_break_type_code := FND_API.G_MISS_CHAR;
870 x_price_by_formula_id := FND_API.G_MISS_NUM;
871 x_primary_uom_flag := FND_API.G_MISS_CHAR;
872 x_print_on_invoice_flag := FND_API.G_MISS_CHAR;
873 -- x_rebate_subtype_code := FND_API.G_MISS_CHAR;
874 x_rebate_trxn_type_code := FND_API.G_MISS_CHAR;
875 x_related_item_id := FND_API.G_MISS_NUM;
876 x_relationship_type_id := FND_API.G_MISS_NUM;
877 x_reprice_flag := FND_API.G_MISS_CHAR;
878 x_revision := FND_API.G_MISS_CHAR;
879 x_revision_date := FND_API.G_MISS_DATE;
880 x_revision_reason_code := FND_API.G_MISS_CHAR;
881 x_start_date_active := FND_API.G_MISS_DATE;
882 x_substitution_attribute := FND_API.G_MISS_CHAR;
883 x_substitution_context := FND_API.G_MISS_CHAR;
884 x_substitution_value := FND_API.G_MISS_CHAR;
885 x_automatic := FND_API.G_MISS_CHAR;
886 -- x_base_uom := FND_API.G_MISS_CHAR;
887 x_generate_using_formula := FND_API.G_MISS_CHAR;
888 -- x_gl_class := FND_API.G_MISS_CHAR;
889 x_inventory_item := FND_API.G_MISS_CHAR;
890 x_list_header := FND_API.G_MISS_CHAR;
891 x_list_line := FND_API.G_MISS_CHAR;
892 x_list_line_type := FND_API.G_MISS_CHAR;
893 -- x_list_price_uom := FND_API.G_MISS_CHAR;
894 x_modifier_level := FND_API.G_MISS_CHAR;
895 x_organization := FND_API.G_MISS_CHAR;
896 x_override := FND_API.G_MISS_CHAR;
897 x_price_break_type := FND_API.G_MISS_CHAR;
898 x_price_by_formula := FND_API.G_MISS_CHAR;
899 x_primary_uom := FND_API.G_MISS_CHAR;
900 x_print_on_invoice := FND_API.G_MISS_CHAR;
901 -- x_rebate_subtype := FND_API.G_MISS_CHAR;
902 x_rebate_transaction_type := FND_API.G_MISS_CHAR;
903 x_related_item := FND_API.G_MISS_CHAR;
904 x_relationship_type := FND_API.G_MISS_CHAR;
905 x_reprice := FND_API.G_MISS_CHAR;
906 x_revision_reason := FND_API.G_MISS_CHAR;
907 x_accrual_flag := FND_API.G_MISS_CHAR;
908 x_pricing_group_sequence := FND_API.G_MISS_NUM;
909 x_incompatibility_grp_code := FND_API.G_MISS_CHAR;
910 x_list_line_no := FND_API.G_MISS_CHAR;
911 x_product_precedence := FND_API.G_MISS_NUM;
912 x_expiration_period_start_date := FND_API.G_MISS_DATE;
913 x_number_expiration_periods := FND_API.G_MISS_NUM;
914 x_expiration_period_uom := FND_API.G_MISS_CHAR;
915 x_expiration_date := FND_API.G_MISS_DATE;
916 x_estim_gl_value := FND_API.G_MISS_NUM;
917 x_benefit_price_list_line_id := FND_API.G_MISS_NUM;
918 -- x_recurring_flag := FND_API.G_MISS_CHAR;
919 x_benefit_limit := FND_API.G_MISS_NUM;
920 x_charge_type_code := FND_API.G_MISS_CHAR;
921 x_charge_subtype_code := FND_API.G_MISS_CHAR;
922 x_benefit_qty := FND_API.G_MISS_NUM;
923 x_benefit_uom_code := FND_API.G_MISS_CHAR;
924 x_accrual_conversion_rate := FND_API.G_MISS_NUM;
925 x_proration_type_code := FND_API.G_MISS_CHAR;
926 x_include_on_returns_flag := FND_API.G_MISS_CHAR;
927 x_from_rltd_modifier_id := FND_API.G_MISS_NUM;
928 x_to_rltd_modifier_id := FND_API.G_MISS_NUM;
929 x_rltd_modifier_grp_no := FND_API.G_MISS_NUM;
930 x_rltd_modifier_grp_type := FND_API.G_MISS_CHAR;
931 x_net_amount_flag := FND_API.G_MISS_CHAR;
932 x_accum_attribute := FND_API.G_MISS_CHAR;
933 x_continuous_price_break_flag := FND_API.G_MISS_CHAR; --Continuous Price Breaks
934
935 -- Load display out parameters if any
936
937 l_MODIFIERS_val_rec := QP_Modifiers_Util.Get_Values
938 ( p_MODIFIERS_rec => l_x_MODIFIERS_rec
939 , p_old_MODIFIERS_rec => l_MODIFIERS_rec
940 );
941
942 -- Return changed attributes.
943
944 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.arithmetic_operator,
945 l_MODIFIERS_rec.arithmetic_operator)
946 THEN
947 x_arithmetic_operator := l_x_MODIFIERS_rec.arithmetic_operator;
948 END IF;
949
950 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute1,
951 l_MODIFIERS_rec.attribute1)
952 THEN
953 x_attribute1 := l_x_MODIFIERS_rec.attribute1;
954 END IF;
955
956 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute10,
957 l_MODIFIERS_rec.attribute10)
958 THEN
959 x_attribute10 := l_x_MODIFIERS_rec.attribute10;
960 END IF;
961
962 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute11,
963 l_MODIFIERS_rec.attribute11)
964 THEN
965 x_attribute11 := l_x_MODIFIERS_rec.attribute11;
966 END IF;
967
968 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute12,
969 l_MODIFIERS_rec.attribute12)
970 THEN
971 x_attribute12 := l_x_MODIFIERS_rec.attribute12;
972 END IF;
973
974 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute13,
975 l_MODIFIERS_rec.attribute13)
976 THEN
977 x_attribute13 := l_x_MODIFIERS_rec.attribute13;
978 END IF;
979
980 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute14,
981 l_MODIFIERS_rec.attribute14)
982 THEN
983 x_attribute14 := l_x_MODIFIERS_rec.attribute14;
984 END IF;
985
986 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute15,
987 l_MODIFIERS_rec.attribute15)
988 THEN
989 x_attribute15 := l_x_MODIFIERS_rec.attribute15;
990 END IF;
991
992 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute2,
993 l_MODIFIERS_rec.attribute2)
994 THEN
995 x_attribute2 := l_x_MODIFIERS_rec.attribute2;
996 END IF;
997
998 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute3,
999 l_MODIFIERS_rec.attribute3)
1000 THEN
1001 x_attribute3 := l_x_MODIFIERS_rec.attribute3;
1002 END IF;
1003
1004 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute4,
1005 l_MODIFIERS_rec.attribute4)
1006 THEN
1007 x_attribute4 := l_x_MODIFIERS_rec.attribute4;
1008 END IF;
1009
1010 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute5,
1011 l_MODIFIERS_rec.attribute5)
1012 THEN
1013 x_attribute5 := l_x_MODIFIERS_rec.attribute5;
1014 END IF;
1015
1016 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute6,
1017 l_MODIFIERS_rec.attribute6)
1018 THEN
1019 x_attribute6 := l_x_MODIFIERS_rec.attribute6;
1020 END IF;
1021
1022 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute7,
1023 l_MODIFIERS_rec.attribute7)
1024 THEN
1025 x_attribute7 := l_x_MODIFIERS_rec.attribute7;
1026 END IF;
1027
1028 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute8,
1029 l_MODIFIERS_rec.attribute8)
1030 THEN
1031 x_attribute8 := l_x_MODIFIERS_rec.attribute8;
1032 END IF;
1033
1034 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.attribute9,
1035 l_MODIFIERS_rec.attribute9)
1036 THEN
1037 x_attribute9 := l_x_MODIFIERS_rec.attribute9;
1038 END IF;
1039
1040 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.automatic_flag,
1041 l_MODIFIERS_rec.automatic_flag)
1042 THEN
1043 x_automatic_flag := l_x_MODIFIERS_rec.automatic_flag;
1044 x_automatic := l_MODIFIERS_val_rec.automatic;
1045 END IF;
1046
1047 /* IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.base_qty,
1048 l_MODIFIERS_rec.base_qty)
1049 THEN
1050 x_base_qty := l_x_MODIFIERS_rec.base_qty;
1051 END IF;
1052 */
1053 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.pricing_phase_id,
1054 l_MODIFIERS_rec.pricing_phase_id)
1055 THEN
1056 x_pricing_phase_id := l_x_MODIFIERS_rec.pricing_phase_id;
1057 END IF;
1058
1059 /* IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.base_uom_code,
1060 l_MODIFIERS_rec.base_uom_code)
1061 THEN
1062 x_base_uom_code := l_x_MODIFIERS_rec.base_uom_code;
1063 x_base_uom := l_MODIFIERS_val_rec.base_uom;
1064 END IF;
1065 */
1066 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.comments,
1067 l_MODIFIERS_rec.comments)
1068 THEN
1069 x_comments := l_x_MODIFIERS_rec.comments;
1070 END IF;
1071
1072 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.context,
1073 l_MODIFIERS_rec.context)
1074 THEN
1075 x_context := l_x_MODIFIERS_rec.context;
1076 END IF;
1077
1078 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.effective_period_uom,
1079 l_MODIFIERS_rec.effective_period_uom)
1080 THEN
1081 x_effective_period_uom := l_x_MODIFIERS_rec.effective_period_uom;
1082 END IF;
1083
1084 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.end_date_active,
1085 l_MODIFIERS_rec.end_date_active)
1086 THEN
1087 x_end_date_active := l_x_MODIFIERS_rec.end_date_active;
1088 END IF;
1089
1090 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.estim_accrual_rate,
1091 l_MODIFIERS_rec.estim_accrual_rate)
1092 THEN
1093 x_estim_accrual_rate := l_x_MODIFIERS_rec.estim_accrual_rate;
1094 END IF;
1095
1096 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.generate_using_formula_id,
1097 l_MODIFIERS_rec.generate_using_formula_id)
1098 THEN
1099 x_generate_using_formula_id := l_x_MODIFIERS_rec.generate_using_formula_id;
1100 x_generate_using_formula := l_MODIFIERS_val_rec.generate_using_formula;
1101 END IF;
1102
1103 /* IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.gl_class_id,
1104 l_MODIFIERS_rec.gl_class_id)
1105 THEN
1106 x_gl_class_id := l_x_MODIFIERS_rec.gl_class_id;
1107 x_gl_class := l_MODIFIERS_val_rec.gl_class;
1108 END IF;
1109 */
1110 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.inventory_item_id,
1111 l_MODIFIERS_rec.inventory_item_id)
1112 THEN
1113 x_inventory_item_id := l_x_MODIFIERS_rec.inventory_item_id;
1114 x_inventory_item := l_MODIFIERS_val_rec.inventory_item;
1115 END IF;
1116
1117 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.list_header_id,
1118 l_MODIFIERS_rec.list_header_id)
1119 THEN
1120 x_list_header_id := l_x_MODIFIERS_rec.list_header_id;
1121 x_list_header := l_MODIFIERS_val_rec.list_header;
1122 END IF;
1123
1124 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.list_line_id,
1125 l_MODIFIERS_rec.list_line_id)
1126 THEN
1127 x_list_line_id := l_x_MODIFIERS_rec.list_line_id;
1128 x_list_line := l_MODIFIERS_val_rec.list_line;
1129 END IF;
1130
1131 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.list_line_type_code,
1132 l_MODIFIERS_rec.list_line_type_code)
1133 THEN
1134 x_list_line_type_code := l_x_MODIFIERS_rec.list_line_type_code;
1135 x_list_line_type := l_MODIFIERS_val_rec.list_line_type;
1136 END IF;
1137
1138 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.list_price,
1139 l_MODIFIERS_rec.list_price)
1140 THEN
1141 x_list_price := l_x_MODIFIERS_rec.list_price;
1142 END IF;
1143
1144 /* IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.list_price_uom_code,
1145 l_MODIFIERS_rec.list_price_uom_code)
1146 THEN
1147 x_list_price_uom_code := l_x_MODIFIERS_rec.list_price_uom_code;
1148 x_list_price_uom := l_MODIFIERS_val_rec.list_price_uom;
1149 END IF;
1150
1151 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.modifier_level_code,
1152 l_MODIFIERS_rec.modifier_level_code)
1153 THEN
1154 x_modifier_level_code := l_x_MODIFIERS_rec.modifier_level_code;
1155 x_modifier_level := l_MODIFIERS_val_rec.modifier_level;
1156 END IF;
1157
1158 /* IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.new_price,
1159 l_MODIFIERS_rec.new_price)
1160 THEN
1161 x_new_price := l_x_MODIFIERS_rec.new_price;
1162 END IF;
1163 */
1164 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.number_effective_periods,
1165 l_MODIFIERS_rec.number_effective_periods)
1166 THEN
1167 x_number_effective_periods := l_x_MODIFIERS_rec.number_effective_periods;
1168 END IF;
1169
1170 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.operand,
1171 l_MODIFIERS_rec.operand)
1172 THEN
1173 x_operand := l_x_MODIFIERS_rec.operand;
1174 END IF;
1175
1176 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.organization_id,
1177 l_MODIFIERS_rec.organization_id)
1178 THEN
1179 x_organization_id := l_x_MODIFIERS_rec.organization_id;
1180 x_organization := l_MODIFIERS_val_rec.organization;
1181 END IF;
1182
1183 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.override_flag,
1184 l_MODIFIERS_rec.override_flag)
1185 THEN
1186 x_override_flag := l_x_MODIFIERS_rec.override_flag;
1187 x_override := l_MODIFIERS_val_rec.override;
1188 END IF;
1189
1190 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.percent_price,
1191 l_MODIFIERS_rec.percent_price)
1192 THEN
1193 x_percent_price := l_x_MODIFIERS_rec.percent_price;
1194 END IF;
1195
1196 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.price_break_type_code,
1197 l_MODIFIERS_rec.price_break_type_code)
1198 THEN
1199 x_price_break_type_code := l_x_MODIFIERS_rec.price_break_type_code;
1200 x_price_break_type := l_MODIFIERS_val_rec.price_break_type;
1201 END IF;
1202
1203 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.price_by_formula_id,
1204 l_MODIFIERS_rec.price_by_formula_id)
1205 THEN
1206 x_price_by_formula_id := l_x_MODIFIERS_rec.price_by_formula_id;
1207 x_price_by_formula := l_MODIFIERS_val_rec.price_by_formula;
1208 END IF;
1209
1210 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.primary_uom_flag,
1211 l_MODIFIERS_rec.primary_uom_flag)
1212 THEN
1213 x_primary_uom_flag := l_x_MODIFIERS_rec.primary_uom_flag;
1214 x_primary_uom := l_MODIFIERS_val_rec.primary_uom;
1215 END IF;
1216
1217 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.print_on_invoice_flag,
1218 l_MODIFIERS_rec.print_on_invoice_flag)
1219 THEN
1220 x_print_on_invoice_flag := l_x_MODIFIERS_rec.print_on_invoice_flag;
1221 x_print_on_invoice := l_MODIFIERS_val_rec.print_on_invoice;
1222 END IF;
1223
1224 /* IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.rebate_subtype_code,
1225 l_MODIFIERS_rec.rebate_subtype_code)
1226 THEN
1227 x_rebate_subtype_code := l_x_MODIFIERS_rec.rebate_subtype_code;
1228 x_rebate_subtype := l_MODIFIERS_val_rec.rebate_subtype;
1229 END IF;
1230 */
1231 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.rebate_trxn_type_code,
1232 l_MODIFIERS_rec.rebate_trxn_type_code)
1233 THEN
1234 x_rebate_trxn_type_code := l_x_MODIFIERS_rec.rebate_trxn_type_code;
1235 x_rebate_transaction_type := l_MODIFIERS_val_rec.rebate_transaction_type;
1236 END IF;
1237
1238 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.related_item_id,
1239 l_MODIFIERS_rec.related_item_id)
1240 THEN
1241 x_related_item_id := l_x_MODIFIERS_rec.related_item_id;
1242 x_related_item := l_MODIFIERS_val_rec.related_item;
1243 END IF;
1244
1245 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.relationship_type_id,
1246 l_MODIFIERS_rec.relationship_type_id)
1247 THEN
1248 x_relationship_type_id := l_x_MODIFIERS_rec.relationship_type_id;
1249 x_relationship_type := l_MODIFIERS_val_rec.relationship_type;
1250 END IF;
1251
1252 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.reprice_flag,
1253 l_MODIFIERS_rec.reprice_flag)
1254 THEN
1255 x_reprice_flag := l_x_MODIFIERS_rec.reprice_flag;
1256 x_reprice := l_MODIFIERS_val_rec.reprice;
1257 END IF;
1258
1259 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.revision,
1260 l_MODIFIERS_rec.revision)
1261 THEN
1262 x_revision := l_x_MODIFIERS_rec.revision;
1263 END IF;
1264
1265 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.revision_date,
1266 l_MODIFIERS_rec.revision_date)
1267 THEN
1268 x_revision_date := l_x_MODIFIERS_rec.revision_date;
1269 END IF;
1270
1271 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.revision_reason_code,
1272 l_MODIFIERS_rec.revision_reason_code)
1273 THEN
1274 x_revision_reason_code := l_x_MODIFIERS_rec.revision_reason_code;
1275 x_revision_reason := l_MODIFIERS_val_rec.revision_reason;
1276 END IF;
1277
1278 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.start_date_active,
1279 l_MODIFIERS_rec.start_date_active)
1280 THEN
1281 x_start_date_active := l_x_MODIFIERS_rec.start_date_active;
1282 END IF;
1283
1284 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.substitution_attribute,
1285 l_MODIFIERS_rec.substitution_attribute)
1286 THEN
1287 x_substitution_attribute := l_x_MODIFIERS_rec.substitution_attribute;
1288 END IF;
1289
1290 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.substitution_context,
1291 l_MODIFIERS_rec.substitution_context)
1292 THEN
1293 x_substitution_context := l_x_MODIFIERS_rec.substitution_context;
1294 END IF;
1295
1296 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.substitution_value,
1297 l_MODIFIERS_rec.substitution_value)
1298 THEN
1299 x_substitution_value := l_x_MODIFIERS_rec.substitution_value;
1300 END IF;
1301
1302 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.accrual_flag,
1303 l_MODIFIERS_rec.accrual_flag)
1304 THEN
1305 x_accrual_flag := l_x_MODIFIERS_rec.accrual_flag;
1306 END IF;
1307
1308 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.pricing_group_sequence,
1309 l_MODIFIERS_rec.pricing_group_sequence)
1310 THEN
1311 x_pricing_group_sequence := l_x_MODIFIERS_rec.pricing_group_sequence;
1312 END IF;
1313
1314 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.incompatibility_grp_code,
1315 l_MODIFIERS_rec.incompatibility_grp_code)
1316 THEN
1317 x_incompatibility_grp_code := l_x_MODIFIERS_rec.incompatibility_grp_code;
1318 END IF;
1319
1320 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.pricing_phase_id,
1321 l_MODIFIERS_rec.pricing_phase_id)
1322 THEN
1323 x_pricing_phase_id := l_x_MODIFIERS_rec.pricing_phase_id;
1324 END IF;
1325
1326 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.list_line_no,
1327 l_MODIFIERS_rec.list_line_no)
1328 THEN
1329 x_list_line_no := l_x_MODIFIERS_rec.list_line_no;
1330 END IF;
1331
1332 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.product_precedence,
1333 l_MODIFIERS_rec.product_precedence)
1334 THEN
1335 x_product_precedence := l_x_MODIFIERS_rec.product_precedence;
1336 END IF;
1337
1338 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.expiration_period_start_date,
1339 l_MODIFIERS_rec.expiration_period_start_date)
1340 THEN
1341 x_expiration_period_start_date := l_x_MODIFIERS_rec.expiration_period_start_date;
1342 END IF;
1343
1344 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.number_expiration_periods,
1345 l_MODIFIERS_rec.number_expiration_periods)
1346 THEN
1347 x_number_expiration_periods := l_x_MODIFIERS_rec.number_expiration_periods;
1348 END IF;
1349
1350 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.expiration_period_uom,
1351 l_MODIFIERS_rec.expiration_period_uom)
1352 THEN
1353 x_expiration_period_uom := l_x_MODIFIERS_rec.expiration_period_uom;
1354 END IF;
1355
1356 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.expiration_date,
1357 l_MODIFIERS_rec.expiration_date)
1358 THEN
1359 x_expiration_date := l_x_MODIFIERS_rec.expiration_date;
1360 END IF;
1361
1362 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.estim_gl_value,
1363 l_MODIFIERS_rec.estim_gl_value)
1364 THEN
1365 x_estim_gl_value := l_x_MODIFIERS_rec.estim_gl_value;
1366 END IF;
1367
1368 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.benefit_price_list_line_id,
1369 l_MODIFIERS_rec.benefit_price_list_line_id)
1370 THEN
1371 x_benefit_price_list_line_id := l_x_MODIFIERS_rec.benefit_price_list_line_id;
1372 END IF;
1373
1374 /* IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.recurring_flag,
1375 l_MODIFIERS_rec.recurring_flag)
1376 THEN
1377 x_recurring_flag := l_x_MODIFIERS_rec.recurring_flag;
1378 END IF;
1379 */
1380 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.benefit_limit,
1381 l_MODIFIERS_rec.benefit_limit)
1382 THEN
1383 x_benefit_limit := l_x_MODIFIERS_rec.benefit_limit;
1384 END IF;
1385
1386 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.charge_type_code,
1387 l_MODIFIERS_rec.charge_type_code)
1388 THEN
1389 x_charge_type_code := l_x_MODIFIERS_rec.charge_type_code;
1390 END IF;
1391
1392 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.charge_subtype_code,
1393 l_MODIFIERS_rec.charge_subtype_code)
1394 THEN
1395 x_charge_subtype_code := l_x_MODIFIERS_rec.charge_subtype_code;
1396 END IF;
1397
1398 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.benefit_qty,
1399 l_MODIFIERS_rec.benefit_qty)
1400 THEN
1401 x_benefit_qty := l_x_MODIFIERS_rec.benefit_qty;
1402 END IF;
1403
1404 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.benefit_uom_code,
1405 l_MODIFIERS_rec.benefit_uom_code)
1406 THEN
1407 x_benefit_uom_code := l_x_MODIFIERS_rec.benefit_uom_code;
1408 END IF;
1409
1410 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.accrual_conversion_rate,
1411 l_MODIFIERS_rec.accrual_conversion_rate)
1412 THEN
1413 x_accrual_conversion_rate := l_x_MODIFIERS_rec.accrual_conversion_rate;
1414 END IF;
1415
1416 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.proration_type_code,
1417 l_MODIFIERS_rec.proration_type_code)
1418 THEN
1419 x_proration_type_code := l_x_MODIFIERS_rec.proration_type_code;
1420 END IF;
1421
1422 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.include_on_returns_flag,
1423 l_MODIFIERS_rec.include_on_returns_flag)
1424 THEN
1425 x_include_on_returns_flag := l_x_MODIFIERS_rec.include_on_returns_flag;
1426 END IF;
1427
1428 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.from_rltd_modifier_id,
1429 l_MODIFIERS_rec.from_rltd_modifier_id)
1430 THEN
1431 x_from_rltd_modifier_id := l_x_MODIFIERS_rec.from_rltd_modifier_id;
1432 END IF;
1433
1434 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.to_rltd_modifier_id,
1435 l_MODIFIERS_rec.to_rltd_modifier_id)
1436 THEN
1437 x_to_rltd_modifier_id := l_x_MODIFIERS_rec.to_rltd_modifier_id;
1438 END IF;
1439
1440 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.rltd_modifier_grp_no,
1441 l_MODIFIERS_rec.rltd_modifier_grp_no)
1442 THEN
1443 x_rltd_modifier_grp_no := l_x_MODIFIERS_rec.rltd_modifier_grp_no;
1444 END IF;
1445
1446 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.rltd_modifier_grp_type,
1447 l_MODIFIERS_rec.rltd_modifier_grp_type)
1448 THEN
1449 x_rltd_modifier_grp_type := l_x_MODIFIERS_rec.rltd_modifier_grp_type;
1450 END IF;
1451
1452 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.net_amount_flag,
1453 l_MODIFIERS_rec.net_amount_flag)
1454 THEN
1455 x_net_amount_flag := l_x_MODIFIERS_rec.net_amount_flag;
1456 END IF;
1457
1458 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.accum_attribute,
1459 l_MODIFIERS_rec.accum_attribute)
1460 THEN
1461 x_accum_attribute := l_x_MODIFIERS_rec.accum_attribute;
1462 END IF;
1463
1464 --Continuous Price Breaks
1465 IF NOT QP_GLOBALS.Equal(l_x_MODIFIERS_rec.continuous_price_break_flag,
1466 l_MODIFIERS_rec.continuous_price_break_flag)
1467 THEN
1468 x_continuous_price_break_flag := l_x_MODIFIERS_rec.continuous_price_break_flag;
1469 END IF;
1470
1471
1472 -- Write to cache.
1473
1474 Write_MODIFIERS
1475 ( p_MODIFIERS_rec => l_x_MODIFIERS_rec
1476 );
1477
1478 -- Set return status.
1479
1480 x_return_status := FND_API.G_RET_STS_SUCCESS;
1481
1482 -- Get message count and data
1483
1484 OE_MSG_PUB.Count_And_Get
1485 ( p_count => x_msg_count
1486 , p_data => x_msg_data
1487 );
1488
1489 oe_debug_pub.add('END Change_attribute in QPXFMLLB');
1490
1491 EXCEPTION
1492
1493 WHEN FND_API.G_EXC_ERROR THEN
1494
1495 x_return_status := FND_API.G_RET_STS_ERROR;
1496
1497 -- Get message count and data
1498
1499 OE_MSG_PUB.Count_And_Get
1500 ( p_count => x_msg_count
1501 , p_data => x_msg_data
1502 );
1503
1504 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1505
1506 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1507
1508 -- Get message count and data
1509
1510 OE_MSG_PUB.Count_And_Get
1511 ( p_count => x_msg_count
1512 , p_data => x_msg_data
1513 );
1514
1515 WHEN OTHERS THEN
1516
1517 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1518
1519 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1520 THEN
1521 OE_MSG_PUB.Add_Exc_Msg
1522 ( G_PKG_NAME
1523 , 'Change_Attribute'
1524 );
1525 END IF;
1526
1527 -- Get message count and data
1528
1529 OE_MSG_PUB.Count_And_Get
1530 ( p_count => x_msg_count
1531 , p_data => x_msg_data
1532 );
1533
1534
1535 END Change_Attribute;
1536
1537 -- Procedure Validate_And_Write
1538 --
1539
1540 PROCEDURE Validate_And_Write
1541 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1542 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1543 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1544 , p_list_line_id IN NUMBER
1545 , x_creation_date OUT NOCOPY /* file.sql.39 change */ DATE
1546 , x_created_by OUT NOCOPY /* file.sql.39 change */ NUMBER
1547 , x_last_update_date OUT NOCOPY /* file.sql.39 change */ DATE
1548 , x_last_updated_by OUT NOCOPY /* file.sql.39 change */ NUMBER
1549 , x_last_update_login OUT NOCOPY /* file.sql.39 change */ NUMBER
1550 )
1551 IS
1552 l_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1553 l_old_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1554 l_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1555 l_old_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1556 l_control_rec QP_GLOBALS.Control_Rec_Type;
1557 l_return_status VARCHAR2(1);
1558 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
1559 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1560 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1561 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1562 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1563 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1564 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1565 BEGIN
1566
1567 oe_debug_pub.add('BEGIN Validate_And_Write in QPXFMLLB');
1568
1569 -- Set control flags.
1570
1571 l_control_rec.controlled_operation := TRUE;
1572 l_control_rec.validate_entity := TRUE;
1573 l_control_rec.write_to_DB := TRUE;
1574
1575 l_control_rec.default_attributes := FALSE;
1576 l_control_rec.change_attributes := FALSE;
1577 l_control_rec.process := FALSE;
1578
1579 -- Instruct API to retain its caches
1580
1581 l_control_rec.clear_api_cache := FALSE;
1582 l_control_rec.clear_api_requests := FALSE;
1583
1584 -- Read MODIFIERS from cache
1585
1586 l_old_MODIFIERS_rec := Get_MODIFIERS
1587 ( p_db_record => TRUE
1588 , p_list_line_id => p_list_line_id
1589 );
1590
1591 l_MODIFIERS_rec := Get_MODIFIERS
1592 ( p_db_record => FALSE
1593 , p_list_line_id => p_list_line_id
1594 );
1595
1596 -- Set Operation.
1597
1598 IF FND_API.To_Boolean(l_MODIFIERS_rec.db_flag) THEN
1599 l_MODIFIERS_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
1600 ELSE
1601 l_MODIFIERS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
1602 END IF;
1603
1604 -- Populate MODIFIERS table
1605
1606 l_MODIFIERS_tbl(1) := l_MODIFIERS_rec;
1607 l_old_MODIFIERS_tbl(1) := l_old_MODIFIERS_rec;
1608
1609 -- Call QP_Modifiers_PVT.Process_MODIFIERS
1610
1611 QP_Modifiers_PVT.Process_MODIFIERS
1612 ( p_api_version_number => 1.0
1613 , p_init_msg_list => FND_API.G_TRUE
1614 , x_return_status => l_return_status
1615 , x_msg_count => x_msg_count
1616 , x_msg_data => x_msg_data
1617 , p_control_rec => l_control_rec
1618 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
1619 , p_old_MODIFIERS_tbl => l_old_MODIFIERS_tbl
1620 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
1621 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
1622 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1623 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1624 );
1625
1626 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1627 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1628 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1629 RAISE FND_API.G_EXC_ERROR;
1630 END IF;
1631
1632
1633 -- Load OUT parameters.
1634
1635 l_x_MODIFIERS_rec := l_x_MODIFIERS_tbl(1);
1636
1637 x_creation_date := l_x_MODIFIERS_rec.creation_date;
1638 x_created_by := l_x_MODIFIERS_rec.created_by;
1639 x_last_update_date := l_x_MODIFIERS_rec.last_update_date;
1640 x_last_updated_by := l_x_MODIFIERS_rec.last_updated_by;
1641 x_last_update_login := l_x_MODIFIERS_rec.last_update_login;
1642
1643 -- Clear MODIFIERS record cache
1644
1645 Clear_MODIFIERS;
1646
1647 -- Keep track of performed operations.
1648
1649 l_old_MODIFIERS_rec.operation := l_MODIFIERS_rec.operation;
1650
1651
1652 -- Set return status.
1653
1654 x_return_status := FND_API.G_RET_STS_SUCCESS;
1655
1656 -- Get message count and data
1657
1658 OE_MSG_PUB.Count_And_Get
1659 ( p_count => x_msg_count
1660 , p_data => x_msg_data
1661 );
1662
1663 oe_debug_pub.add('END Validate_And_Write in QPXFMLLB');
1664
1665 EXCEPTION
1666
1667 WHEN FND_API.G_EXC_ERROR THEN
1668
1669 x_return_status := FND_API.G_RET_STS_ERROR;
1670
1671 -- Get message count and data
1672
1673 OE_MSG_PUB.Count_And_Get
1674 ( p_count => x_msg_count
1675 , p_data => x_msg_data
1676 );
1677
1678 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1679
1680 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1681
1682 -- Get message count and data
1683
1684 OE_MSG_PUB.Count_And_Get
1685 ( p_count => x_msg_count
1686 , p_data => x_msg_data
1687 );
1688
1689 WHEN OTHERS THEN
1690
1691 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1692
1693 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1694 THEN
1695 OE_MSG_PUB.Add_Exc_Msg
1696 ( G_PKG_NAME
1697 , 'Validate_And_Write'
1698 );
1699 END IF;
1700
1701 -- Get message count and data
1702
1703 OE_MSG_PUB.Count_And_Get
1704 ( p_count => x_msg_count
1705 , p_data => x_msg_data
1706 );
1707
1708
1709 END Validate_And_Write;
1710
1711 -- Procedure Delete_Row
1712 --
1713
1714 PROCEDURE Delete_Row
1715 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1716 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1717 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1718 , p_list_line_id IN NUMBER
1719 )
1720 IS
1721 l_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1722 l_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1723 l_control_rec QP_GLOBALS.Control_Rec_Type;
1724 l_return_status VARCHAR2(1);
1725 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
1726 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1727 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1728 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1729 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1730 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1731 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1732 BEGIN
1733
1734 oe_debug_pub.add('BEGIN Delete_Row in QPXFMLLB');
1735
1736 -- Set control flags.
1737
1738
1739 l_control_rec.controlled_operation := TRUE;
1740 l_control_rec.validate_entity := TRUE;
1741 l_control_rec.write_to_DB := TRUE;
1742
1743 l_control_rec.default_attributes := FALSE;
1744 l_control_rec.change_attributes := FALSE;
1745 l_control_rec.process := FALSE;
1746
1747 -- Instruct API to retain its caches
1748
1749 l_control_rec.clear_api_cache := FALSE;
1750 l_control_rec.clear_api_requests := FALSE;
1751
1752 -- Read DB record from cache
1753
1754 l_MODIFIERS_rec := Get_MODIFIERS
1755 ( p_db_record => TRUE
1756 , p_list_line_id => p_list_line_id
1757 );
1758
1759 -- Set Operation.
1760
1761 l_MODIFIERS_rec.operation := QP_GLOBALS.G_OPR_DELETE;
1762
1763 -- Populate MODIFIERS table
1764
1765 l_MODIFIERS_tbl(1) := l_MODIFIERS_rec;
1766
1767 -- Call QP_Modifiers_PVT.Process_MODIFIERS
1768
1769 QP_Modifiers_PVT.Process_MODIFIERS
1770 ( p_api_version_number => 1.0
1771 , p_init_msg_list => FND_API.G_TRUE
1772 , x_return_status => l_return_status
1773 , x_msg_count => x_msg_count
1774 , x_msg_data => x_msg_data
1775 , p_control_rec => l_control_rec
1776 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
1777 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
1778 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
1779 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1780 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1781 );
1782
1783 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1784 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1785 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1786 RAISE FND_API.G_EXC_ERROR;
1787 END IF;
1788
1789
1790 -- Clear MODIFIERS record cache
1791
1792 Clear_MODIFIERS;
1793
1794 -- Set return status.
1795
1796 x_return_status := FND_API.G_RET_STS_SUCCESS;
1797
1798 -- Get message count and data
1799
1800 OE_MSG_PUB.Count_And_Get
1801 ( p_count => x_msg_count
1802 , p_data => x_msg_data
1803 );
1804
1805 oe_debug_pub.add('END Delete_Row in QPXFMLLB');
1806
1807 EXCEPTION
1808
1809 WHEN FND_API.G_EXC_ERROR THEN
1810
1811 x_return_status := FND_API.G_RET_STS_ERROR;
1812
1813 -- Get message count and data
1814
1815 OE_MSG_PUB.Count_And_Get
1816 ( p_count => x_msg_count
1817 , p_data => x_msg_data
1818 );
1819
1820 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1821
1822 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1823
1824 -- Get message count and data
1825
1826 OE_MSG_PUB.Count_And_Get
1827 ( p_count => x_msg_count
1828 , p_data => x_msg_data
1829 );
1830
1831 WHEN OTHERS THEN
1832
1833 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1834
1835 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1836 THEN
1837 OE_MSG_PUB.Add_Exc_Msg
1838 ( G_PKG_NAME
1839 , 'Delete_Row'
1840 );
1841 END IF;
1842
1843 -- Get message count and data
1844
1845 OE_MSG_PUB.Count_And_Get
1846 ( p_count => x_msg_count
1847 , p_data => x_msg_data
1848 );
1849
1850 END Delete_Row;
1851
1852 -- Procedure Process_Entity
1853 --
1854
1855 PROCEDURE Process_Entity
1856 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1857 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1858 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1859 )
1860 IS
1861 l_control_rec QP_GLOBALS.Control_Rec_Type;
1862 l_return_status VARCHAR2(1);
1863 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
1864 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
1865 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
1866 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1867 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1868 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1869 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1870 BEGIN
1871
1872 oe_debug_pub.add('BEGIN Process_Entity in QPXFMLLB');
1873
1874 -- Set control flags.
1875
1876 l_control_rec.controlled_operation := TRUE;
1877 l_control_rec.process := TRUE;
1878 l_control_rec.process_entity := QP_GLOBALS.G_ENTITY_MODIFIERS;
1879
1880 l_control_rec.default_attributes := FALSE;
1881 l_control_rec.change_attributes := FALSE;
1882 l_control_rec.validate_entity := FALSE;
1883 l_control_rec.write_to_DB := FALSE;
1884
1885 -- Instruct API to clear its request table
1886
1887 l_control_rec.clear_api_cache := FALSE;
1888 l_control_rec.clear_api_requests := FALSE;
1889
1890 -- Call QP_Modifiers_PVT.Process_MODIFIERS
1891
1892 QP_Modifiers_PVT.Process_MODIFIERS
1893 ( p_api_version_number => 1.0
1894 , p_init_msg_list => FND_API.G_TRUE
1895 , x_return_status => l_return_status
1896 , x_msg_count => x_msg_count
1897 , x_msg_data => x_msg_data
1898 , p_control_rec => l_control_rec
1899 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
1900 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
1901 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1902 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1903 );
1904
1905 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1906 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1907 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1908 RAISE FND_API.G_EXC_ERROR;
1909 END IF;
1910
1911
1912 -- Set return status.
1913
1914 x_return_status := FND_API.G_RET_STS_SUCCESS;
1915
1916 -- Get message count and data
1917
1918 OE_MSG_PUB.Count_And_Get
1919 ( p_count => x_msg_count
1920 , p_data => x_msg_data
1921 );
1922
1923 oe_debug_pub.add('END Process_Entity in QPXFMLLB');
1924
1925 EXCEPTION
1926
1927 WHEN FND_API.G_EXC_ERROR THEN
1928
1929 x_return_status := FND_API.G_RET_STS_ERROR;
1930
1931 -- Get message count and data
1932
1933 OE_MSG_PUB.Count_And_Get
1934 ( p_count => x_msg_count
1935 , p_data => x_msg_data
1936 );
1937
1938 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1939
1940 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1941
1942 -- Get message count and data
1943
1944 OE_MSG_PUB.Count_And_Get
1945 ( p_count => x_msg_count
1946 , p_data => x_msg_data
1947 );
1948
1949 WHEN OTHERS THEN
1950
1951 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1952
1953 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1954 THEN
1955 OE_MSG_PUB.Add_Exc_Msg
1956 ( G_PKG_NAME
1957 , 'Process_Entity'
1958 );
1959 END IF;
1960
1961 -- Get message count and data
1962
1963 OE_MSG_PUB.Count_And_Get
1964 ( p_count => x_msg_count
1965 , p_data => x_msg_data
1966 );
1967
1968
1969 END Process_Entity;
1970
1971 -- Procedure lock_Row
1972 --
1973
1974 PROCEDURE Lock_Row
1975 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1976 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1977 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1978 , p_arithmetic_operator IN VARCHAR2
1979 , p_attribute1 IN VARCHAR2
1980 , p_attribute10 IN VARCHAR2
1981 , p_attribute11 IN VARCHAR2
1982 , p_attribute12 IN VARCHAR2
1983 , p_attribute13 IN VARCHAR2
1984 , p_attribute14 IN VARCHAR2
1985 , p_attribute15 IN VARCHAR2
1986 , p_attribute2 IN VARCHAR2
1987 , p_attribute3 IN VARCHAR2
1988 , p_attribute4 IN VARCHAR2
1989 , p_attribute5 IN VARCHAR2
1990 , p_attribute6 IN VARCHAR2
1991 , p_attribute7 IN VARCHAR2
1992 , p_attribute8 IN VARCHAR2
1993 , p_attribute9 IN VARCHAR2
1994 , p_automatic_flag IN VARCHAR2
1995 --, p_base_qty IN NUMBER
1996 , p_pricing_phase_id IN NUMBER
1997 --, p_base_uom_code IN VARCHAR2
1998 , p_comments IN VARCHAR2
1999 , p_context IN VARCHAR2
2000 , p_created_by IN NUMBER
2001 , p_creation_date IN DATE
2002 , p_effective_period_uom IN VARCHAR2
2003 , p_end_date_active IN DATE
2004 , p_estim_accrual_rate IN NUMBER
2005 , p_generate_using_formula_id IN NUMBER
2006 --, p_gl_class_id IN NUMBER
2007 , p_inventory_item_id IN NUMBER
2008 , p_last_updated_by IN NUMBER
2009 , p_last_update_date IN DATE
2010 , p_last_update_login IN NUMBER
2011 , p_list_header_id IN NUMBER
2012 , p_list_line_id IN NUMBER
2013 , p_list_line_type_code IN VARCHAR2
2014 , p_list_price IN NUMBER
2015 --, p_list_price_uom_code IN VARCHAR2
2016 , p_modifier_level_code IN VARCHAR2
2017 --, p_new_price IN NUMBER
2018 , p_number_effective_periods IN NUMBER
2019 , p_operand IN NUMBER
2020 , p_organization_id IN NUMBER
2021 , p_override_flag IN VARCHAR2
2022 , p_percent_price IN NUMBER
2023 , p_price_break_type_code IN VARCHAR2
2024 , p_price_by_formula_id IN NUMBER
2025 , p_primary_uom_flag IN VARCHAR2
2026 , p_print_on_invoice_flag IN VARCHAR2
2027 , p_program_application_id IN NUMBER
2028 , p_program_id IN NUMBER
2029 , p_program_update_date IN DATE
2030 --, p_rebate_subtype_code IN VARCHAR2
2031 , p_rebate_trxn_type_code IN VARCHAR2
2032 , p_related_item_id IN NUMBER
2033 , p_relationship_type_id IN NUMBER
2034 , p_reprice_flag IN VARCHAR2
2035 , p_request_id IN NUMBER
2036 , p_revision IN VARCHAR2
2037 , p_revision_date IN DATE
2038 , p_revision_reason_code IN VARCHAR2
2039 , p_start_date_active IN DATE
2040 , p_substitution_attribute IN VARCHAR2
2041 , p_substitution_context IN VARCHAR2
2042 , p_substitution_value IN VARCHAR2
2043 , p_accrual_flag IN VARCHAR2
2044 , p_pricing_group_sequence IN NUMBER
2045 , p_incompatibility_grp_code IN VARCHAR2
2046 , p_list_line_no IN VARCHAR2
2047 , p_product_precedence IN NUMBER
2048 , p_expiration_period_start_date IN DATE
2049 , p_number_expiration_periods IN NUMBER
2050 , p_expiration_period_uom IN VARCHAR2
2051 , p_expiration_date IN DATE
2052 , p_estim_gl_value IN NUMBER
2053 , p_benefit_price_list_line_id IN NUMBER
2054 --, p_recurring_flag IN VARCHAR2
2055 , p_benefit_limit IN NUMBER
2056 , p_charge_type_code IN VARCHAR2
2057 , p_charge_subtype_code IN VARCHAR2
2058 , p_benefit_qty IN NUMBER
2059 , p_benefit_uom_code IN VARCHAR2
2060 , p_accrual_conversion_rate IN NUMBER
2061 , p_proration_type_code IN VARCHAR2
2062 , p_include_on_returns_flag IN VARCHAR2
2063 , p_from_rltd_modifier_id IN NUMBER
2064 , p_to_rltd_modifier_id IN NUMBER
2065 , p_rltd_modifier_grp_no IN NUMBER
2066 , p_rltd_modifier_grp_type IN VARCHAR2
2067 , p_net_amount_flag IN VARCHAR2
2068 , p_accum_attribute IN VARCHAR2
2069 , p_continuous_price_break_flag IN VARCHAR2 --Continuous Price Breaks
2070 )
2071 IS
2072 l_return_status VARCHAR2(1);
2073 l_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
2074 l_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
2075 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
2076 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
2077 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
2078 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
2079 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
2080 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
2081 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
2082 BEGIN
2083
2084 oe_debug_pub.add('BEGIN Lock_Row in QPXFMLLB');
2085
2086 -- Load MODIFIERS record
2087
2088 l_MODIFIERS_rec.arithmetic_operator := p_arithmetic_operator;
2089 l_MODIFIERS_rec.attribute1 := p_attribute1;
2090 l_MODIFIERS_rec.attribute10 := p_attribute10;
2091 l_MODIFIERS_rec.attribute11 := p_attribute11;
2092 l_MODIFIERS_rec.attribute12 := p_attribute12;
2093 l_MODIFIERS_rec.attribute13 := p_attribute13;
2094 l_MODIFIERS_rec.attribute14 := p_attribute14;
2095 l_MODIFIERS_rec.attribute15 := p_attribute15;
2096 l_MODIFIERS_rec.attribute2 := p_attribute2;
2097 l_MODIFIERS_rec.attribute3 := p_attribute3;
2098 l_MODIFIERS_rec.attribute4 := p_attribute4;
2099 l_MODIFIERS_rec.attribute5 := p_attribute5;
2100 l_MODIFIERS_rec.attribute6 := p_attribute6;
2101 l_MODIFIERS_rec.attribute7 := p_attribute7;
2102 l_MODIFIERS_rec.attribute8 := p_attribute8;
2103 l_MODIFIERS_rec.attribute9 := p_attribute9;
2104 l_MODIFIERS_rec.automatic_flag := p_automatic_flag;
2105 -- l_MODIFIERS_rec.base_qty := p_base_qty;
2106 l_MODIFIERS_rec.pricing_phase_id := p_pricing_phase_id;
2107 -- l_MODIFIERS_rec.base_uom_code := p_base_uom_code;
2108 l_MODIFIERS_rec.comments := p_comments;
2109 l_MODIFIERS_rec.context := p_context;
2110 l_MODIFIERS_rec.created_by := p_created_by;
2111 l_MODIFIERS_rec.creation_date := p_creation_date;
2112 l_MODIFIERS_rec.effective_period_uom := p_effective_period_uom;
2113 l_MODIFIERS_rec.end_date_active := p_end_date_active;
2114 l_MODIFIERS_rec.estim_accrual_rate := p_estim_accrual_rate;
2115 l_MODIFIERS_rec.generate_using_formula_id := p_generate_using_formula_id;
2116 -- l_MODIFIERS_rec.gl_class_id := p_gl_class_id;
2117 l_MODIFIERS_rec.inventory_item_id := p_inventory_item_id;
2118 l_MODIFIERS_rec.last_updated_by := p_last_updated_by;
2119 l_MODIFIERS_rec.last_update_date := p_last_update_date;
2120 l_MODIFIERS_rec.last_update_login := p_last_update_login;
2121 l_MODIFIERS_rec.list_header_id := p_list_header_id;
2122 l_MODIFIERS_rec.list_line_id := p_list_line_id;
2123 l_MODIFIERS_rec.list_line_type_code := p_list_line_type_code;
2124 l_MODIFIERS_rec.list_price := p_list_price;
2125 -- l_MODIFIERS_rec.list_price_uom_code := p_list_price_uom_code;
2126 l_MODIFIERS_rec.modifier_level_code := p_modifier_level_code;
2127 -- l_MODIFIERS_rec.new_price := p_new_price;
2128 l_MODIFIERS_rec.number_effective_periods := p_number_effective_periods;
2129 l_MODIFIERS_rec.operand := p_operand;
2130 l_MODIFIERS_rec.organization_id := p_organization_id;
2131 l_MODIFIERS_rec.override_flag := p_override_flag;
2132 l_MODIFIERS_rec.percent_price := p_percent_price;
2133 l_MODIFIERS_rec.price_break_type_code := p_price_break_type_code;
2134 l_MODIFIERS_rec.price_by_formula_id := p_price_by_formula_id;
2135 l_MODIFIERS_rec.primary_uom_flag := p_primary_uom_flag;
2136 l_MODIFIERS_rec.print_on_invoice_flag := p_print_on_invoice_flag;
2137 l_MODIFIERS_rec.program_application_id := p_program_application_id;
2138 l_MODIFIERS_rec.program_id := p_program_id;
2139 l_MODIFIERS_rec.program_update_date := p_program_update_date;
2140 -- l_MODIFIERS_rec.rebate_subtype_code := p_rebate_subtype_code;
2141 l_MODIFIERS_rec.rebate_trxn_type_code := p_rebate_trxn_type_code;
2142 l_MODIFIERS_rec.related_item_id := p_related_item_id;
2143 l_MODIFIERS_rec.relationship_type_id := p_relationship_type_id;
2144 l_MODIFIERS_rec.reprice_flag := p_reprice_flag;
2145 l_MODIFIERS_rec.request_id := p_request_id;
2146 l_MODIFIERS_rec.revision := p_revision;
2147 l_MODIFIERS_rec.revision_date := p_revision_date;
2148 l_MODIFIERS_rec.revision_reason_code := p_revision_reason_code;
2149 l_MODIFIERS_rec.start_date_active := p_start_date_active;
2150 l_MODIFIERS_rec.substitution_attribute := p_substitution_attribute;
2151 l_MODIFIERS_rec.substitution_context := p_substitution_context;
2152 l_MODIFIERS_rec.substitution_value := p_substitution_value;
2153 l_MODIFIERS_rec.accrual_flag := p_accrual_flag;
2154 l_MODIFIERS_rec.pricing_group_sequence := p_pricing_group_sequence;
2155 l_MODIFIERS_rec.incompatibility_grp_code := p_incompatibility_grp_code;
2156 l_MODIFIERS_rec.list_line_no := p_list_line_no;
2157 l_MODIFIERS_rec.product_precedence := p_product_precedence;
2158 l_MODIFIERS_rec.expiration_period_start_date := p_expiration_period_start_date;
2159 l_MODIFIERS_rec.number_expiration_periods := p_number_expiration_periods;
2160 l_MODIFIERS_rec.expiration_period_uom := p_expiration_period_uom;
2161 l_MODIFIERS_rec.expiration_date := p_expiration_date;
2162 l_MODIFIERS_rec.estim_gl_value := p_estim_gl_value;
2163 l_MODIFIERS_rec.benefit_price_list_line_id := p_benefit_price_list_line_id;
2164 -- l_MODIFIERS_rec.recurring_flag := p_recurring_flag;
2165 l_MODIFIERS_rec.benefit_limit := p_benefit_limit;
2166 l_MODIFIERS_rec.charge_type_code := p_charge_type_code;
2167 l_MODIFIERS_rec.charge_subtype_code := p_charge_subtype_code;
2168 l_MODIFIERS_rec.benefit_qty := p_benefit_qty;
2169 l_MODIFIERS_rec.benefit_uom_code := p_benefit_uom_code;
2170 l_MODIFIERS_rec.accrual_conversion_rate := p_accrual_conversion_rate;
2171 l_MODIFIERS_rec.proration_type_code := p_proration_type_code;
2172 l_MODIFIERS_rec.include_on_returns_flag := p_include_on_returns_flag;
2173 -- l_MODIFIERS_rec.from_rltd_modifier_id := p_from_rltd_modifier_id;
2174 -- l_MODIFIERS_rec.to_rltd_modifier_id := p_to_rltd_modifier_id;
2175 -- l_MODIFIERS_rec.rltd_modifier_grp_no := p_rltd_modifier_grp_no;
2176 -- l_MODIFIERS_rec.rltd_modifier_grp_type := p_rltd_modifier_grp_type;
2177 l_MODIFIERS_rec.operation := QP_GLOBALS.G_OPR_LOCK;
2178 l_MODIFIERS_rec.net_amount_flag := p_net_amount_flag;
2179 l_MODIFIERS_rec.accum_attribute := p_accum_attribute;
2180 l_MODIFIERS_rec.continuous_price_break_flag := p_continuous_price_break_flag;
2181 --Continuous Price Breaks
2182
2183
2184 -- Populate MODIFIERS table
2185
2186 l_MODIFIERS_tbl(1) := l_MODIFIERS_rec;
2187
2188 -- Call QP_Modifiers_PVT.Lock_MODIFIERS
2189
2190 QP_Modifiers_PVT.Lock_MODIFIERS
2191 ( p_api_version_number => 1.0
2192 , p_init_msg_list => FND_API.G_TRUE
2193 , x_return_status => l_return_status
2194 , x_msg_count => x_msg_count
2195 , x_msg_data => x_msg_data
2196 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
2197 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
2198 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
2199 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
2200 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
2201 );
2202
2203 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
2204
2205 -- Set DB flag and write record to cache.
2206
2207 l_x_MODIFIERS_rec.db_flag := FND_API.G_TRUE;
2208
2209 Write_MODIFIERS
2210 ( p_MODIFIERS_rec => l_x_MODIFIERS_rec
2211 , p_db_record => TRUE
2212 );
2213
2214 END IF;
2215
2216 -- Set return status.
2217
2218 x_return_status := l_return_status;
2219
2220 -- Get message count and data
2221
2222 OE_MSG_PUB.Count_And_Get
2223 ( p_count => x_msg_count
2224 , p_data => x_msg_data
2225 );
2226
2227 oe_debug_pub.add('END Lock_Row in QPXFMLLB');
2228
2229 EXCEPTION
2230
2231 WHEN OTHERS THEN
2232
2233 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2234 THEN
2235 OE_MSG_PUB.Add_Exc_Msg
2236 ( G_PKG_NAME
2237 , 'Lock_Row'
2238 );
2239 END IF;
2240
2241 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2242
2243 -- Get message count and data
2244
2245 OE_MSG_PUB.Count_And_Get
2246 ( p_count => x_msg_count
2247 , p_data => x_msg_data
2248 );
2249
2250
2251 END Lock_Row;
2252
2253 -- Procedures maintaining MODIFIERS record cache.
2254
2255 PROCEDURE Write_MODIFIERS
2256 ( p_MODIFIERS_rec IN QP_Modifiers_PUB.Modifiers_Rec_Type
2257 , p_db_record IN BOOLEAN := FALSE
2258 )
2259 IS
2260 BEGIN
2261
2262 oe_debug_pub.add('BEGIN Write_Modifiers in QPXFMLLB');
2263
2264 g_MODIFIERS_rec := p_MODIFIERS_rec;
2265
2266 IF p_db_record THEN
2267
2268 g_db_MODIFIERS_rec := p_MODIFIERS_rec;
2269
2270 END IF;
2271
2272 oe_debug_pub.add('END Write_Modifiers in QPXFMLLB');
2273
2274 END Write_Modifiers;
2275
2276 FUNCTION Get_MODIFIERS
2277 ( p_db_record IN BOOLEAN := FALSE
2278 , p_list_line_id IN NUMBER
2279 )
2280 RETURN QP_Modifiers_PUB.Modifiers_Rec_Type
2281 IS
2282 BEGIN
2283
2284 oe_debug_pub.add('BEGIN Get_Modifiers in QPXFMLLB');
2285
2286 IF p_list_line_id <> g_MODIFIERS_rec.list_line_id
2287 THEN
2288
2289 -- Query row from DB
2290
2291 g_MODIFIERS_rec := QP_Modifiers_Util.Query_Row
2292 ( p_list_line_id => p_list_line_id
2293 );
2294
2295 g_MODIFIERS_rec.db_flag := FND_API.G_TRUE;
2296
2297 -- Load DB record
2298
2299 g_db_MODIFIERS_rec := g_MODIFIERS_rec;
2300
2301 END IF;
2302
2303 IF p_db_record THEN
2304
2305 oe_debug_pub.add('END Get_Modifiers in QPXFMLLB');
2306 RETURN g_db_MODIFIERS_rec;
2307
2308 ELSE
2309
2310 oe_debug_pub.add('else END Get_Modifiers in QPXFMLLB');
2311 RETURN g_MODIFIERS_rec;
2312
2313 END IF;
2314
2315
2316
2317 END Get_Modifiers;
2318
2319 PROCEDURE Clear_Modifiers
2320 IS
2321 BEGIN
2322
2323 oe_debug_pub.add('BEGIN Clear_Modifiers in QPXFMLLB');
2324
2325 g_MODIFIERS_rec := QP_Modifiers_PUB.G_MISS_MODIFIERS_REC;
2326 g_db_MODIFIERS_rec := QP_Modifiers_PUB.G_MISS_MODIFIERS_REC;
2327
2328 oe_debug_pub.add('END Clear_Modifiers in QPXFMLLB');
2329 END Clear_Modifiers;
2330
2331
2332 --added by svdeshmu
2333 -- This procedure will be called from the client when the user
2334 -- clears a record
2335 Procedure Clear_Record
2336 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2337 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2338 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2339 , p_list_line_id IN NUMBER
2340 )
2341 IS
2342 l_return_status Varchar2(30);
2343 BEGIN
2344 OE_MSG_PUB.initialize;
2345 x_return_status := FND_API.G_RET_STS_SUCCESS;
2346 QP_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
2347 p_entity_code => QP_GLOBALS.G_ENTITY_MODIFIERS
2348 ,p_entity_id => p_list_line_id
2349 ,x_return_status => l_return_status);
2350
2351 OE_MSG_PUB.Count_And_Get
2352 ( p_count => x_msg_count
2353 , p_data => x_msg_data
2354 );
2355
2356 -- Clear the controller cache
2357 Clear_Modifiers;
2358
2359 EXCEPTION
2360 WHEN OTHERS THEN
2361 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2362 THEN
2363 OE_MSG_PUB.Add_Exc_Msg
2364 ( G_PKG_NAME
2365 , 'Clear_Record'
2366 );
2367 END IF;
2368 -- Get message count and data
2369 OE_MSG_PUB.Count_And_Get
2370 ( p_count => x_msg_count
2371 , p_data => x_msg_data
2372 );
2373 x_return_status := FND_API.G_RET_STS_ERROR;
2374
2375 END Clear_Record;
2376
2377
2378 --added by svdeshmu
2379
2380 -- Following procedure is added for the ER 2423045
2381
2382 Procedure Dup_record
2383 ( p_old_list_line_id IN NUMBER,
2384 p_new_list_line_id IN NUMBER,
2385 p_list_header_id IN NUMBER,
2386 p_list_line_type_code IN VARCHAR2,
2387 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
2388 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
2389 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2390 )
2391 IS
2392 l_new_pricing_attribute_id Number;
2393 l_new_list_line_id Number;
2394 l_new_qualifier_id Number;
2395 l_number_of_lines Number := 1;
2396 l_control_rec QP_GLOBALS.Control_Rec_Type;
2397 l_return_status VARCHAR2(1);
2398 l_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
2399 l_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
2400 l_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
2401 l_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
2402 l_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
2403 l_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
2404 l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type;
2405 l_x_MODIFIERS_rec QP_Modifiers_PUB.Modifiers_Rec_Type;
2406 l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type;
2407 l_x_QUALIFIERS_rec QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
2408 l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
2409 l_x_PRICING_ATTR_rec QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
2410 l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
2411 l_continuous_price_break_flag varchar2(1);
2412
2413 CURSOR l_LIST_LINE_csr(p_list_line_id Number) IS
2414 SELECT
2415 L.ACCRUAL_CONVERSION_RATE
2416 , L.ACCRUAL_FLAG
2417 , L.ACCRUAL_QTY
2418 , L.ACCRUAL_UOM_CODE
2419 , L.ARITHMETIC_OPERATOR
2420 , L.ATTRIBUTE1
2421 , L.ATTRIBUTE2
2422 , L.ATTRIBUTE3
2423 , L.ATTRIBUTE4
2424 , L.ATTRIBUTE5
2425 , L.ATTRIBUTE6
2426 , L.ATTRIBUTE7
2427 , L.ATTRIBUTE8
2428 , L.ATTRIBUTE9
2429 , L.ATTRIBUTE10
2430 , L.ATTRIBUTE11
2431 , L.ATTRIBUTE12
2432 , L.ATTRIBUTE13
2433 , L.ATTRIBUTE14
2434 , L.ATTRIBUTE15
2435 , L.AUTOMATIC_FLAG
2436 , L.BASE_QTY
2437 , L.BASE_UOM_CODE
2438 , L.BENEFIT_LIMIT
2439 , L.BENEFIT_PRICE_LIST_LINE_ID
2440 , L.BENEFIT_QTY
2441 , L.BENEFIT_UOM_CODE
2442 , L.CHARGE_SUBTYPE_CODE
2443 , L.CHARGE_TYPE_CODE
2444 , L.COMMENTS
2445 , L.CONTEXT
2446 , L.CREATED_BY
2447 , L.CREATION_DATE
2448 , L.EFFECTIVE_PERIOD_UOM
2449 , L.END_DATE_ACTIVE
2450 , L.ESTIM_ACCRUAL_RATE
2451 , L.ESTIM_GL_VALUE
2452 , L.EXPIRATION_DATE
2453 , L.EXPIRATION_PERIOD_START_DATE
2454 , L.EXPIRATION_PERIOD_UOM
2455 , L.GENERATE_USING_FORMULA_ID
2456 , L.GROUP_COUNT
2457 , L.INCLUDE_ON_RETURNS_FLAG
2458 , L.INCOMPATIBILITY_GRP_CODE
2459 , L.INVENTORY_ITEM_ID
2460 , L.LAST_UPDATE_DATE
2461 , L.LAST_UPDATE_LOGIN
2462 , L.LAST_UPDATED_BY
2463 , L.LIMIT_EXISTS_FLAG
2464 , L.LIST_HEADER_ID
2465 , L.LIST_LINE_ID
2466 , L.LIST_LINE_NO
2467 , L.LIST_LINE_TYPE_CODE
2468 , L.LIST_PRICE
2469 , L.LIST_PRICE_UOM_CODE
2470 , L.MODIFIER_LEVEL_CODE
2471 , L.NUMBER_EFFECTIVE_PERIODS
2472 , L.NUMBER_EXPIRATION_PERIODS
2473 , L.OPERAND
2474 , L.ORGANIZATION_ID
2475 , L.OVERRIDE_FLAG
2476 , L.PERCENT_PRICE
2477 , L.PRICE_BREAK_TYPE_CODE
2478 , L.PRICE_BY_FORMULA_ID
2479 , L.PRICING_GROUP_SEQUENCE
2480 , L.PRICING_PHASE_ID
2481 , L.PRIMARY_UOM_FLAG
2482 , L.PRINT_ON_INVOICE_FLAG
2483 , L.PRODUCT_PRECEDENCE
2484 , L.PROGRAM_APPLICATION_ID
2485 , L.PROGRAM_ID
2486 , L.PROGRAM_UPDATE_DATE
2487 , L.PRORATION_TYPE_CODE
2488 , L.QUALIFICATION_IND
2489 , L.REBATE_TRANSACTION_TYPE_CODE
2490 , L.RECURRING_FLAG
2491 , L.RELATED_ITEM_ID
2492 , L.RELATIONSHIP_TYPE_ID
2493 , L.REPRICE_FLAG
2494 , L.REQUEST_ID
2495 , L.REVISION
2496 , L.REVISION_DATE
2497 , L.REVISION_REASON_CODE
2498 , L.START_DATE_ACTIVE
2499 , L.SUBSTITUTION_ATTRIBUTE
2500 , L.SUBSTITUTION_CONTEXT
2501 , L.SUBSTITUTION_VALUE
2502 , RM.RLTD_MODIFIER_GRP_NO
2503 , RM.RLTD_MODIFIER_GRP_TYPE
2504 , L.CONTINUOUS_PRICE_BREAK_FLAG
2505 FROM QP_LIST_LINES L, QP_RLTD_MODIFIERS RM
2506 WHERE L.LIST_LINE_ID = RM.TO_RLTD_MODIFIER_ID
2507 AND RM.FROM_RLTD_MODIFIER_ID = p_list_line_id
2508 AND L.LIST_HEADER_ID = p_list_header_id;
2509
2510 CURSOR l_PRICING_ATTR_csr(p_list_line_id Number) IS
2511 SELECT ACCUMULATE_FLAG
2512 , ATTRIBUTE1
2513 , ATTRIBUTE2
2514 , ATTRIBUTE3
2515 , ATTRIBUTE4
2516 , ATTRIBUTE5
2517 , ATTRIBUTE6
2518 , ATTRIBUTE7
2519 , ATTRIBUTE8
2520 , ATTRIBUTE9
2521 , ATTRIBUTE10
2522 , ATTRIBUTE11
2523 , ATTRIBUTE12
2524 , ATTRIBUTE13
2525 , ATTRIBUTE14
2526 , ATTRIBUTE15
2527 , ATTRIBUTE_GROUPING_NO
2528 , CONTEXT
2529 , CREATED_BY
2530 , CREATION_DATE
2531 , EXCLUDER_FLAG
2532 , LAST_UPDATED_BY
2533 , LAST_UPDATE_DATE
2534 , LAST_UPDATE_LOGIN
2535 , LIST_LINE_ID
2536 , LIST_HEADER_ID
2537 , PRICING_PHASE_ID
2538 , PRICING_ATTRIBUTE
2539 , PRICING_ATTRIBUTE_CONTEXT
2540 , PRICING_ATTRIBUTE_ID
2541 , PRICING_ATTR_VALUE_FROM
2542 , PRICING_ATTR_VALUE_TO
2543 , PRODUCT_ATTRIBUTE
2544 , PRODUCT_ATTRIBUTE_CONTEXT
2545 , PRODUCT_ATTR_VALUE
2546 , PRODUCT_UOM_CODE
2547 , PROGRAM_APPLICATION_ID
2548 , PROGRAM_ID
2549 , PROGRAM_UPDATE_DATE
2550 , REQUEST_ID
2551 , COMPARISON_OPERATOR_CODE
2552 , PRICING_ATTRIBUTE_DATATYPE
2553 , PRODUCT_ATTRIBUTE_DATATYPE
2554 , PRICING_ATTR_VALUE_FROM_NUMBER
2555 , PRICING_ATTR_VALUE_TO_NUMBER
2556 , QUALIFICATION_IND
2557 FROM QP_PRICING_ATTRIBUTES
2558 WHERE LIST_LINE_ID = p_list_line_id
2559 AND (( PRICING_ATTRIBUTE_CONTEXT IS NOT NULL
2560 AND PRICING_ATTRIBUTE_CONTEXT <> 'VOLUME')
2561 OR EXCLUDER_FLAG = 'Y')
2562 AND LIST_HEADER_ID = p_list_header_id;
2563
2564 CURSOR l_PRICING_ATTR_RLTD_csr(p_list_line_id Number) IS
2565 SELECT ACCUMULATE_FLAG
2566 , ATTRIBUTE1
2567 , ATTRIBUTE2
2568 , ATTRIBUTE3
2569 , ATTRIBUTE4
2570 , ATTRIBUTE5
2571 , ATTRIBUTE6
2572 , ATTRIBUTE7
2573 , ATTRIBUTE8
2574 , ATTRIBUTE9
2575 , ATTRIBUTE10
2576 , ATTRIBUTE11
2577 , ATTRIBUTE12
2578 , ATTRIBUTE13
2579 , ATTRIBUTE14
2580 , ATTRIBUTE15
2581 , ATTRIBUTE_GROUPING_NO
2582 , CONTEXT
2583 , CREATED_BY
2584 , CREATION_DATE
2585 , EXCLUDER_FLAG
2586 , LAST_UPDATED_BY
2587 , LAST_UPDATE_DATE
2588 , LAST_UPDATE_LOGIN
2589 , LIST_LINE_ID
2590 , LIST_HEADER_ID
2591 , PRICING_PHASE_ID
2592 , PRICING_ATTRIBUTE
2593 , PRICING_ATTRIBUTE_CONTEXT
2594 , PRICING_ATTRIBUTE_ID
2595 , PRICING_ATTR_VALUE_FROM
2596 , PRICING_ATTR_VALUE_TO
2597 , PRODUCT_ATTRIBUTE
2598 , PRODUCT_ATTRIBUTE_CONTEXT
2599 , PRODUCT_ATTR_VALUE
2600 , PRODUCT_UOM_CODE
2601 , PROGRAM_APPLICATION_ID
2602 , PROGRAM_ID
2603 , PROGRAM_UPDATE_DATE
2604 , REQUEST_ID
2605 , COMPARISON_OPERATOR_CODE
2606 , PRICING_ATTRIBUTE_DATATYPE
2607 , PRODUCT_ATTRIBUTE_DATATYPE
2608 , PRICING_ATTR_VALUE_FROM_NUMBER
2609 , PRICING_ATTR_VALUE_TO_NUMBER
2610 , QUALIFICATION_IND
2611 FROM QP_PRICING_ATTRIBUTES
2612 WHERE LIST_LINE_ID = p_list_line_id
2613 AND LIST_HEADER_ID = p_list_header_id;
2614
2615 CURSOR l_QUALIFIER_csr(p_list_line_id Number) IS
2616 SELECT
2617 ACTIVE_FLAG
2618 , ATTRIBUTE1
2619 , ATTRIBUTE10
2620 , ATTRIBUTE11
2621 , ATTRIBUTE12
2622 , ATTRIBUTE13
2623 , ATTRIBUTE14
2624 , ATTRIBUTE15
2625 , ATTRIBUTE2
2626 , ATTRIBUTE3
2627 , ATTRIBUTE4
2628 , ATTRIBUTE5
2629 , ATTRIBUTE6
2630 , ATTRIBUTE7
2631 , ATTRIBUTE8
2632 , ATTRIBUTE9
2633 , COMPARISON_OPERATOR_CODE
2634 , CONTEXT
2635 , CREATED_BY
2636 , CREATED_FROM_RULE_ID
2637 , CREATION_DATE
2638 , DISTINCT_ROW_COUNT
2639 , END_DATE_ACTIVE
2640 , EXCLUDER_FLAG
2641 , HEADER_QUALS_EXIST_FLAG
2642 , LAST_UPDATE_DATE
2643 , LAST_UPDATE_LOGIN
2644 , LAST_UPDATED_BY
2645 , LIST_HEADER_ID
2646 , LIST_LINE_ID
2647 , LIST_TYPE_CODE
2648 , PROGRAM_APPLICATION_ID
2649 , PROGRAM_ID
2650 , PROGRAM_UPDATE_DATE
2651 , QUAL_ATTR_VALUE_FROM_NUMBER
2652 , QUAL_ATTR_VALUE_TO_NUMBER
2653 , QUALIFIER_ATTR_VALUE
2654 , QUALIFIER_ATTR_VALUE_TO
2655 , QUALIFIER_ATTRIBUTE
2656 , QUALIFIER_CONTEXT
2657 , QUALIFIER_DATATYPE
2658 , QUALIFIER_GROUP_CNT
2659 , QUALIFIER_GROUPING_NO
2660 , QUALIFIER_ID
2661 , QUALIFIER_PRECEDENCE
2662 , QUALIFIER_RULE_ID
2663 , REQUEST_ID
2664 , SEARCH_IND
2665 , START_DATE_ACTIVE
2666 FROM QP_QUALIFIERS
2667 WHERE LIST_LINE_ID = p_list_line_id
2668 AND LIST_HEADER_ID = p_list_header_id;
2669
2670 BEGIN
2671
2672
2673 oe_debug_pub.add('Inside Duplicate Record');
2674 oe_debug_pub.add('List Line Type' || p_list_line_type_code,3);
2675 /******************************************************************************************/
2676 /* Duplicate line Pricing Attributes */
2677 /******************************************************************************************/
2678 FOR l_implicit_rec IN l_PRICING_ATTR_csr(p_old_list_line_id) LOOP
2679
2680 oe_debug_pub.add('Inside pricing attribute cursor of line : '||p_new_list_line_id, 3);
2681
2682 SELECT qp_pricing_attributes_s.nextval INTO l_new_pricing_attribute_id
2683 FROM dual;
2684
2685 l_PRICING_ATTR_rec.accumulate_flag := l_implicit_rec.ACCUMULATE_FLAG;
2686 l_PRICING_ATTR_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2687 l_PRICING_ATTR_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2688 l_PRICING_ATTR_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2689 l_PRICING_ATTR_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2690 l_PRICING_ATTR_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2691 l_PRICING_ATTR_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2692 l_PRICING_ATTR_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2693 l_PRICING_ATTR_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2694 l_PRICING_ATTR_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2695 l_PRICING_ATTR_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2696 l_PRICING_ATTR_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2697 l_PRICING_ATTR_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2698 l_PRICING_ATTR_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2699 l_PRICING_ATTR_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2700 l_PRICING_ATTR_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2701 l_PRICING_ATTR_rec.attribute_grouping_no := l_implicit_rec.ATTRIBUTE_GROUPING_NO;
2702 l_PRICING_ATTR_rec.context := l_implicit_rec.CONTEXT;
2703 l_PRICING_ATTR_rec.created_by := l_implicit_rec.CREATED_BY;
2704 l_PRICING_ATTR_rec.creation_date := l_implicit_rec.CREATION_DATE;
2705 l_PRICING_ATTR_rec.excluder_flag := l_implicit_rec.EXCLUDER_FLAG;
2706 l_PRICING_ATTR_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2707 l_PRICING_ATTR_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2708 l_PRICING_ATTR_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2709 l_PRICING_ATTR_rec.list_line_id := p_new_list_line_id;
2710 l_PRICING_ATTR_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
2711 l_PRICING_ATTR_rec.pricing_phase_id := l_implicit_rec.PRICING_PHASE_ID;
2712 l_PRICING_ATTR_rec.pricing_attribute := l_implicit_rec.PRICING_ATTRIBUTE;
2713 l_PRICING_ATTR_rec.pricing_attribute_context := l_implicit_rec.PRICING_ATTRIBUTE_CONTEXT;
2714 l_PRICING_ATTR_rec.pricing_attribute_id := l_new_pricing_attribute_id;
2715 l_PRICING_ATTR_rec.pricing_attr_value_from := l_implicit_rec.PRICING_ATTR_VALUE_FROM;
2716 l_PRICING_ATTR_rec.pricing_attr_value_to := l_implicit_rec.PRICING_ATTR_VALUE_TO;
2717 l_PRICING_ATTR_rec.product_attribute := l_implicit_rec.PRODUCT_ATTRIBUTE;
2718 l_PRICING_ATTR_rec.product_attribute_context := l_implicit_rec.PRODUCT_ATTRIBUTE_CONTEXT;
2719 l_PRICING_ATTR_rec.product_attr_value := l_implicit_rec.PRODUCT_ATTR_VALUE;
2720 l_PRICING_ATTR_rec.product_uom_code := l_implicit_rec.PRODUCT_UOM_CODE;
2721 l_PRICING_ATTR_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2722 l_PRICING_ATTR_rec.program_id := l_implicit_rec.PROGRAM_ID;
2723 l_PRICING_ATTR_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2724 l_PRICING_ATTR_rec.request_id := l_implicit_rec.REQUEST_ID;
2725 l_PRICING_ATTR_rec.comparison_operator_code := l_implicit_rec.comparison_operator_code;
2726 l_PRICING_ATTR_rec.pricing_attribute_datatype := l_implicit_rec.pricing_attribute_datatype;
2727 l_PRICING_ATTR_rec.product_attribute_datatype := l_implicit_rec.product_attribute_datatype;
2728 l_PRICING_ATTR_rec.pricing_attr_value_from_number := l_implicit_rec.PRICING_ATTR_VALUE_FROM_NUMBER;
2729 l_PRICING_ATTR_rec.pricing_attr_value_to_number := l_implicit_rec.PRICING_ATTR_VALUE_TO_NUMBER;
2730 l_PRICING_ATTR_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
2731 l_PRICING_ATTR_rec.MODIFIERS_INDEX := 1;
2732
2733 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
2734
2735 l_PRICING_ATTR_tbl(l_PRICING_ATTR_tbl.COUNT + 1) := l_PRICING_ATTR_rec;
2736
2737 END LOOP;
2738
2739 /******************************************************************************************/
2740 /* Related Lines Duplication */
2741 /******************************************************************************************/
2742 If p_list_line_type_code IN ('PBH', 'PRG','OID') Then
2743
2744 --Storing continuous_price_break_flag value for later use,to convert non continuous price break lines into continuous line.
2745
2746 SELECT continuous_price_break_flag INTO l_continuous_price_break_flag
2747 FROM QP_LIST_LINES
2748 WHERE list_line_id=p_old_list_line_id;
2749
2750 FOR l_implicit_rec IN l_LIST_LINE_csr(p_old_list_line_id) LOOP
2751
2752 oe_debug_pub.add('Inside related modifier cursor for line : '||p_new_list_line_id, 3);
2753
2754 SELECT qp_List_lines_s.nextval INTO l_new_list_line_id
2755 FROM dual;
2756
2757 oe_debug_pub.add('From Modifier : '||p_new_list_line_id, 3);
2758 oe_debug_pub.add('To Modifier : '||l_new_list_line_id, 3);
2759
2760 l_MODIFIERS_rec.ACCRUAL_CONVERSION_RATE := l_implicit_rec.ACCRUAL_CONVERSION_RATE;
2761 l_MODIFIERS_rec.ACCRUAL_FLAG := l_implicit_rec.ACCRUAL_FLAG;
2762 l_MODIFIERS_rec.ARITHMETIC_OPERATOR := l_implicit_rec.ARITHMETIC_OPERATOR;
2763 l_MODIFIERS_rec.ATTRIBUTE1 := l_implicit_rec.ATTRIBUTE1;
2764 l_MODIFIERS_rec.ATTRIBUTE2 := l_implicit_rec.ATTRIBUTE2;
2765 l_MODIFIERS_rec.ATTRIBUTE3 := l_implicit_rec.ATTRIBUTE3;
2766 l_MODIFIERS_rec.ATTRIBUTE4 := l_implicit_rec.ATTRIBUTE4;
2767 l_MODIFIERS_rec.ATTRIBUTE5 := l_implicit_rec.ATTRIBUTE5;
2768 l_MODIFIERS_rec.ATTRIBUTE6 := l_implicit_rec.ATTRIBUTE6;
2769 l_MODIFIERS_rec.ATTRIBUTE7 := l_implicit_rec.ATTRIBUTE7;
2770 l_MODIFIERS_rec.ATTRIBUTE8 := l_implicit_rec.ATTRIBUTE8;
2771 l_MODIFIERS_rec.ATTRIBUTE9 := l_implicit_rec.ATTRIBUTE9;
2772 l_MODIFIERS_rec.ATTRIBUTE10 := l_implicit_rec.ATTRIBUTE10;
2773 l_MODIFIERS_rec.ATTRIBUTE11 := l_implicit_rec.ATTRIBUTE11;
2774 l_MODIFIERS_rec.ATTRIBUTE12 := l_implicit_rec.ATTRIBUTE12;
2775 l_MODIFIERS_rec.ATTRIBUTE13 := l_implicit_rec.ATTRIBUTE13;
2776 l_MODIFIERS_rec.ATTRIBUTE14 := l_implicit_rec.ATTRIBUTE14;
2777 l_MODIFIERS_rec.ATTRIBUTE15 := l_implicit_rec.ATTRIBUTE15;
2778 l_MODIFIERS_rec.AUTOMATIC_FLAG := l_implicit_rec.AUTOMATIC_FLAG;
2779 l_MODIFIERS_rec.BENEFIT_LIMIT := l_implicit_rec.BENEFIT_LIMIT;
2780 l_MODIFIERS_rec.BENEFIT_PRICE_LIST_LINE_ID := l_implicit_rec.BENEFIT_PRICE_LIST_LINE_ID;
2781 l_MODIFIERS_rec.BENEFIT_QTY := l_implicit_rec.BENEFIT_QTY;
2782 l_MODIFIERS_rec.BENEFIT_UOM_CODE := l_implicit_rec.BENEFIT_UOM_CODE;
2783 l_MODIFIERS_rec.CHARGE_SUBTYPE_CODE := l_implicit_rec.CHARGE_SUBTYPE_CODE;
2784 l_MODIFIERS_rec.CHARGE_TYPE_CODE := l_implicit_rec.CHARGE_TYPE_CODE;
2785 l_MODIFIERS_rec.COMMENTS := l_implicit_rec.COMMENTS;
2786 l_MODIFIERS_rec.CONTEXT := l_implicit_rec.CONTEXT;
2787 l_MODIFIERS_rec.CREATED_BY := l_implicit_rec.CREATED_BY;
2788 l_MODIFIERS_rec.CREATION_DATE := l_implicit_rec.CREATION_DATE;
2789 l_MODIFIERS_rec.EFFECTIVE_PERIOD_UOM := l_implicit_rec.EFFECTIVE_PERIOD_UOM;
2790 l_MODIFIERS_rec.END_DATE_ACTIVE := l_implicit_rec.END_DATE_ACTIVE;
2791 l_MODIFIERS_rec.ESTIM_ACCRUAL_RATE := l_implicit_rec.ESTIM_ACCRUAL_RATE;
2792 l_MODIFIERS_rec.ESTIM_GL_VALUE := l_implicit_rec.ESTIM_GL_VALUE;
2793 l_MODIFIERS_rec.EXPIRATION_DATE := l_implicit_rec.EXPIRATION_DATE;
2794 l_MODIFIERS_rec.EXPIRATION_PERIOD_START_DATE := l_implicit_rec.EXPIRATION_PERIOD_START_DATE;
2795 l_MODIFIERS_rec.EXPIRATION_PERIOD_UOM := l_implicit_rec.EXPIRATION_PERIOD_UOM;
2796 l_MODIFIERS_rec.GENERATE_USING_FORMULA_ID := l_implicit_rec.GENERATE_USING_FORMULA_ID;
2797 l_MODIFIERS_rec.INCOMPATIBILITY_GRP_CODE := l_implicit_rec.INCOMPATIBILITY_GRP_CODE;
2798 l_MODIFIERS_rec.INVENTORY_ITEM_ID := l_implicit_rec.INVENTORY_ITEM_ID;
2799 l_MODIFIERS_rec.LAST_UPDATE_DATE := l_implicit_rec.LAST_UPDATE_DATE;
2800 l_MODIFIERS_rec.LAST_UPDATE_LOGIN := l_implicit_rec.LAST_UPDATE_LOGIN;
2801 l_MODIFIERS_rec.LAST_UPDATED_BY := l_implicit_rec.LAST_UPDATED_BY;
2802 l_MODIFIERS_rec.LIST_HEADER_ID := l_implicit_rec.LIST_HEADER_ID;
2803 l_MODIFIERS_rec.LIST_LINE_ID := l_new_list_line_id;
2804 l_MODIFIERS_rec.LIST_LINE_NO := l_new_list_line_id;
2805 l_MODIFIERS_rec.LIST_LINE_TYPE_CODE := l_implicit_rec.LIST_LINE_TYPE_CODE;
2806 l_MODIFIERS_rec.LIST_PRICE := l_implicit_rec.LIST_PRICE;
2807 l_MODIFIERS_rec.MODIFIER_LEVEL_CODE := l_implicit_rec.MODIFIER_LEVEL_CODE;
2808 l_MODIFIERS_rec.NUMBER_EFFECTIVE_PERIODS := l_implicit_rec.NUMBER_EFFECTIVE_PERIODS;
2809 l_MODIFIERS_rec.NUMBER_EXPIRATION_PERIODS := l_implicit_rec.NUMBER_EXPIRATION_PERIODS;
2810 l_MODIFIERS_rec.OPERAND := l_implicit_rec.OPERAND;
2811 l_MODIFIERS_rec.ORGANIZATION_ID := l_implicit_rec.ORGANIZATION_ID;
2812 l_MODIFIERS_rec.OVERRIDE_FLAG := l_implicit_rec.OVERRIDE_FLAG;
2813 l_MODIFIERS_rec.PERCENT_PRICE := l_implicit_rec.PERCENT_PRICE;
2814 l_MODIFIERS_rec.PRICE_BREAK_TYPE_CODE := l_implicit_rec.PRICE_BREAK_TYPE_CODE;
2815 l_MODIFIERS_rec.PRICE_BY_FORMULA_ID := l_implicit_rec.PRICE_BY_FORMULA_ID;
2816 l_MODIFIERS_rec.PRICING_GROUP_SEQUENCE := l_implicit_rec.PRICING_GROUP_SEQUENCE;
2817 l_MODIFIERS_rec.PRICING_PHASE_ID := l_implicit_rec.PRICING_PHASE_ID;
2818 l_MODIFIERS_rec.PRIMARY_UOM_FLAG := l_implicit_rec.PRIMARY_UOM_FLAG;
2819 l_MODIFIERS_rec.PRINT_ON_INVOICE_FLAG := l_implicit_rec.PRINT_ON_INVOICE_FLAG;
2820 l_MODIFIERS_rec.PRODUCT_PRECEDENCE := l_implicit_rec.PRODUCT_PRECEDENCE;
2821 l_MODIFIERS_rec.PROGRAM_APPLICATION_ID := l_implicit_rec.PROGRAM_APPLICATION_ID;
2822 l_MODIFIERS_rec.PROGRAM_ID := l_implicit_rec.PROGRAM_ID;
2823 l_MODIFIERS_rec.PROGRAM_UPDATE_DATE := l_implicit_rec.PROGRAM_UPDATE_DATE;
2824 l_MODIFIERS_rec.PRORATION_TYPE_CODE := l_implicit_rec.PRORATION_TYPE_CODE;
2825 l_MODIFIERS_rec.REBATE_TRXN_TYPE_CODE := l_implicit_rec.REBATE_TRANSACTION_TYPE_CODE;
2826 l_MODIFIERS_rec.RELATED_ITEM_ID := l_implicit_rec.RELATED_ITEM_ID;
2827 l_MODIFIERS_rec.RELATIONSHIP_TYPE_ID := l_implicit_rec.RELATIONSHIP_TYPE_ID;
2828 l_MODIFIERS_rec.REPRICE_FLAG := l_implicit_rec.REPRICE_FLAG;
2829 l_MODIFIERS_rec.REQUEST_ID := l_implicit_rec.REQUEST_ID;
2830 l_MODIFIERS_rec.REVISION := l_implicit_rec.REVISION;
2831 l_MODIFIERS_rec.REVISION_DATE := l_implicit_rec.REVISION_DATE;
2832 l_MODIFIERS_rec.REVISION_REASON_CODE := l_implicit_rec.REVISION_REASON_CODE;
2833 l_MODIFIERS_rec.START_DATE_ACTIVE := l_implicit_rec.START_DATE_ACTIVE;
2834 l_MODIFIERS_rec.SUBSTITUTION_ATTRIBUTE := l_implicit_rec.SUBSTITUTION_ATTRIBUTE;
2835 l_MODIFIERS_rec.SUBSTITUTION_CONTEXT := l_implicit_rec.SUBSTITUTION_CONTEXT;
2836 l_MODIFIERS_rec.SUBSTITUTION_VALUE := l_implicit_rec.SUBSTITUTION_VALUE;
2837
2838 /* Related modifier details */
2839 l_MODIFIERS_rec.FROM_RLTD_MODIFIER_ID := p_new_list_line_id;
2840 l_MODIFIERS_rec.TO_RLTD_MODIFIER_ID := l_new_list_line_id;
2841 l_MODIFIERS_rec.RLTD_MODIFIER_GRP_NO := l_implicit_rec.RLTD_MODIFIER_GRP_NO;
2842 l_MODIFIERS_rec.RLTD_MODIFIER_GRP_TYPE := l_implicit_rec.RLTD_MODIFIER_GRP_TYPE;
2843
2844 l_MODIFIERS_rec.db_flag := FND_API.G_TRUE;
2845 l_MODIFIERS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
2846
2847 l_MODIFIERS_tbl(l_MODIFIERS_tbl.COUNT + 1) := l_MODIFIERS_rec;
2848 l_number_of_lines := l_number_of_lines + 1;
2849
2850 /*************************************************************************************/
2851 /* Related Lines Pricing Attributes Duplication */
2852 /*************************************************************************************/
2853
2854 FOR l_implicit_attr_rec IN l_PRICING_ATTR_rltd_csr(l_implicit_rec.list_line_id) LOOP
2855
2856 oe_debug_pub.add('Inside pricing attribute cursor of related modifier line : '||l_new_list_line_id, 3);
2857
2858 SELECT qp_pricing_attributes_s.nextval INTO l_new_pricing_attribute_id
2859 FROM dual;
2860
2861 l_PRICING_ATTR_rec.accumulate_flag := l_implicit_attr_rec.ACCUMULATE_FLAG;
2862 l_PRICING_ATTR_rec.attribute1 := l_implicit_attr_rec.ATTRIBUTE1;
2863 l_PRICING_ATTR_rec.attribute10 := l_implicit_attr_rec.ATTRIBUTE10;
2864 l_PRICING_ATTR_rec.attribute11 := l_implicit_attr_rec.ATTRIBUTE11;
2865 l_PRICING_ATTR_rec.attribute12 := l_implicit_attr_rec.ATTRIBUTE12;
2866 l_PRICING_ATTR_rec.attribute13 := l_implicit_attr_rec.ATTRIBUTE13;
2867 l_PRICING_ATTR_rec.attribute14 := l_implicit_attr_rec.ATTRIBUTE14;
2868 l_PRICING_ATTR_rec.attribute15 := l_implicit_attr_rec.ATTRIBUTE15;
2869 l_PRICING_ATTR_rec.attribute2 := l_implicit_attr_rec.ATTRIBUTE2;
2870 l_PRICING_ATTR_rec.attribute3 := l_implicit_attr_rec.ATTRIBUTE3;
2871 l_PRICING_ATTR_rec.attribute4 := l_implicit_attr_rec.ATTRIBUTE4;
2872 l_PRICING_ATTR_rec.attribute5 := l_implicit_attr_rec.ATTRIBUTE5;
2873 l_PRICING_ATTR_rec.attribute6 := l_implicit_attr_rec.ATTRIBUTE6;
2874 l_PRICING_ATTR_rec.attribute7 := l_implicit_attr_rec.ATTRIBUTE7;
2875 l_PRICING_ATTR_rec.attribute8 := l_implicit_attr_rec.ATTRIBUTE8;
2876 l_PRICING_ATTR_rec.attribute9 := l_implicit_attr_rec.ATTRIBUTE9;
2877 l_PRICING_ATTR_rec.attribute_grouping_no := l_implicit_attr_rec.ATTRIBUTE_GROUPING_NO;
2878 l_PRICING_ATTR_rec.context := l_implicit_attr_rec.CONTEXT;
2879 l_PRICING_ATTR_rec.created_by := l_implicit_attr_rec.CREATED_BY;
2880 l_PRICING_ATTR_rec.creation_date := l_implicit_attr_rec.CREATION_DATE;
2881 l_PRICING_ATTR_rec.excluder_flag := l_implicit_attr_rec.EXCLUDER_FLAG;
2882 l_PRICING_ATTR_rec.last_updated_by := l_implicit_attr_rec.LAST_UPDATED_BY;
2883 l_PRICING_ATTR_rec.last_update_date := l_implicit_attr_rec.LAST_UPDATE_DATE;
2884 l_PRICING_ATTR_rec.last_update_login := l_implicit_attr_rec.LAST_UPDATE_LOGIN;
2885 l_PRICING_ATTR_rec.list_line_id := l_new_list_line_id;
2886 l_PRICING_ATTR_rec.list_header_id := l_implicit_attr_rec.LIST_HEADER_ID;
2887 l_PRICING_ATTR_rec.pricing_phase_id := l_implicit_attr_rec.PRICING_PHASE_ID;
2888 l_PRICING_ATTR_rec.pricing_attribute := l_implicit_attr_rec.PRICING_ATTRIBUTE;
2889 l_PRICING_ATTR_rec.pricing_attribute_context := l_implicit_attr_rec.PRICING_ATTRIBUTE_CONTEXT;
2890 l_PRICING_ATTR_rec.pricing_attribute_id := l_new_pricing_attribute_id;
2891 l_PRICING_ATTR_rec.pricing_attr_value_from := l_implicit_attr_rec.PRICING_ATTR_VALUE_FROM;
2892 l_PRICING_ATTR_rec.pricing_attr_value_to := l_implicit_attr_rec.PRICING_ATTR_VALUE_TO;
2893 l_PRICING_ATTR_rec.product_attribute := l_implicit_attr_rec.PRODUCT_ATTRIBUTE;
2894 l_PRICING_ATTR_rec.product_attribute_context := l_implicit_attr_rec.PRODUCT_ATTRIBUTE_CONTEXT;
2895 l_PRICING_ATTR_rec.product_attr_value := l_implicit_attr_rec.PRODUCT_ATTR_VALUE;
2896 l_PRICING_ATTR_rec.product_uom_code := l_implicit_attr_rec.PRODUCT_UOM_CODE;
2897 l_PRICING_ATTR_rec.program_application_id := l_implicit_attr_rec.PROGRAM_APPLICATION_ID;
2898 l_PRICING_ATTR_rec.program_id := l_implicit_attr_rec.PROGRAM_ID;
2899 l_PRICING_ATTR_rec.program_update_date := l_implicit_attr_rec.PROGRAM_UPDATE_DATE;
2900 l_PRICING_ATTR_rec.request_id := l_implicit_attr_rec.REQUEST_ID;
2901 l_PRICING_ATTR_rec.comparison_operator_code := l_implicit_attr_rec.comparison_operator_code;
2902 l_PRICING_ATTR_rec.pricing_attribute_datatype := l_implicit_attr_rec.pricing_attribute_datatype;
2903 l_PRICING_ATTR_rec.product_attribute_datatype := l_implicit_attr_rec.product_attribute_datatype;
2904 l_PRICING_ATTR_rec.pricing_attr_value_from_number := l_implicit_attr_rec.PRICING_ATTR_VALUE_FROM_NUMBER;
2905 l_PRICING_ATTR_rec.pricing_attr_value_to_number := l_implicit_attr_rec.PRICING_ATTR_VALUE_TO_NUMBER;
2906 l_PRICING_ATTR_rec.qualification_ind := l_implicit_attr_rec.QUALIFICATION_IND;
2907 l_PRICING_ATTR_rec.MODIFIERS_INDEX := l_number_of_lines;
2908 l_PRICING_ATTR_rec.operation := QP_GLOBALS.G_OPR_CREATE;
2909
2910 l_PRICING_ATTR_tbl(l_PRICING_ATTR_tbl.COUNT + 1) := l_PRICING_ATTR_rec;
2911
2912 END LOOP;
2913 END LOOP;
2914 END IF;
2915 /******************************************************************************************/
2916 /* Qualifiers Duplication */
2917 /******************************************************************************************/
2918 FOR l_implicit_rec IN l_QUALIFIER_csr(p_old_list_line_id) LOOP
2919
2920 oe_debug_pub.add('Inside qualifier cursor of line : '||p_new_list_line_id, 3);
2921
2922 SELECT qp_qualifiers_s.nextval INTO l_new_qualifier_id
2923 FROM dual;
2924
2925 l_QUALIFIERS_rec.ACTIVE_FLAG := l_implicit_rec.ACTIVE_FLAG;
2926 l_QUALIFIERS_rec.ATTRIBUTE1 := l_implicit_rec.ATTRIBUTE1;
2927 l_QUALIFIERS_rec.ATTRIBUTE2 := l_implicit_rec.ATTRIBUTE2;
2928 l_QUALIFIERS_rec.ATTRIBUTE3 := l_implicit_rec.ATTRIBUTE3;
2929 l_QUALIFIERS_rec.ATTRIBUTE4 := l_implicit_rec.ATTRIBUTE4;
2930 l_QUALIFIERS_rec.ATTRIBUTE5 := l_implicit_rec.ATTRIBUTE5;
2931 l_QUALIFIERS_rec.ATTRIBUTE6 := l_implicit_rec.ATTRIBUTE6;
2932 l_QUALIFIERS_rec.ATTRIBUTE7 := l_implicit_rec.ATTRIBUTE7;
2933 l_QUALIFIERS_rec.ATTRIBUTE8 := l_implicit_rec.ATTRIBUTE8;
2934 l_QUALIFIERS_rec.ATTRIBUTE9 := l_implicit_rec.ATTRIBUTE9;
2935 l_QUALIFIERS_rec.ATTRIBUTE10 := l_implicit_rec.ATTRIBUTE10;
2936 l_QUALIFIERS_rec.ATTRIBUTE11 := l_implicit_rec.ATTRIBUTE11;
2937 l_QUALIFIERS_rec.ATTRIBUTE12 := l_implicit_rec.ATTRIBUTE12;
2938 l_QUALIFIERS_rec.ATTRIBUTE13 := l_implicit_rec.ATTRIBUTE13;
2939 l_QUALIFIERS_rec.ATTRIBUTE14 := l_implicit_rec.ATTRIBUTE14;
2940 l_QUALIFIERS_rec.ATTRIBUTE15 := l_implicit_rec.ATTRIBUTE15;
2941 l_QUALIFIERS_rec.COMPARISON_OPERATOR_CODE := l_implicit_rec.COMPARISON_OPERATOR_CODE;
2942 l_QUALIFIERS_rec.CONTEXT := l_implicit_rec.CONTEXT;
2943 l_QUALIFIERS_rec.CREATED_BY := l_implicit_rec.CREATED_BY;
2944 l_QUALIFIERS_rec.CREATED_FROM_RULE_ID := l_implicit_rec.CREATED_FROM_RULE_ID;
2945 l_QUALIFIERS_rec.CREATION_DATE := l_implicit_rec.CREATION_DATE;
2946 l_QUALIFIERS_rec.DISTINCT_ROW_COUNT := l_implicit_rec.DISTINCT_ROW_COUNT;
2947 l_QUALIFIERS_rec.END_DATE_ACTIVE := l_implicit_rec.END_DATE_ACTIVE;
2948 l_QUALIFIERS_rec.EXCLUDER_FLAG := l_implicit_rec.EXCLUDER_FLAG;
2949 l_QUALIFIERS_rec.HEADER_QUALS_EXIST_FLAG := l_implicit_rec.HEADER_QUALS_EXIST_FLAG;
2950 l_QUALIFIERS_rec.LAST_UPDATE_DATE := l_implicit_rec.LAST_UPDATE_DATE;
2951 l_QUALIFIERS_rec.LAST_UPDATE_LOGIN := l_implicit_rec.LAST_UPDATE_LOGIN;
2952 l_QUALIFIERS_rec.LAST_UPDATED_BY := l_implicit_rec.LAST_UPDATED_BY;
2953 l_QUALIFIERS_rec.LIST_HEADER_ID := l_implicit_rec.LIST_HEADER_ID;
2954 l_QUALIFIERS_rec.LIST_LINE_ID := p_new_list_line_id;
2955 l_QUALIFIERS_rec.LIST_TYPE_CODE := l_implicit_rec.LIST_TYPE_CODE;
2956 l_QUALIFIERS_rec.PROGRAM_APPLICATION_ID := l_implicit_rec.PROGRAM_APPLICATION_ID;
2957 l_QUALIFIERS_rec.PROGRAM_ID := l_implicit_rec.PROGRAM_ID;
2958 l_QUALIFIERS_rec.PROGRAM_UPDATE_DATE := l_implicit_rec.PROGRAM_UPDATE_DATE;
2959 l_QUALIFIERS_rec.QUAL_ATTR_VALUE_FROM_NUMBER := l_implicit_rec.QUAL_ATTR_VALUE_FROM_NUMBER;
2960 l_QUALIFIERS_rec.QUAL_ATTR_VALUE_TO_NUMBER := l_implicit_rec.QUAL_ATTR_VALUE_TO_NUMBER;
2961 l_QUALIFIERS_rec.QUALIFIER_ATTR_VALUE := l_implicit_rec.QUALIFIER_ATTR_VALUE;
2962 l_QUALIFIERS_rec.QUALIFIER_ATTR_VALUE_TO := l_implicit_rec.QUALIFIER_ATTR_VALUE_TO;
2963 l_QUALIFIERS_rec.QUALIFIER_ATTRIBUTE := l_implicit_rec.QUALIFIER_ATTRIBUTE;
2964 l_QUALIFIERS_rec.QUALIFIER_CONTEXT := l_implicit_rec.QUALIFIER_CONTEXT;
2965 l_QUALIFIERS_rec.QUALIFIER_DATATYPE := l_implicit_rec.QUALIFIER_DATATYPE;
2966 l_QUALIFIERS_rec.QUALIFIER_GROUP_CNT := l_implicit_rec.QUALIFIER_GROUP_CNT;
2967 l_QUALIFIERS_rec.QUALIFIER_GROUPING_NO := l_implicit_rec.QUALIFIER_GROUPING_NO;
2968 l_QUALIFIERS_rec.QUALIFIER_ID := l_new_qualifier_id;
2969 l_QUALIFIERS_rec.QUALIFIER_PRECEDENCE := l_implicit_rec.QUALIFIER_PRECEDENCE;
2970 l_QUALIFIERS_rec.QUALIFIER_RULE_ID := l_implicit_rec.QUALIFIER_RULE_ID;
2971 l_QUALIFIERS_rec.REQUEST_ID := l_implicit_rec.REQUEST_ID;
2972 l_QUALIFIERS_rec.SEARCH_IND := l_implicit_rec.SEARCH_IND;
2973 l_QUALIFIERS_rec.START_DATE_ACTIVE := l_implicit_rec.START_DATE_ACTIVE;
2974
2975 l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
2976
2977 l_QUALIFIERS_tbl(l_QUALIFIERS_tbl.COUNT + 1) := l_QUALIFIERS_rec;
2978
2979 END LOOP;
2980
2981 /***************************************************************************************/
2982 /* Set the control record */
2983 /***************************************************************************************/
2984
2985 IF ((l_MODIFIERS_tbl.COUNT <> 0) OR
2986 (l_PRICING_ATTR_tbl.COUNT <> 0) OR
2987 (l_QUALIFIERS_tbl.COUNT <> 0))
2988 THEN
2989 l_control_rec.controlled_operation := TRUE;
2990 l_control_rec.write_to_DB := TRUE;
2991
2992 l_control_rec.validate_entity := FALSE;
2993 l_control_rec.default_attributes := FALSE;
2994 l_control_rec.change_attributes := FALSE;
2995 l_control_rec.process := FALSE;
2996
2997 -- Instruct API to retain its caches
2998
2999 l_control_rec.clear_api_cache := FALSE;
3000 l_control_rec.clear_api_requests := FALSE;
3001
3002 /*************************************************************************************/
3003 /* Process the Dulplicated Modifier */
3004 /*************************************************************************************/
3005
3006 oe_debug_pub.add('Before calling Process Modifier');
3007
3008 QP_Modifiers_PVT.Process_MODIFIERS
3009 ( p_api_version_number => 1.0
3010 , p_init_msg_list => FND_API.G_TRUE
3011 , x_return_status => l_return_status
3012 , x_msg_count => x_msg_count
3013 , x_msg_data => x_msg_data
3014 , p_control_rec => l_control_rec
3015 , p_MODIFIERS_tbl => l_MODIFIERS_tbl
3016 , p_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl
3017 , p_QUALIFIERS_tbl => l_QUALIFIERS_tbl
3018 , x_MODIFIER_LIST_rec => l_x_MODIFIER_LIST_rec
3019 , x_MODIFIERS_tbl => l_x_MODIFIERS_tbl
3020 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
3021 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
3022 );
3023
3024 -- Upgrade Non Continuous Price Break Lines into Continuous Price Break Lines.
3025 IF (l_continuous_price_break_flag<>'Y' OR l_continuous_price_break_flag IS NULL )and p_list_line_type_code='PBH' THEN
3026
3027 qp_delayed_requests_PVT.log_request
3028 ( p_entity_code => QP_GLOBALS.G_ENTITY_PRICING_ATTR
3029 , p_entity_id =>p_new_list_line_id
3030 , p_requesting_entity_code => QP_GLOBALS.G_ENTITY_PRICING_ATTR
3031 , p_requesting_entity_id => p_new_list_line_id
3032 , p_request_type => QP_Globals.G_UPGRADE_PRICE_BREAKS
3033 , p_param1 => null
3034 , p_param2 => null
3035 , p_param3 => null
3036 , x_return_status => l_return_status);
3037
3038
3039 QP_DELAYED_REQUESTS_PVT.Process_Request_for_Entity
3040 ( p_entity_code => QP_GLOBALS.G_ENTITY_PRICING_ATTR
3041 , x_return_status => l_return_status);
3042
3043 fnd_message.set_name('QP','QP_CONT_DUPLICATE_LINE');
3044 OE_MSG_PUB.Add;
3045
3046 oe_msg_pub.Count_And_Get
3047 ( p_count => x_msg_count
3048 , p_data => x_msg_data
3049 );
3050
3051 END IF;
3052
3053 oe_debug_pub.add('After calling Process Modifier');
3054 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3055 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3056 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3057 RAISE FND_API.G_EXC_ERROR;
3058 END IF;
3059 oe_debug_pub.add('Outside Duplicate Record');
3060 END IF;
3061 EXCEPTION
3062
3063 WHEN FND_API.G_EXC_ERROR THEN
3064
3065 x_return_status := FND_API.G_RET_STS_ERROR;
3066
3067 -- Get message count and data
3068
3069 oe_msg_pub.Count_And_Get
3070 ( p_count => x_msg_count
3071 , p_data => x_msg_data
3072 );
3073
3074 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3075
3076 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3077
3078 -- Get message count and data
3079
3080 oe_msg_pub.Count_And_Get
3081 ( p_count => x_msg_count
3082 , p_data => x_msg_data
3083 );
3084
3085 WHEN OTHERS THEN
3086
3087 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3088
3089 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
3090 THEN
3091 oe_msg_pub.Add_Exc_Msg
3092 ( G_PKG_NAME
3093 , 'Write to DB'
3094 );
3095 END IF;
3096
3097 -- Get message count and data
3098
3099 oe_msg_pub.Count_And_Get
3100 ( p_count => x_msg_count
3101 , p_data => x_msg_data
3102 );
3103
3104 END Dup_record;
3105
3106
3107
3108
3109
3110 END QP_QP_Form_Modifiers;