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