[Home] [Help]
PACKAGE BODY: APPS.QP_QP_FORM_PRICE_LIST_LINE
Source
1 PACKAGE BODY QP_QP_Form_Price_List_Line AS
2 /* $Header: QPXFPLLB.pls 120.2 2006/02/22 06:27:33 prarasto noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_QP_Form_Price_List_Line';
7
8 -- Global variables holding cached record.
9
10 g_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
11 g_db_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
12
13 -- Forward declaration of procedures maintaining entity record cache.
14
15 PROCEDURE Write_PRICE_LIST_LINE
16 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
17 , p_db_record IN BOOLEAN := FALSE
18 );
19
20 FUNCTION Get_PRICE_LIST_LINE
21 ( p_db_record IN BOOLEAN := FALSE
22 , p_list_line_id IN NUMBER
23 )
24 RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type;
25
26 PROCEDURE Clear_PRICE_LIST_LINE;
27
28 -- Global variable holding performed operations.
29
30 g_opr__tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
31
32 -- Procedure : Default_Attributes
33 --
34
35 PROCEDURE Default_Attributes
36 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
37 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
38 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 , p_list_header_id IN NUMBER
40 , x_accrual_qty OUT NOCOPY /* file.sql.39 change */ NUMBER
41 , x_accrual_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 , x_arithmetic_operator OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
58 , x_automatic_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
59 , x_base_qty OUT NOCOPY /* file.sql.39 change */ NUMBER
60 , x_base_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
61 , x_comments OUT NOCOPY /* file.sql.39 change */ VARCHAR2
62 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
63 , x_effective_period_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
64 , x_end_date_active OUT NOCOPY /* file.sql.39 change */ DATE
65 , x_estim_accrual_rate OUT NOCOPY /* file.sql.39 change */ NUMBER
66 , x_generate_using_formula_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_from_rltd_modifier_id OUT NOCOPY /* file.sql.39 change */ NUMBER
73 , x_rltd_modifier_group_no OUT NOCOPY /* file.sql.39 change */ NUMBER
74 , x_product_precedence OUT NOCOPY /* file.sql.39 change */ NUMBER
75 , x_modifier_level_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 , x_number_effective_periods OUT NOCOPY /* file.sql.39 change */ NUMBER
77 , x_operand OUT NOCOPY /* file.sql.39 change */ NUMBER
78 , x_organization_id OUT NOCOPY /* file.sql.39 change */ NUMBER
79 , x_override_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
80 , x_percent_price OUT NOCOPY /* file.sql.39 change */ NUMBER
81 , x_price_break_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
82 , x_price_by_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
83 , x_primary_uom_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
84 , x_print_on_invoice_flag 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_accrual_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
97 , x_automatic OUT NOCOPY /* file.sql.39 change */ VARCHAR2
98 , x_base_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
99 , x_generate_using_formula 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_modifier_level OUT NOCOPY /* file.sql.39 change */ VARCHAR2
105 , x_organization OUT NOCOPY /* file.sql.39 change */ VARCHAR2
106 , x_override OUT NOCOPY /* file.sql.39 change */ VARCHAR2
107 , x_price_break_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
108 , x_price_by_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
109 , x_primary_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
110 , x_print_on_invoice OUT NOCOPY /* file.sql.39 change */ VARCHAR2
111 , x_rebate_transaction_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
112 , x_related_item OUT NOCOPY /* file.sql.39 change */ VARCHAR2
113 , x_relationship_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
114 , x_reprice OUT NOCOPY /* file.sql.39 change */ VARCHAR2
115 , x_revision_reason OUT NOCOPY /* file.sql.39 change */ VARCHAR2
116 , p_from_rltd_modifier_id IN NUMBER := NULL
117 , x_recurring_value OUT NOCOPY /* file.sql.39 change */ NUMBER -- block pricing
118 , x_customer_item_id OUT NOCOPY /* file.sql.39 change */ NUMBER
119 , x_break_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2 -- OKS proration
120 , x_break_uom_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2 -- OKS proration
121 , x_break_uom_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2 -- OKS proration
122 , x_continuous_price_break_flag OUT NOCOPY VARCHAR2 --Continuous Price Breaks
123 )
124 IS
125 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
126 l_PRICE_LIST_LINE_val_rec QP_Price_List_PUB.Price_List_Line_Val_Rec_Type;
127 l_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
128 l_control_rec QP_GLOBALS.Control_Rec_Type;
129 l_return_status VARCHAR2(1);
130 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
131 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
132 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
133 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
134 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
135 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
136 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
137 BEGIN
138
139 -- Set control flags.
140
141 l_control_rec.controlled_operation := TRUE;
142 l_control_rec.default_attributes := TRUE;
143
144 l_control_rec.change_attributes := FALSE;
145 l_control_rec.validate_entity := FALSE;
146 l_control_rec.write_to_DB := FALSE;
147 l_control_rec.process := FALSE;
148
149 -- Instruct API to retain its caches
150
151 l_control_rec.clear_api_cache := FALSE;
152 l_control_rec.clear_api_requests := FALSE;
153
154 -- Load IN parameters if any exist
155
156 l_PRICE_LIST_LINE_rec.list_header_id := p_list_header_id;
157 l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := p_from_rltd_modifier_id;
158
159 -- Defaulting of flex values is currently done by the form.
160 -- Set flex attributes to NULL in order to avoid defaulting them.
161
162 l_PRICE_LIST_LINE_rec.attribute1 := NULL;
163 l_PRICE_LIST_LINE_rec.attribute10 := NULL;
164 l_PRICE_LIST_LINE_rec.attribute11 := NULL;
165 l_PRICE_LIST_LINE_rec.attribute12 := NULL;
166 l_PRICE_LIST_LINE_rec.attribute13 := NULL;
167 l_PRICE_LIST_LINE_rec.attribute14 := NULL;
168 l_PRICE_LIST_LINE_rec.attribute15 := NULL;
169 l_PRICE_LIST_LINE_rec.attribute2 := NULL;
170 l_PRICE_LIST_LINE_rec.attribute3 := NULL;
171 l_PRICE_LIST_LINE_rec.attribute4 := NULL;
172 l_PRICE_LIST_LINE_rec.attribute5 := NULL;
173 l_PRICE_LIST_LINE_rec.attribute6 := NULL;
174 l_PRICE_LIST_LINE_rec.attribute7 := NULL;
175 l_PRICE_LIST_LINE_rec.attribute8 := NULL;
176 l_PRICE_LIST_LINE_rec.attribute9 := NULL;
177 l_PRICE_LIST_LINE_rec.context := NULL;
178
179 -- Set Operation to Create
180
181 l_PRICE_LIST_LINE_rec.operation := QP_GLOBALS.G_OPR_CREATE;
182
183 -- Populate PRICE_LIST_LINE table
184
185 l_PRICE_LIST_LINE_tbl(1) := l_PRICE_LIST_LINE_rec;
186
187 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
188
189 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
190 ( p_api_version_number => 1.0
191 , p_init_msg_list => FND_API.G_TRUE
192 , x_return_status => l_return_status
193 , x_msg_count => x_msg_count
194 , x_msg_data => x_msg_data
195 , p_control_rec => l_control_rec
196 , p_PRICE_LIST_LINE_tbl => l_PRICE_LIST_LINE_tbl
197 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
198 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
199 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
200 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
201 );
202
203 oe_debug_pub.add('after process price list 0');
204 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
205 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
206 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
207 RAISE FND_API.G_EXC_ERROR;
208 END IF;
209
210 oe_debug_pub.add('after process price list 1');
211 -- Unload out tbl
212
213 l_x_PRICE_LIST_LINE_rec := l_x_PRICE_LIST_LINE_tbl(1);
214
215 -- Load OUT parameters.
216
217 x_accrual_qty := l_x_PRICE_LIST_LINE_rec.accrual_qty;
218 x_accrual_uom_code := l_x_PRICE_LIST_LINE_rec.accrual_uom_code;
219 x_arithmetic_operator := l_x_PRICE_LIST_LINE_rec.arithmetic_operator;
220 x_attribute1 := l_x_PRICE_LIST_LINE_rec.attribute1;
221 x_attribute10 := l_x_PRICE_LIST_LINE_rec.attribute10;
222 x_attribute11 := l_x_PRICE_LIST_LINE_rec.attribute11;
223 x_attribute12 := l_x_PRICE_LIST_LINE_rec.attribute12;
224 x_attribute13 := l_x_PRICE_LIST_LINE_rec.attribute13;
225 x_attribute14 := l_x_PRICE_LIST_LINE_rec.attribute14;
226 x_attribute15 := l_x_PRICE_LIST_LINE_rec.attribute15;
227 x_attribute2 := l_x_PRICE_LIST_LINE_rec.attribute2;
228 x_attribute3 := l_x_PRICE_LIST_LINE_rec.attribute3;
229 x_attribute4 := l_x_PRICE_LIST_LINE_rec.attribute4;
230 x_attribute5 := l_x_PRICE_LIST_LINE_rec.attribute5;
231 x_attribute6 := l_x_PRICE_LIST_LINE_rec.attribute6;
232 x_attribute7 := l_x_PRICE_LIST_LINE_rec.attribute7;
233 x_attribute8 := l_x_PRICE_LIST_LINE_rec.attribute8;
234 x_attribute9 := l_x_PRICE_LIST_LINE_rec.attribute9;
235 x_automatic_flag := l_x_PRICE_LIST_LINE_rec.automatic_flag;
236 x_base_qty := l_x_PRICE_LIST_LINE_rec.base_qty;
237 x_base_uom_code := l_x_PRICE_LIST_LINE_rec.base_uom_code;
238 x_comments := l_x_PRICE_LIST_LINE_rec.comments;
239 x_context := l_x_PRICE_LIST_LINE_rec.context;
240 x_effective_period_uom := l_x_PRICE_LIST_LINE_rec.effective_period_uom;
241 x_end_date_active := l_x_PRICE_LIST_LINE_rec.end_date_active;
242 x_estim_accrual_rate := l_x_PRICE_LIST_LINE_rec.estim_accrual_rate;
243 x_generate_using_formula_id := l_x_PRICE_LIST_LINE_rec.generate_using_formula_id;
244 x_inventory_item_id := l_x_PRICE_LIST_LINE_rec.inventory_item_id;
245 x_list_header_id := l_x_PRICE_LIST_LINE_rec.list_header_id;
246 x_list_line_id := l_x_PRICE_LIST_LINE_rec.list_line_id;
247 x_list_line_type_code := l_x_PRICE_LIST_LINE_rec.list_line_type_code;
248 x_list_price := l_x_PRICE_LIST_LINE_rec.list_price;
249 x_from_rltd_modifier_id := l_x_PRICE_LIST_LINE_rec.from_rltd_modifier_id;
250 x_rltd_modifier_group_no := l_x_PRICE_LIST_LINE_rec.rltd_modifier_group_no;
251 x_product_precedence := l_x_PRICE_LIST_LINE_rec.product_precedence;
252 x_modifier_level_code := l_x_PRICE_LIST_LINE_rec.modifier_level_code;
253 x_number_effective_periods := l_x_PRICE_LIST_LINE_rec.number_effective_periods;
254 x_operand := l_x_PRICE_LIST_LINE_rec.operand;
255 x_organization_id := l_x_PRICE_LIST_LINE_rec.organization_id;
256 x_override_flag := l_x_PRICE_LIST_LINE_rec.override_flag;
257 x_percent_price := l_x_PRICE_LIST_LINE_rec.percent_price;
258 x_price_break_type_code := l_x_PRICE_LIST_LINE_rec.price_break_type_code;
259 x_price_by_formula_id := l_x_PRICE_LIST_LINE_rec.price_by_formula_id;
260 x_primary_uom_flag := l_x_PRICE_LIST_LINE_rec.primary_uom_flag;
261 x_print_on_invoice_flag := l_x_PRICE_LIST_LINE_rec.print_on_invoice_flag;
262 x_rebate_trxn_type_code := l_x_PRICE_LIST_LINE_rec.rebate_trxn_type_code;
263 x_related_item_id := l_x_PRICE_LIST_LINE_rec.related_item_id;
264 x_relationship_type_id := l_x_PRICE_LIST_LINE_rec.relationship_type_id;
265 x_reprice_flag := l_x_PRICE_LIST_LINE_rec.reprice_flag;
266 x_revision := l_x_PRICE_LIST_LINE_rec.revision;
267 x_revision_date := l_x_PRICE_LIST_LINE_rec.revision_date;
268 x_revision_reason_code := l_x_PRICE_LIST_LINE_rec.revision_reason_code;
269 x_start_date_active := l_x_PRICE_LIST_LINE_rec.start_date_active;
270 x_substitution_attribute := l_x_PRICE_LIST_LINE_rec.substitution_attribute;
271 x_substitution_context := l_x_PRICE_LIST_LINE_rec.substitution_context;
272 x_substitution_value := l_x_PRICE_LIST_LINE_rec.substitution_value;
273 x_recurring_value := l_x_PRICE_LIST_LINE_rec.recurring_value; -- block pricing
274 x_customer_item_id := l_x_PRICE_LIST_LINE_rec.customer_item_id;
275 x_break_uom_code := l_x_PRICE_LIST_LINE_rec.break_uom_code; --OKS proration
276 x_break_uom_context := l_x_PRICE_LIST_LINE_rec.break_uom_code; --OKS proration
277 x_break_uom_attribute := l_x_PRICE_LIST_LINE_rec.break_uom_attribute; --OKS proration
278 x_continuous_price_break_flag := l_x_PRICE_LIST_LINE_rec.continuous_price_break_flag;
279 --Continuous Price Breaks
280
281 -- Load display out parameters if any
282
283 oe_debug_pub.add('before get values');
284
285 l_PRICE_LIST_LINE_val_rec := QP_Price_List_Line_Util.Get_Values
286 ( p_PRICE_LIST_LINE_rec => l_x_PRICE_LIST_LINE_rec
287 );
288 x_accrual_uom := l_PRICE_LIST_LINE_val_rec.accrual_uom;
289 x_automatic := l_PRICE_LIST_LINE_val_rec.automatic;
290 x_base_uom := l_PRICE_LIST_LINE_val_rec.base_uom;
291 x_generate_using_formula := l_PRICE_LIST_LINE_val_rec.generate_using_formula;
292 x_inventory_item := l_PRICE_LIST_LINE_val_rec.inventory_item;
293 x_list_header := l_PRICE_LIST_LINE_val_rec.list_header;
294 x_list_line := l_PRICE_LIST_LINE_val_rec.list_line;
295 x_list_line_type := l_PRICE_LIST_LINE_val_rec.list_line_type;
296 x_modifier_level := l_PRICE_LIST_LINE_val_rec.modifier_level;
297 x_organization := l_PRICE_LIST_LINE_val_rec.organization;
298 x_override := l_PRICE_LIST_LINE_val_rec.override;
299 x_price_break_type := l_PRICE_LIST_LINE_val_rec.price_break_type;
300 x_price_by_formula := l_PRICE_LIST_LINE_val_rec.price_by_formula;
301 x_primary_uom := l_PRICE_LIST_LINE_val_rec.primary_uom;
302 x_print_on_invoice := l_PRICE_LIST_LINE_val_rec.print_on_invoice;
303 x_rebate_transaction_type := l_PRICE_LIST_LINE_val_rec.rebate_transaction_type;
304 x_related_item := l_PRICE_LIST_LINE_val_rec.related_item;
305 x_relationship_type := l_PRICE_LIST_LINE_val_rec.relationship_type;
306 x_reprice := l_PRICE_LIST_LINE_val_rec.reprice;
307 x_revision_reason := l_PRICE_LIST_LINE_val_rec.revision_reason;
308
309 -- Write to cache.
310 -- Set db_flag to False before writing to cache
311
312 oe_debug_pub.add('after get values');
313
314 l_x_PRICE_LIST_LINE_rec.db_flag := FND_API.G_FALSE;
315
316 Write_PRICE_LIST_LINE
317 ( p_PRICE_LIST_LINE_rec => l_x_PRICE_LIST_LINE_rec
318 );
319
320 oe_debug_pub.add('after write price list line');
321
322 -- Set return status.
323
324 x_return_status := FND_API.G_RET_STS_SUCCESS;
325
326 -- Get message count and data
327
328 oe_msg_pub.Count_And_Get
329 ( p_count => x_msg_count
330 , p_data => x_msg_data
331 );
332
333 oe_debug_pub.add('msg data is : ' || x_msg_data);
334
335 EXCEPTION
336
337 WHEN FND_API.G_EXC_ERROR THEN
338
339 x_return_status := FND_API.G_RET_STS_ERROR;
340
341 -- Get message count and data
342
343 oe_msg_pub.Count_And_Get
344 ( p_count => x_msg_count
345 , p_data => x_msg_data
346 );
347
348 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
349
350 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
351
352 -- Get message count and data
353
354 oe_msg_pub.Count_And_Get
355 ( p_count => x_msg_count
356 , p_data => x_msg_data
357 );
358
359 WHEN OTHERS THEN
360
361 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
362
363 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
364 THEN
365 oe_msg_pub.Add_Exc_Msg
366 ( G_PKG_NAME
367 , 'Default_Attributes'
368 );
369 END IF;
370
371 -- Get message count and data
372
373 oe_msg_pub.Count_And_Get
374 ( p_count => x_msg_count
375 , p_data => x_msg_data
376 );
377
378 END Default_Attributes;
379
380 -- Procedure : Change_Attribute
381 --
382
383 PROCEDURE Change_Attribute
384 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
385 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
386 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
387 , p_list_line_id IN NUMBER
388 , p_attr_id IN NUMBER
389 , p_attr_value IN VARCHAR2
390 , p_attribute1 IN VARCHAR2
391 , p_attribute10 IN VARCHAR2
392 , p_attribute11 IN VARCHAR2
393 , p_attribute12 IN VARCHAR2
394 , p_attribute13 IN VARCHAR2
395 , p_attribute14 IN VARCHAR2
396 , p_attribute15 IN VARCHAR2
397 , p_attribute2 IN VARCHAR2
398 , p_attribute3 IN VARCHAR2
399 , p_attribute4 IN VARCHAR2
400 , p_attribute5 IN VARCHAR2
401 , p_attribute6 IN VARCHAR2
402 , p_attribute7 IN VARCHAR2
403 , p_attribute8 IN VARCHAR2
404 , p_attribute9 IN VARCHAR2
405 , p_context IN VARCHAR2
406 , x_accrual_qty OUT NOCOPY /* file.sql.39 change */ NUMBER
407 , x_accrual_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
408 , x_arithmetic_operator OUT NOCOPY /* file.sql.39 change */ VARCHAR2
409 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
410 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
411 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
412 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
413 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
414 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
415 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
416 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
417 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
418 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
419 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
420 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
421 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
422 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
423 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
424 , x_automatic_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
425 , x_base_qty OUT NOCOPY /* file.sql.39 change */ NUMBER
426 , x_base_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
427 , x_comments OUT NOCOPY /* file.sql.39 change */ VARCHAR2
428 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
429 , x_effective_period_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
430 , x_end_date_active OUT NOCOPY /* file.sql.39 change */ DATE
431 , x_estim_accrual_rate OUT NOCOPY /* file.sql.39 change */ NUMBER
432 , x_generate_using_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
433 , x_inventory_item_id OUT NOCOPY /* file.sql.39 change */ NUMBER
434 , x_list_header_id OUT NOCOPY /* file.sql.39 change */ NUMBER
435 , x_list_line_id OUT NOCOPY /* file.sql.39 change */ NUMBER
436 , x_list_line_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
437 , x_list_price OUT NOCOPY /* file.sql.39 change */ NUMBER
438 , x_from_rltd_modifier_id OUT NOCOPY /* file.sql.39 change */ NUMBER
439 , x_rltd_modifier_group_no OUT NOCOPY /* file.sql.39 change */ NUMBER
440 , x_product_precedence OUT NOCOPY /* file.sql.39 change */ NUMBER
441 , x_modifier_level_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
442 , x_number_effective_periods OUT NOCOPY /* file.sql.39 change */ NUMBER
443 , x_operand OUT NOCOPY /* file.sql.39 change */ NUMBER
444 , x_organization_id OUT NOCOPY /* file.sql.39 change */ NUMBER
445 , x_override_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
446 , x_percent_price OUT NOCOPY /* file.sql.39 change */ NUMBER
447 , x_price_break_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
448 , x_price_by_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
449 , x_primary_uom_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
450 , x_print_on_invoice_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
451 , x_rebate_trxn_type_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
452 , x_related_item_id OUT NOCOPY /* file.sql.39 change */ NUMBER
453 , x_relationship_type_id OUT NOCOPY /* file.sql.39 change */ NUMBER
454 , x_reprice_flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2
455 , x_revision OUT NOCOPY /* file.sql.39 change */ VARCHAR2
456 , x_revision_date OUT NOCOPY /* file.sql.39 change */ DATE
457 , x_revision_reason_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
458 , x_start_date_active OUT NOCOPY /* file.sql.39 change */ DATE
459 , x_substitution_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
460 , x_substitution_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
461 , x_substitution_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
462 , x_accrual_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
463 , x_automatic OUT NOCOPY /* file.sql.39 change */ VARCHAR2
464 , x_base_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
465 , x_generate_using_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
466 , x_inventory_item OUT NOCOPY /* file.sql.39 change */ VARCHAR2
467 , x_list_header OUT NOCOPY /* file.sql.39 change */ VARCHAR2
468 , x_list_line OUT NOCOPY /* file.sql.39 change */ VARCHAR2
469 , x_list_line_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
470 , x_modifier_level OUT NOCOPY /* file.sql.39 change */ VARCHAR2
471 , x_organization OUT NOCOPY /* file.sql.39 change */ VARCHAR2
472 , x_override OUT NOCOPY /* file.sql.39 change */ VARCHAR2
473 , x_price_break_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
474 , x_price_by_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
475 , x_primary_uom OUT NOCOPY /* file.sql.39 change */ VARCHAR2
476 , x_print_on_invoice OUT NOCOPY /* file.sql.39 change */ VARCHAR2
477 , x_rebate_transaction_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
478 , x_related_item OUT NOCOPY /* file.sql.39 change */ VARCHAR2
479 , x_relationship_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
480 , x_reprice OUT NOCOPY /* file.sql.39 change */ VARCHAR2
481 , x_revision_reason OUT NOCOPY /* file.sql.39 change */ VARCHAR2
482 , x_recurring_value OUT NOCOPY /* file.sql.39 change */ NUMBER -- block pricing
483 , x_customer_item_id OUT NOCOPY /* file.sql.39 change */ NUMBER
484 , x_break_uom_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2 -- OKS proration
485 , x_break_uom_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2 -- OKS proration
486 , x_break_uom_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2 -- OKS proration
487 , x_continuous_price_break_flag OUT NOCOPY VARCHAR2 --Continuous Price Breaks
488 )
489 IS
490 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
491 l_old_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
492 l_PRICE_LIST_LINE_val_rec QP_Price_List_PUB.Price_List_Line_Val_Rec_Type;
493 l_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
494 l_old_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
495 l_control_rec QP_GLOBALS.Control_Rec_Type;
496 l_return_status VARCHAR2(1);
497 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
498 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
499 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
500 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
501 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
502 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
503 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
504 BEGIN
505
506 -- Set control flags.
507
508 l_control_rec.controlled_operation := TRUE;
509 l_control_rec.change_attributes := TRUE;
510
511 l_control_rec.default_attributes := FALSE;
512 l_control_rec.validate_entity := FALSE;
513 l_control_rec.write_to_DB := FALSE;
514 l_control_rec.process := FALSE;
515
516 -- Instruct API to retain its caches
517
518 l_control_rec.clear_api_cache := FALSE;
519 l_control_rec.clear_api_requests := FALSE;
520
521 -- Read PRICE_LIST_LINE from cache
522
523 oe_debug_pub.add('Ren: before get price list line - ca pll 1');
524
525 l_PRICE_LIST_LINE_rec := Get_PRICE_LIST_LINE
526 ( p_db_record => FALSE
527 , p_list_line_id => p_list_line_id
528 );
529
530 l_old_PRICE_LIST_LINE_rec := l_PRICE_LIST_LINE_rec;
531
532 oe_debug_pub.add('prog app id in ca pll 1 is: ' || l_PRICE_LIST_LINE_rec.program_application_id);
533 oe_debug_pub.add('prog id in ca pll 1 is: ' || l_PRICE_LIST_LINE_rec.program_id);
534
535 IF p_attr_id = QP_Price_List_Line_Util.G_ACCRUAL_QTY THEN
536 l_PRICE_LIST_LINE_rec.accrual_qty := TO_NUMBER(p_attr_value);
537 ELSIF p_attr_id = QP_Price_List_Line_Util.G_ACCRUAL_UOM THEN
538 l_PRICE_LIST_LINE_rec.accrual_uom_code := p_attr_value;
539 ELSIF p_attr_id = QP_Price_List_Line_Util.G_ARITHMETIC_OPERATOR THEN
540 l_PRICE_LIST_LINE_rec.arithmetic_operator := p_attr_value;
541 ELSIF p_attr_id = QP_Price_List_Line_Util.G_AUTOMATIC THEN
542 l_PRICE_LIST_LINE_rec.automatic_flag := p_attr_value;
543 ELSIF p_attr_id = QP_Price_List_Line_Util.G_BASE_QTY THEN
544 l_PRICE_LIST_LINE_rec.base_qty := TO_NUMBER(p_attr_value);
545 ELSIF p_attr_id = QP_Price_List_Line_Util.G_BASE_UOM THEN
546 l_PRICE_LIST_LINE_rec.base_uom_code := p_attr_value;
547 ELSIF p_attr_id = QP_Price_List_Line_Util.G_COMMENTS THEN
548 l_PRICE_LIST_LINE_rec.comments := p_attr_value;
549 ELSIF p_attr_id = QP_Price_List_Line_Util.G_EFFECTIVE_PERIOD_UOM THEN
550 l_PRICE_LIST_LINE_rec.effective_period_uom := p_attr_value;
551 ELSIF p_attr_id = QP_Price_List_Line_Util.G_END_DATE_ACTIVE THEN
552 l_PRICE_LIST_LINE_rec.end_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
553 ELSIF p_attr_id = QP_Price_List_Line_Util.G_ESTIM_ACCRUAL_RATE THEN
554 l_PRICE_LIST_LINE_rec.estim_accrual_rate := TO_NUMBER(p_attr_value);
555 ELSIF p_attr_id = QP_Price_List_Line_Util.G_GENERATE_USING_FORMULA THEN
556 l_PRICE_LIST_LINE_rec.generate_using_formula_id := TO_NUMBER(p_attr_value);
557 ELSIF p_attr_id = QP_Price_List_Line_Util.G_INVENTORY_ITEM THEN
558 l_PRICE_LIST_LINE_rec.inventory_item_id := TO_NUMBER(p_attr_value);
559 ELSIF p_attr_id = QP_Price_List_Line_Util.G_LIST_HEADER THEN
560 l_PRICE_LIST_LINE_rec.list_header_id := TO_NUMBER(p_attr_value);
561 ELSIF p_attr_id = QP_Price_List_Line_Util.G_LIST_LINE THEN
562 l_PRICE_LIST_LINE_rec.list_line_id := TO_NUMBER(p_attr_value);
563 ELSIF p_attr_id = QP_Price_List_Line_Util.G_LIST_LINE_TYPE THEN
564 l_PRICE_LIST_LINE_rec.list_line_type_code := p_attr_value;
565 ELSIF p_attr_id = QP_Price_List_Line_Util.G_LIST_PRICE THEN
566 l_PRICE_LIST_LINE_rec.list_price := TO_NUMBER(p_attr_value);
567 ELSIF p_attr_id = QP_Price_List_Line_Util.G_FROM_RLTD_MODIFIER THEN
568 l_PRICE_LIST_LINE_rec.from_rltd_modifier_id := TO_NUMBER(p_attr_value);
569 ELSIF p_attr_id = QP_Price_List_Line_Util.G_RLTD_MODIFIER_GROUP_NO THEN
570 l_PRICE_LIST_LINE_rec.rltd_modifier_group_no := TO_NUMBER(p_attr_value);
571 ELSIF p_attr_id = QP_Price_List_Line_Util.G_PRODUCT_PRECEDENCE THEN
572 l_PRICE_LIST_LINE_rec.product_precedence := TO_NUMBER(p_attr_value);
573 ELSIF p_attr_id = QP_Price_List_Line_Util.G_MODIFIER_LEVEL THEN
574 l_PRICE_LIST_LINE_rec.modifier_level_code := p_attr_value;
575 ELSIF p_attr_id = QP_Price_List_Line_Util.G_NUMBER_EFFECTIVE_PERIODS THEN
576 l_PRICE_LIST_LINE_rec.number_effective_periods := TO_NUMBER(p_attr_value);
577 ELSIF p_attr_id = QP_Price_List_Line_Util.G_OPERAND THEN
578 l_PRICE_LIST_LINE_rec.operand := TO_NUMBER(p_attr_value);
579 ELSIF p_attr_id = QP_Price_List_Line_Util.G_ORGANIZATION THEN
580 l_PRICE_LIST_LINE_rec.organization_id := TO_NUMBER(p_attr_value);
581 ELSIF p_attr_id = QP_Price_List_Line_Util.G_OVERRIDE THEN
582 l_PRICE_LIST_LINE_rec.override_flag := p_attr_value;
583 ELSIF p_attr_id = QP_Price_List_Line_Util.G_PERCENT_PRICE THEN
584 l_PRICE_LIST_LINE_rec.percent_price := TO_NUMBER(p_attr_value);
585 ELSIF p_attr_id = QP_Price_List_Line_Util.G_PRICE_BREAK_TYPE THEN
586 l_PRICE_LIST_LINE_rec.price_break_type_code := p_attr_value;
587 ELSIF p_attr_id = QP_Price_List_Line_Util.G_PRICE_BY_FORMULA THEN
588 l_PRICE_LIST_LINE_rec.price_by_formula_id := TO_NUMBER(p_attr_value);
589 ELSIF p_attr_id = QP_Price_List_Line_Util.G_PRIMARY_UOM THEN
590 l_PRICE_LIST_LINE_rec.primary_uom_flag := p_attr_value;
591 ELSIF p_attr_id = QP_Price_List_Line_Util.G_PRINT_ON_INVOICE THEN
592 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := p_attr_value;
593 ELSIF p_attr_id = QP_Price_List_Line_Util.G_REBATE_TRANSACTION_TYPE THEN
594 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := p_attr_value;
595 ELSIF p_attr_id = QP_Price_List_Line_Util.G_RECURRING_VALUE THEN
596 l_PRICE_LIST_LINE_rec.recurring_value := TO_NUMBER(p_attr_value); -- block pricing
597 ELSIF p_attr_id = QP_Price_List_Line_Util.G_RELATED_ITEM THEN
598 l_PRICE_LIST_LINE_rec.related_item_id := TO_NUMBER(p_attr_value);
599 ELSIF p_attr_id = QP_Price_List_Line_Util.G_RELATIONSHIP_TYPE THEN
600 l_PRICE_LIST_LINE_rec.relationship_type_id := TO_NUMBER(p_attr_value);
601 ELSIF p_attr_id = QP_Price_List_Line_Util.G_REPRICE THEN
602 l_PRICE_LIST_LINE_rec.reprice_flag := p_attr_value;
603 ELSIF p_attr_id = QP_Price_List_Line_Util.G_REVISION THEN
604 l_PRICE_LIST_LINE_rec.revision := p_attr_value;
605 ELSIF p_attr_id = QP_Price_List_Line_Util.G_REVISION_DATE THEN
606 l_PRICE_LIST_LINE_rec.revision_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
607 ELSIF p_attr_id = QP_Price_List_Line_Util.G_REVISION_REASON THEN
608 l_PRICE_LIST_LINE_rec.revision_reason_code := p_attr_value;
609 ELSIF p_attr_id = QP_Price_List_Line_Util.G_START_DATE_ACTIVE THEN
610 l_PRICE_LIST_LINE_rec.start_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
611 ELSIF p_attr_id = QP_Price_List_Line_Util.G_SUBSTITUTION_ATTRIBUTE THEN
612 l_PRICE_LIST_LINE_rec.substitution_attribute := p_attr_value;
613 ELSIF p_attr_id = QP_Price_List_Line_Util.G_SUBSTITUTION_CONTEXT THEN
614 l_PRICE_LIST_LINE_rec.substitution_context := p_attr_value;
615 ELSIF p_attr_id = QP_Price_List_Line_Util.G_SUBSTITUTION_VALUE THEN
616 l_PRICE_LIST_LINE_rec.substitution_value := p_attr_value;
617 ELSIF p_attr_id = QP_Price_List_Line_Util.G_CUSTOMER_ITEM_ID THEN
618 l_PRICE_LIST_LINE_rec.customer_item_id := p_attr_value;
619 ELSIF p_attr_id = QP_Price_List_line_Util.G_BREAK_UOM_CODE THEN
620 l_PRICE_LIST_LINE_rec.break_uom_code := p_attr_value;
621 ELSIF p_attr_id = QP_Price_List_line_Util.G_BREAK_UOM_CONTEXT THEN
622 l_PRICE_LIST_LINE_rec.break_uom_context := p_attr_value;
623 ELSIF p_attr_id = QP_Price_List_Line_Util.G_BREAK_UOM_ATTRIBUTE THEN
624 l_PRICE_LIST_LINE_rec.break_uom_attribute := p_attr_value;
625 ELSIF p_attr_id = QP_Price_List_Line_Util.G_continuous_price_break_flag THEN
626 l_PRICE_LIST_LINE_rec.continuous_price_break_flag := p_attr_value; --Continuous Price Breaks
627 ELSIF p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE1
628 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE10
629 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE11
630 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE12
631 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE13
632 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE14
633 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE15
634 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE2
635 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE3
636 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE4
637 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE5
638 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE6
639 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE7
640 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE8
641 OR p_attr_id = QP_Price_List_Line_Util.G_ATTRIBUTE9
642 OR p_attr_id = QP_Price_List_Line_Util.G_CONTEXT
643 THEN
644
645 l_PRICE_LIST_LINE_rec.attribute1 := p_attribute1;
646 l_PRICE_LIST_LINE_rec.attribute10 := p_attribute10;
647 l_PRICE_LIST_LINE_rec.attribute11 := p_attribute11;
648 l_PRICE_LIST_LINE_rec.attribute12 := p_attribute12;
649 l_PRICE_LIST_LINE_rec.attribute13 := p_attribute13;
650 l_PRICE_LIST_LINE_rec.attribute14 := p_attribute14;
651 l_PRICE_LIST_LINE_rec.attribute15 := p_attribute15;
652 l_PRICE_LIST_LINE_rec.attribute2 := p_attribute2;
653 l_PRICE_LIST_LINE_rec.attribute3 := p_attribute3;
654 l_PRICE_LIST_LINE_rec.attribute4 := p_attribute4;
655 l_PRICE_LIST_LINE_rec.attribute5 := p_attribute5;
656 l_PRICE_LIST_LINE_rec.attribute6 := p_attribute6;
657 l_PRICE_LIST_LINE_rec.attribute7 := p_attribute7;
658 l_PRICE_LIST_LINE_rec.attribute8 := p_attribute8;
659 l_PRICE_LIST_LINE_rec.attribute9 := p_attribute9;
660 l_PRICE_LIST_LINE_rec.context := p_context;
661
662 ELSE
663
664 -- Unexpected error, unrecognized attribute
665
666 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
667 THEN
668 oe_msg_pub.Add_Exc_Msg
669 ( G_PKG_NAME
670 , 'Change_Attribute'
671 , 'Unrecognized attribute'
672 );
673 END IF;
674
675 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
676
677 END IF;
678
679 -- Set Operation.
680
681 IF FND_API.To_Boolean(l_PRICE_LIST_LINE_rec.db_flag) THEN
682 l_PRICE_LIST_LINE_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
683 ELSE
684 l_PRICE_LIST_LINE_rec.operation := QP_GLOBALS.G_OPR_CREATE;
685 END IF;
686
687 -- Populate PRICE_LIST_LINE table
688
689 l_PRICE_LIST_LINE_tbl(1) := l_PRICE_LIST_LINE_rec;
690 l_old_PRICE_LIST_LINE_tbl(1) := l_old_PRICE_LIST_LINE_rec;
691
692 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
693
694 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
695 ( p_api_version_number => 1.0
696 , p_init_msg_list => FND_API.G_TRUE
697 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
698 , x_return_status => l_return_status
699 , x_msg_count => x_msg_count
700 , x_msg_data => x_msg_data
701 , p_control_rec => l_control_rec
702 , p_PRICE_LIST_LINE_tbl => l_PRICE_LIST_LINE_tbl
703 , p_old_PRICE_LIST_LINE_tbl => l_old_PRICE_LIST_LINE_tbl
704 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
705 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
706 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
707 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
708 );
709
710 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
711 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
712 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
713 RAISE FND_API.G_EXC_ERROR;
714 END IF;
715
716
717 -- Unload out tbl
718
719 l_x_PRICE_LIST_LINE_rec := l_x_PRICE_LIST_LINE_tbl(1);
720
721 -- Init OUT parameters to missing.
722
723 x_accrual_qty := FND_API.G_MISS_NUM;
724 x_accrual_uom_code := FND_API.G_MISS_CHAR;
725 x_arithmetic_operator := FND_API.G_MISS_CHAR;
726 x_attribute1 := FND_API.G_MISS_CHAR;
727 x_attribute10 := FND_API.G_MISS_CHAR;
728 x_attribute11 := FND_API.G_MISS_CHAR;
729 x_attribute12 := FND_API.G_MISS_CHAR;
730 x_attribute13 := FND_API.G_MISS_CHAR;
731 x_attribute14 := FND_API.G_MISS_CHAR;
732 x_attribute15 := FND_API.G_MISS_CHAR;
733 x_attribute2 := FND_API.G_MISS_CHAR;
734 x_attribute3 := FND_API.G_MISS_CHAR;
735 x_attribute4 := FND_API.G_MISS_CHAR;
736 x_attribute5 := FND_API.G_MISS_CHAR;
737 x_attribute6 := FND_API.G_MISS_CHAR;
738 x_attribute7 := FND_API.G_MISS_CHAR;
739 x_attribute8 := FND_API.G_MISS_CHAR;
740 x_attribute9 := FND_API.G_MISS_CHAR;
741 x_automatic_flag := FND_API.G_MISS_CHAR;
742 x_base_qty := FND_API.G_MISS_NUM;
743 x_base_uom_code := FND_API.G_MISS_CHAR;
744 x_comments := FND_API.G_MISS_CHAR;
745 x_context := FND_API.G_MISS_CHAR;
746 x_effective_period_uom := FND_API.G_MISS_CHAR;
747 x_end_date_active := FND_API.G_MISS_DATE;
748 x_estim_accrual_rate := FND_API.G_MISS_NUM;
749 x_generate_using_formula_id := FND_API.G_MISS_NUM;
750 x_inventory_item_id := FND_API.G_MISS_NUM;
751 x_list_header_id := FND_API.G_MISS_NUM;
752 x_list_line_id := FND_API.G_MISS_NUM;
753 x_list_line_type_code := FND_API.G_MISS_CHAR;
754 x_list_price := FND_API.G_MISS_NUM;
755 x_from_rltd_modifier_id := FND_API.G_MISS_NUM;
756 x_rltd_modifier_group_no := FND_API.G_MISS_NUM;
757 x_product_precedence := FND_API.G_MISS_NUM;
758 x_modifier_level_code := FND_API.G_MISS_CHAR;
759 x_number_effective_periods := FND_API.G_MISS_NUM;
760 x_operand := FND_API.G_MISS_NUM;
761 x_organization_id := FND_API.G_MISS_NUM;
762 x_override_flag := FND_API.G_MISS_CHAR;
763 x_percent_price := FND_API.G_MISS_NUM;
764 x_price_break_type_code := FND_API.G_MISS_CHAR;
765 x_price_by_formula_id := FND_API.G_MISS_NUM;
766 x_primary_uom_flag := FND_API.G_MISS_CHAR;
767 x_print_on_invoice_flag := FND_API.G_MISS_CHAR;
768 x_rebate_trxn_type_code := FND_API.G_MISS_CHAR;
769 x_related_item_id := FND_API.G_MISS_NUM;
770 x_relationship_type_id := FND_API.G_MISS_NUM;
771 x_reprice_flag := FND_API.G_MISS_CHAR;
772 x_revision := FND_API.G_MISS_CHAR;
773 x_revision_date := FND_API.G_MISS_DATE;
774 x_revision_reason_code := FND_API.G_MISS_CHAR;
775 x_start_date_active := FND_API.G_MISS_DATE;
776 x_substitution_attribute := FND_API.G_MISS_CHAR;
777 x_substitution_context := FND_API.G_MISS_CHAR;
778 x_substitution_value := FND_API.G_MISS_CHAR;
779 x_accrual_uom := FND_API.G_MISS_CHAR;
780 x_automatic := FND_API.G_MISS_CHAR;
781 x_base_uom := FND_API.G_MISS_CHAR;
782 x_generate_using_formula := FND_API.G_MISS_CHAR;
783 x_inventory_item := FND_API.G_MISS_CHAR;
784 x_list_header := FND_API.G_MISS_CHAR;
785 x_list_line := FND_API.G_MISS_CHAR;
786 x_list_line_type := FND_API.G_MISS_CHAR;
787 x_modifier_level := FND_API.G_MISS_CHAR;
788 x_organization := FND_API.G_MISS_CHAR;
789 x_override := FND_API.G_MISS_CHAR;
790 x_price_break_type := FND_API.G_MISS_CHAR;
791 x_price_by_formula := FND_API.G_MISS_CHAR;
792 x_primary_uom := FND_API.G_MISS_CHAR;
793 x_print_on_invoice := FND_API.G_MISS_CHAR;
794 x_rebate_transaction_type := FND_API.G_MISS_CHAR;
795 x_related_item := FND_API.G_MISS_CHAR;
796 x_relationship_type := FND_API.G_MISS_CHAR;
797 x_reprice := FND_API.G_MISS_CHAR;
798 x_revision_reason := FND_API.G_MISS_CHAR;
799 x_recurring_value := FND_API.G_MISS_NUM; -- block pricing
800 x_customer_item_id := FND_API.G_MISS_NUM;
801 x_break_uom_code := FND_API.G_MISS_CHAR; -- OKS proration
802 x_break_uom_context := FND_API.G_MISS_CHAR; -- OKS proration
803 x_break_uom_attribute := FND_API.G_MISS_CHAR; -- OKS proration
804 x_continuous_price_break_flag := FND_API.G_MISS_CHAR; --Continuous Price Breaks
805
806 -- Load display out parameters if any
807
808 l_PRICE_LIST_LINE_val_rec := QP_Price_List_Line_Util.Get_Values
809 ( p_PRICE_LIST_LINE_rec => l_x_PRICE_LIST_LINE_rec
810 , p_old_PRICE_LIST_LINE_rec => l_PRICE_LIST_LINE_rec
811 );
812
813 -- Return changed attributes.
814
815 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.accrual_qty,
816 l_PRICE_LIST_LINE_rec.accrual_qty)
817 THEN
818 x_accrual_qty := l_x_PRICE_LIST_LINE_rec.accrual_qty;
819 END IF;
820
821 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.accrual_uom_code,
822 l_PRICE_LIST_LINE_rec.accrual_uom_code)
823 THEN
824 x_accrual_uom_code := l_x_PRICE_LIST_LINE_rec.accrual_uom_code;
825 x_accrual_uom := l_PRICE_LIST_LINE_val_rec.accrual_uom;
826 END IF;
827
828 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.arithmetic_operator,
829 l_PRICE_LIST_LINE_rec.arithmetic_operator)
830 THEN
831 x_arithmetic_operator := l_x_PRICE_LIST_LINE_rec.arithmetic_operator;
832 END IF;
833
834 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute1,
835 l_PRICE_LIST_LINE_rec.attribute1)
836 THEN
837 x_attribute1 := l_x_PRICE_LIST_LINE_rec.attribute1;
838 END IF;
839
840 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute10,
841 l_PRICE_LIST_LINE_rec.attribute10)
842 THEN
843 x_attribute10 := l_x_PRICE_LIST_LINE_rec.attribute10;
844 END IF;
845
846 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute11,
847 l_PRICE_LIST_LINE_rec.attribute11)
848 THEN
849 x_attribute11 := l_x_PRICE_LIST_LINE_rec.attribute11;
850 END IF;
851
852 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute12,
853 l_PRICE_LIST_LINE_rec.attribute12)
854 THEN
855 x_attribute12 := l_x_PRICE_LIST_LINE_rec.attribute12;
856 END IF;
857
858 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute13,
859 l_PRICE_LIST_LINE_rec.attribute13)
860 THEN
861 x_attribute13 := l_x_PRICE_LIST_LINE_rec.attribute13;
862 END IF;
863
864 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute14,
865 l_PRICE_LIST_LINE_rec.attribute14)
866 THEN
867 x_attribute14 := l_x_PRICE_LIST_LINE_rec.attribute14;
868 END IF;
869
870 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute15,
871 l_PRICE_LIST_LINE_rec.attribute15)
872 THEN
873 x_attribute15 := l_x_PRICE_LIST_LINE_rec.attribute15;
874 END IF;
875
876 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute2,
877 l_PRICE_LIST_LINE_rec.attribute2)
878 THEN
879 x_attribute2 := l_x_PRICE_LIST_LINE_rec.attribute2;
880 END IF;
881
882 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute3,
883 l_PRICE_LIST_LINE_rec.attribute3)
884 THEN
885 x_attribute3 := l_x_PRICE_LIST_LINE_rec.attribute3;
886 END IF;
887
888 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute4,
889 l_PRICE_LIST_LINE_rec.attribute4)
890 THEN
891 x_attribute4 := l_x_PRICE_LIST_LINE_rec.attribute4;
892 END IF;
893
894 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute5,
895 l_PRICE_LIST_LINE_rec.attribute5)
896 THEN
897 x_attribute5 := l_x_PRICE_LIST_LINE_rec.attribute5;
898 END IF;
899
900 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute6,
901 l_PRICE_LIST_LINE_rec.attribute6)
902 THEN
903 x_attribute6 := l_x_PRICE_LIST_LINE_rec.attribute6;
904 END IF;
905
906 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute7,
907 l_PRICE_LIST_LINE_rec.attribute7)
908 THEN
909 x_attribute7 := l_x_PRICE_LIST_LINE_rec.attribute7;
910 END IF;
911
912 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute8,
913 l_PRICE_LIST_LINE_rec.attribute8)
914 THEN
915 x_attribute8 := l_x_PRICE_LIST_LINE_rec.attribute8;
916 END IF;
917
918 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.attribute9,
919 l_PRICE_LIST_LINE_rec.attribute9)
920 THEN
921 x_attribute9 := l_x_PRICE_LIST_LINE_rec.attribute9;
922 END IF;
923
924 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.automatic_flag,
925 l_PRICE_LIST_LINE_rec.automatic_flag)
926 THEN
927 x_automatic_flag := l_x_PRICE_LIST_LINE_rec.automatic_flag;
928 x_automatic := l_PRICE_LIST_LINE_val_rec.automatic;
929 END IF;
930
931 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.base_qty,
932 l_PRICE_LIST_LINE_rec.base_qty)
933 THEN
934 x_base_qty := l_x_PRICE_LIST_LINE_rec.base_qty;
935 END IF;
936
937 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.base_uom_code,
938 l_PRICE_LIST_LINE_rec.base_uom_code)
939 THEN
940 x_base_uom_code := l_x_PRICE_LIST_LINE_rec.base_uom_code;
941 x_base_uom := l_PRICE_LIST_LINE_val_rec.base_uom;
942 END IF;
943
944 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.comments,
945 l_PRICE_LIST_LINE_rec.comments)
946 THEN
947 x_comments := l_x_PRICE_LIST_LINE_rec.comments;
948 END IF;
949
950 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.context,
951 l_PRICE_LIST_LINE_rec.context)
952 THEN
953 x_context := l_x_PRICE_LIST_LINE_rec.context;
954 END IF;
955
956 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.effective_period_uom,
957 l_PRICE_LIST_LINE_rec.effective_period_uom)
958 THEN
959 x_effective_period_uom := l_x_PRICE_LIST_LINE_rec.effective_period_uom;
960 END IF;
961
962 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.end_date_active,
963 l_PRICE_LIST_LINE_rec.end_date_active)
964 THEN
965 x_end_date_active := l_x_PRICE_LIST_LINE_rec.end_date_active;
966 END IF;
967
968 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.estim_accrual_rate,
969 l_PRICE_LIST_LINE_rec.estim_accrual_rate)
970 THEN
971 x_estim_accrual_rate := l_x_PRICE_LIST_LINE_rec.estim_accrual_rate;
972 END IF;
973
974 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.generate_using_formula_id,
975 l_PRICE_LIST_LINE_rec.generate_using_formula_id)
976 THEN
977 x_generate_using_formula_id := l_x_PRICE_LIST_LINE_rec.generate_using_formula_id;
978 x_generate_using_formula := l_PRICE_LIST_LINE_val_rec.generate_using_formula;
979 END IF;
980
981 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.inventory_item_id,
982 l_PRICE_LIST_LINE_rec.inventory_item_id)
983 THEN
984 x_inventory_item_id := l_x_PRICE_LIST_LINE_rec.inventory_item_id;
985 x_inventory_item := l_PRICE_LIST_LINE_val_rec.inventory_item;
986 END IF;
987
988 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.list_header_id,
989 l_PRICE_LIST_LINE_rec.list_header_id)
990 THEN
991 x_list_header_id := l_x_PRICE_LIST_LINE_rec.list_header_id;
992 x_list_header := l_PRICE_LIST_LINE_val_rec.list_header;
993 END IF;
994
995 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.list_line_id,
996 l_PRICE_LIST_LINE_rec.list_line_id)
997 THEN
998 x_list_line_id := l_x_PRICE_LIST_LINE_rec.list_line_id;
999 x_list_line := l_PRICE_LIST_LINE_val_rec.list_line;
1000 END IF;
1001
1002 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.list_line_type_code,
1003 l_PRICE_LIST_LINE_rec.list_line_type_code)
1004 THEN
1005 x_list_line_type_code := l_x_PRICE_LIST_LINE_rec.list_line_type_code;
1006 x_list_line_type := l_PRICE_LIST_LINE_val_rec.list_line_type;
1007 END IF;
1008
1009 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.list_price,
1010 l_PRICE_LIST_LINE_rec.list_price)
1011 THEN
1012 x_list_price := l_x_PRICE_LIST_LINE_rec.list_price;
1013 END IF;
1014
1015 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.from_rltd_modifier_id,
1016 l_PRICE_LIST_LINE_rec.from_rltd_modifier_id)
1017 THEN
1018 x_from_rltd_modifier_id := l_x_PRICE_LIST_LINE_rec.from_rltd_modifier_id;
1019 END IF;
1020
1021 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.rltd_modifier_group_no,
1022 l_PRICE_LIST_LINE_rec.rltd_modifier_group_no)
1023 THEN
1024 x_rltd_modifier_group_no := l_x_PRICE_LIST_LINE_rec.rltd_modifier_group_no;
1025 END IF;
1026
1027 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.product_precedence,
1028 l_PRICE_LIST_LINE_rec.product_precedence)
1029 THEN
1030 x_product_precedence := l_x_PRICE_LIST_LINE_rec.product_precedence;
1031 END IF;
1032
1033 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.modifier_level_code,
1034 l_PRICE_LIST_LINE_rec.modifier_level_code)
1035 THEN
1036 x_modifier_level_code := l_x_PRICE_LIST_LINE_rec.modifier_level_code;
1037 x_modifier_level := l_PRICE_LIST_LINE_val_rec.modifier_level;
1038 END IF;
1039
1040 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.number_effective_periods,
1041 l_PRICE_LIST_LINE_rec.number_effective_periods)
1042 THEN
1043 x_number_effective_periods := l_x_PRICE_LIST_LINE_rec.number_effective_periods;
1044 END IF;
1045
1046 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.operand,
1047 l_PRICE_LIST_LINE_rec.operand)
1048 THEN
1049 x_operand := l_x_PRICE_LIST_LINE_rec.operand;
1050 END IF;
1051
1052 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.organization_id,
1053 l_PRICE_LIST_LINE_rec.organization_id)
1054 THEN
1055 x_organization_id := l_x_PRICE_LIST_LINE_rec.organization_id;
1056 x_organization := l_PRICE_LIST_LINE_val_rec.organization;
1057 END IF;
1058
1059 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.override_flag,
1060 l_PRICE_LIST_LINE_rec.override_flag)
1061 THEN
1062 x_override_flag := l_x_PRICE_LIST_LINE_rec.override_flag;
1063 x_override := l_PRICE_LIST_LINE_val_rec.override;
1064 END IF;
1065
1066 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.percent_price,
1067 l_PRICE_LIST_LINE_rec.percent_price)
1068 THEN
1069 x_percent_price := l_x_PRICE_LIST_LINE_rec.percent_price;
1070 END IF;
1071
1072 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.price_break_type_code,
1073 l_PRICE_LIST_LINE_rec.price_break_type_code)
1074 THEN
1075 x_price_break_type_code := l_x_PRICE_LIST_LINE_rec.price_break_type_code;
1076 x_price_break_type := l_PRICE_LIST_LINE_val_rec.price_break_type;
1077 END IF;
1078
1079 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.price_by_formula_id,
1080 l_PRICE_LIST_LINE_rec.price_by_formula_id)
1081 THEN
1082 x_price_by_formula_id := l_x_PRICE_LIST_LINE_rec.price_by_formula_id;
1083 x_price_by_formula := l_PRICE_LIST_LINE_val_rec.price_by_formula;
1084 END IF;
1085
1086 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.primary_uom_flag,
1087 l_PRICE_LIST_LINE_rec.primary_uom_flag)
1088 THEN
1089 x_primary_uom_flag := l_x_PRICE_LIST_LINE_rec.primary_uom_flag;
1090 x_primary_uom := l_PRICE_LIST_LINE_val_rec.primary_uom;
1091 END IF;
1092
1093 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.print_on_invoice_flag,
1094 l_PRICE_LIST_LINE_rec.print_on_invoice_flag)
1095 THEN
1096 x_print_on_invoice_flag := l_x_PRICE_LIST_LINE_rec.print_on_invoice_flag;
1097 x_print_on_invoice := l_PRICE_LIST_LINE_val_rec.print_on_invoice;
1098 END IF;
1099
1100 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.rebate_trxn_type_code,
1101 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code)
1102 THEN
1103 x_rebate_trxn_type_code := l_x_PRICE_LIST_LINE_rec.rebate_trxn_type_code;
1104 x_rebate_transaction_type := l_PRICE_LIST_LINE_val_rec.rebate_transaction_type;
1105 END IF;
1106
1107
1108 -- block pricing
1109 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.recurring_value,
1110 l_PRICE_LIST_LINE_rec.recurring_value)
1111 THEN
1112 x_recurring_value := l_x_PRICE_LIST_LINE_rec.recurring_value;
1113 END IF;
1114
1115
1116 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.related_item_id,
1117 l_PRICE_LIST_LINE_rec.related_item_id)
1118 THEN
1119 x_related_item_id := l_x_PRICE_LIST_LINE_rec.related_item_id;
1120 x_related_item := l_PRICE_LIST_LINE_val_rec.related_item;
1121 END IF;
1122
1123 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.relationship_type_id,
1124 l_PRICE_LIST_LINE_rec.relationship_type_id)
1125 THEN
1126 x_relationship_type_id := l_x_PRICE_LIST_LINE_rec.relationship_type_id;
1127 x_relationship_type := l_PRICE_LIST_LINE_val_rec.relationship_type;
1128 END IF;
1129
1130 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.reprice_flag,
1131 l_PRICE_LIST_LINE_rec.reprice_flag)
1132 THEN
1133 x_reprice_flag := l_x_PRICE_LIST_LINE_rec.reprice_flag;
1134 x_reprice := l_PRICE_LIST_LINE_val_rec.reprice;
1135 END IF;
1136
1137 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.revision,
1138 l_PRICE_LIST_LINE_rec.revision)
1139 THEN
1140 x_revision := l_x_PRICE_LIST_LINE_rec.revision;
1141 END IF;
1142
1143 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.revision_date,
1144 l_PRICE_LIST_LINE_rec.revision_date)
1145 THEN
1146 x_revision_date := l_x_PRICE_LIST_LINE_rec.revision_date;
1147 END IF;
1148
1149 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.revision_reason_code,
1150 l_PRICE_LIST_LINE_rec.revision_reason_code)
1151 THEN
1152 x_revision_reason_code := l_x_PRICE_LIST_LINE_rec.revision_reason_code;
1153 x_revision_reason := l_PRICE_LIST_LINE_val_rec.revision_reason;
1154 END IF;
1155
1156 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.start_date_active,
1157 l_PRICE_LIST_LINE_rec.start_date_active)
1158 THEN
1159 x_start_date_active := l_x_PRICE_LIST_LINE_rec.start_date_active;
1160 END IF;
1161
1162 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.substitution_attribute,
1163 l_PRICE_LIST_LINE_rec.substitution_attribute)
1164 THEN
1165 x_substitution_attribute := l_x_PRICE_LIST_LINE_rec.substitution_attribute;
1166 END IF;
1167
1168 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.substitution_context,
1169 l_PRICE_LIST_LINE_rec.substitution_context)
1170 THEN
1171 x_substitution_context := l_x_PRICE_LIST_LINE_rec.substitution_context;
1172 END IF;
1173
1174 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.substitution_value,
1175 l_PRICE_LIST_LINE_rec.substitution_value)
1176 THEN
1177 x_substitution_value := l_x_PRICE_LIST_LINE_rec.substitution_value;
1178 END IF;
1179
1180 IF NOT QP_GLOBALS.Equal (l_x_PRICE_LIST_LINE_rec.customer_item_id,
1181 l_PRICE_LIST_LINE_rec.customer_item_id)
1182 THEN
1183 x_customer_item_id := l_x_PRICE_LIST_LINE_rec.customer_item_id;
1184 END IF;
1185
1186 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.break_uom_code,
1187 l_PRICE_LIST_LINE_rec.break_uom_code)
1188 THEN
1189 x_break_uom_code := l_x_PRICE_LIST_LINE_rec.break_uom_code;
1190 END IF;
1191
1192 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.break_uom_context,
1193 l_PRICE_LIST_LINE_rec.break_uom_context)
1194 THEN
1195 x_break_uom_context := l_x_PRICE_LIST_LINE_rec.break_uom_context;
1196 END IF;
1197
1198 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.break_uom_attribute,
1199 l_PRICE_LIST_LINE_rec.break_uom_attribute)
1200 THEN
1201 x_break_uom_attribute := l_x_PRICE_LIST_LINE_rec.break_uom_attribute;
1202 END IF;
1203
1204 IF NOT QP_GLOBALS.Equal(l_x_PRICE_LIST_LINE_rec.continuous_price_break_flag,
1205 l_PRICE_LIST_LINE_rec.continuous_price_break_flag)
1206 THEN
1207 x_continuous_price_break_flag := l_x_PRICE_LIST_LINE_rec.continuous_price_break_flag;
1208 END IF;
1209
1210 -- Write to cache.
1211
1212 Write_PRICE_LIST_LINE
1213 ( p_PRICE_LIST_LINE_rec => l_x_PRICE_LIST_LINE_rec
1214 );
1215
1216 oe_debug_pub.add('prog app id in ca pll 2 is: ' || l_x_PRICE_LIST_LINE_rec.program_application_id);
1217 oe_debug_pub.add('prog id in ca pll 2 is: ' || l_x_PRICE_LIST_LINE_rec.program_id);
1218 -- Set return status.
1219
1220 x_return_status := FND_API.G_RET_STS_SUCCESS;
1221
1222 -- Get message count and data
1223
1224 oe_msg_pub.Count_And_Get
1225 ( p_count => x_msg_count
1226 , p_data => x_msg_data
1227 );
1228
1229
1230 EXCEPTION
1231
1232 WHEN FND_API.G_EXC_ERROR THEN
1233
1234 x_return_status := FND_API.G_RET_STS_ERROR;
1235
1236 -- Get message count and data
1237
1238 oe_msg_pub.Count_And_Get
1239 ( p_count => x_msg_count
1240 , p_data => x_msg_data
1241 );
1242
1243 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1244
1245 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1246
1247 -- Get message count and data
1248
1249 oe_msg_pub.Count_And_Get
1250 ( p_count => x_msg_count
1251 , p_data => x_msg_data
1252 );
1253
1254 WHEN OTHERS THEN
1255
1256 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1257
1258 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1259 THEN
1260 oe_msg_pub.Add_Exc_Msg
1261 ( G_PKG_NAME
1262 , 'Change_Attribute'
1263 );
1264 END IF;
1265
1266 -- Get message count and data
1267
1268 oe_msg_pub.Count_And_Get
1269 ( p_count => x_msg_count
1270 , p_data => x_msg_data
1271 );
1272
1273 END Change_Attribute;
1274
1275 -- Procedure Validate_And_Write
1276 --
1277
1278 PROCEDURE Validate_And_Write
1279 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1280 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1281 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1282 , p_list_line_id IN NUMBER
1283 , x_creation_date OUT NOCOPY /* file.sql.39 change */ DATE
1284 , x_created_by OUT NOCOPY /* file.sql.39 change */ NUMBER
1285 , x_last_update_date OUT NOCOPY /* file.sql.39 change */ DATE
1286 , x_last_updated_by OUT NOCOPY /* file.sql.39 change */ NUMBER
1287 , x_last_update_login OUT NOCOPY /* file.sql.39 change */ NUMBER
1288 , x_program_application_id OUT NOCOPY /* file.sql.39 change */ NUMBER
1289 , x_program_id OUT NOCOPY /* file.sql.39 change */ NUMBER
1290 , x_program_update_date OUT NOCOPY /* file.sql.39 change */ DATE
1291 , x_request_id OUT NOCOPY /* file.sql.39 change */ NUMBER
1292 )
1293 IS
1294 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1295 l_old_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1296 l_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1297 l_old_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1298 l_control_rec QP_GLOBALS.Control_Rec_Type;
1299 l_return_status VARCHAR2(1);
1300 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1301 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1302 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1303 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
1304 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
1305 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1306 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1307 BEGIN
1308
1309 -- Set control flags.
1310 l_control_rec.controlled_operation := TRUE;
1311 l_control_rec.validate_entity := TRUE;
1312 l_control_rec.write_to_DB := TRUE;
1313
1314 l_control_rec.default_attributes := FALSE;
1315 l_control_rec.change_attributes := FALSE;
1316 l_control_rec.process := FALSE;
1317
1318 -- Instruct API to retain its caches
1319
1320 l_control_rec.clear_api_cache := FALSE;
1321 l_control_rec.clear_api_requests := FALSE;
1322
1323 -- Read PRICE_LIST_LINE from cache
1324
1325 l_old_PRICE_LIST_LINE_rec := Get_PRICE_LIST_LINE
1326 ( p_db_record => TRUE
1327 , p_list_line_id => p_list_line_id
1328 );
1329
1330 l_PRICE_LIST_LINE_rec := Get_PRICE_LIST_LINE
1331 ( p_db_record => FALSE
1332 , p_list_line_id => p_list_line_id
1333 );
1334
1335 -- Set Operation.
1336
1337 IF FND_API.To_Boolean(l_PRICE_LIST_LINE_rec.db_flag) THEN
1338 l_PRICE_LIST_LINE_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
1339 ELSE
1340 l_PRICE_LIST_LINE_rec.operation := QP_GLOBALS.G_OPR_CREATE;
1341 END IF;
1342
1343 -- Populate PRICE_LIST_LINE table
1344
1345 l_PRICE_LIST_LINE_tbl(1) := l_PRICE_LIST_LINE_rec;
1346 l_old_PRICE_LIST_LINE_tbl(1) := l_old_PRICE_LIST_LINE_rec;
1347
1348 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1349
1350 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1351 ( p_api_version_number => 1.0
1352 , p_init_msg_list => FND_API.G_TRUE
1353 , x_return_status => l_return_status
1354 , x_msg_count => x_msg_count
1355 , x_msg_data => x_msg_data
1356 , p_control_rec => l_control_rec
1357 , p_PRICE_LIST_LINE_tbl => l_PRICE_LIST_LINE_tbl
1358 , p_old_PRICE_LIST_LINE_tbl => l_old_PRICE_LIST_LINE_tbl
1359 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
1360 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
1361 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1362 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1363 );
1364
1365 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1366 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1367 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1368 RAISE FND_API.G_EXC_ERROR;
1369 END IF;
1370
1371
1372 -- Load OUT parameters.
1373
1374 l_x_PRICE_LIST_LINE_rec := l_x_PRICE_LIST_LINE_tbl(1);
1375
1376 x_creation_date := l_x_PRICE_LIST_LINE_rec.creation_date;
1377 x_created_by := l_x_PRICE_LIST_LINE_rec.created_by;
1378 x_last_update_date := l_x_PRICE_LIST_LINE_rec.last_update_date;
1379 x_last_updated_by := l_x_PRICE_LIST_LINE_rec.last_updated_by;
1380 x_last_update_login := l_x_PRICE_LIST_LINE_rec.last_update_login;
1381 x_program_application_id := l_x_PRICE_LIST_LINE_rec.program_application_id;
1382 x_program_id := l_x_PRICE_LIST_LINE_rec.program_id;
1383 x_program_update_date := l_x_PRICE_LIST_LINE_rec.program_update_date;
1384 x_request_id := l_x_PRICE_LIST_LINE_rec.request_id;
1385
1386 -- Clear PRICE_LIST_LINE record cache
1387
1388 Clear_PRICE_LIST_LINE;
1389
1390 -- Keep track of performed operations.
1391
1392 l_old_PRICE_LIST_LINE_rec.operation := l_PRICE_LIST_LINE_rec.operation;
1393
1394
1395 -- Set return status.
1396
1397 x_return_status := FND_API.G_RET_STS_SUCCESS;
1398
1399 -- Get message count and data
1400
1401 oe_msg_pub.Count_And_Get
1402 ( p_count => x_msg_count
1403 , p_data => x_msg_data
1404 );
1405
1406
1407 EXCEPTION
1408
1409 WHEN FND_API.G_EXC_ERROR THEN
1410
1411 x_return_status := FND_API.G_RET_STS_ERROR;
1412
1413 -- Get message count and data
1414
1415 oe_msg_pub.Count_And_Get
1416 ( p_count => x_msg_count
1417 , p_data => x_msg_data
1418 );
1419
1420 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1421
1422 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1423
1424 -- Get message count and data
1425
1426 oe_msg_pub.Count_And_Get
1427 ( p_count => x_msg_count
1428 , p_data => x_msg_data
1429 );
1430
1431 WHEN OTHERS THEN
1432
1433 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1434
1435 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1436 THEN
1437 oe_msg_pub.Add_Exc_Msg
1438 ( G_PKG_NAME
1439 , 'Validate_And_Write'
1440 );
1441 END IF;
1442
1443 -- Get message count and data
1444
1445 oe_msg_pub.Count_And_Get
1446 ( p_count => x_msg_count
1447 , p_data => x_msg_data
1448 );
1449
1450 END Validate_And_Write;
1451
1452 -- Procedure Delete_Row
1453 --
1454
1455 PROCEDURE Delete_Row
1456 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1457 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1458 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1459 , p_list_line_id IN NUMBER
1460 )
1461 IS
1462 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1463 l_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1464 l_control_rec QP_GLOBALS.Control_Rec_Type;
1465 l_return_status VARCHAR2(1);
1466 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1467 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1468 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1469 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
1470 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
1471 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1472 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1473 BEGIN
1474
1475 -- Set control flags.
1476
1477 l_control_rec.controlled_operation := TRUE;
1478 l_control_rec.validate_entity := TRUE;
1479 l_control_rec.write_to_DB := TRUE;
1480
1481 l_control_rec.default_attributes := FALSE;
1482 l_control_rec.change_attributes := FALSE;
1483 l_control_rec.process := FALSE;
1484
1485 -- Instruct API to retain its caches
1486
1487 l_control_rec.clear_api_cache := FALSE;
1488 l_control_rec.clear_api_requests := FALSE;
1489
1490 -- Read DB record from cache
1491
1492 l_PRICE_LIST_LINE_rec := Get_PRICE_LIST_LINE
1493 ( p_db_record => TRUE
1494 , p_list_line_id => p_list_line_id
1495 );
1496
1497 -- Set Operation.
1498
1499 l_PRICE_LIST_LINE_rec.operation := QP_GLOBALS.G_OPR_DELETE;
1500
1501 -- Populate PRICE_LIST_LINE table
1502
1503 l_PRICE_LIST_LINE_tbl(1) := l_PRICE_LIST_LINE_rec;
1504
1505 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1506
1507 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1508 ( p_api_version_number => 1.0
1509 , p_init_msg_list => FND_API.G_TRUE
1510 , x_return_status => l_return_status
1511 , x_msg_count => x_msg_count
1512 , x_msg_data => x_msg_data
1513 , p_control_rec => l_control_rec
1514 , p_PRICE_LIST_LINE_tbl => l_PRICE_LIST_LINE_tbl
1515 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
1516 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
1517 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1518 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1519 );
1520
1521 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1522 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1523 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1524 RAISE FND_API.G_EXC_ERROR;
1525 END IF;
1526
1527
1528 -- Clear PRICE_LIST_LINE record cache
1529
1530 Clear_PRICE_LIST_LINE;
1531
1532 -- Set return status.
1533
1534 x_return_status := FND_API.G_RET_STS_SUCCESS;
1535
1536 -- Get message count and data
1537
1538 oe_msg_pub.Count_And_Get
1539 ( p_count => x_msg_count
1540 , p_data => x_msg_data
1541 );
1542
1543
1544 EXCEPTION
1545
1546 WHEN FND_API.G_EXC_ERROR THEN
1547
1548 x_return_status := FND_API.G_RET_STS_ERROR;
1549
1550 -- Get message count and data
1551
1552 oe_msg_pub.Count_And_Get
1553 ( p_count => x_msg_count
1554 , p_data => x_msg_data
1555 );
1556
1557 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1558
1559 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1560
1561 -- Get message count and data
1562
1563 oe_msg_pub.Count_And_Get
1564 ( p_count => x_msg_count
1565 , p_data => x_msg_data
1566 );
1567
1568 WHEN OTHERS THEN
1569
1570 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1571
1572 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1573 THEN
1574 oe_msg_pub.Add_Exc_Msg
1575 ( G_PKG_NAME
1576 , 'Delete_Row'
1577 );
1578 END IF;
1579
1580 -- Get message count and data
1581
1582 oe_msg_pub.Count_And_Get
1583 ( p_count => x_msg_count
1584 , p_data => x_msg_data
1585 );
1586
1587 END Delete_Row;
1588
1589 -- Procedure Process_Entity
1590 --
1591
1592 PROCEDURE Process_Entity
1593 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1594 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1595 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1596 )
1597 IS
1598 l_control_rec QP_GLOBALS.Control_Rec_Type;
1599 l_return_status VARCHAR2(1);
1600 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1601 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1602 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1603 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
1604 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
1605 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1606 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1607 BEGIN
1608
1609 -- Set control flags.
1610
1611 l_control_rec.controlled_operation := TRUE;
1612 l_control_rec.process := TRUE;
1613 l_control_rec.process_entity := QP_GLOBALS.G_ENTITY_PRICE_LIST_LINE;
1614
1615 l_control_rec.default_attributes := FALSE;
1616 l_control_rec.change_attributes := FALSE;
1617 l_control_rec.validate_entity := FALSE;
1618 l_control_rec.write_to_DB := FALSE;
1619
1620 -- Instruct API to clear its request table
1621
1622 l_control_rec.clear_api_cache := FALSE;
1623 l_control_rec.clear_api_requests := FALSE;
1624
1625 -- Call QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1626
1627 QP_LIST_HEADERS_PVT.Process_PRICE_LIST
1628 ( p_api_version_number => 1.0
1629 , p_init_msg_list => FND_API.G_TRUE
1630 , x_return_status => l_return_status
1631 , x_msg_count => x_msg_count
1632 , x_msg_data => x_msg_data
1633 , p_control_rec => l_control_rec
1634 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
1635 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
1636 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1637 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1638 );
1639
1640 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1641 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1642 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1643 RAISE FND_API.G_EXC_ERROR;
1644 END IF;
1645
1646
1647 -- Set return status.
1648
1649 x_return_status := FND_API.G_RET_STS_SUCCESS;
1650
1651 -- Get message count and data
1652
1653 oe_msg_pub.Count_And_Get
1654 ( p_count => x_msg_count
1655 , p_data => x_msg_data
1656 );
1657
1658
1659 EXCEPTION
1660
1661 WHEN FND_API.G_EXC_ERROR THEN
1662
1663 x_return_status := FND_API.G_RET_STS_ERROR;
1664
1665 -- Get message count and data
1666
1667 oe_msg_pub.Count_And_Get
1668 ( p_count => x_msg_count
1669 , p_data => x_msg_data
1670 );
1671
1672 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1673
1674 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1675
1676 -- Get message count and data
1677
1678 oe_msg_pub.Count_And_Get
1679 ( p_count => x_msg_count
1680 , p_data => x_msg_data
1681 );
1682
1683 WHEN OTHERS THEN
1684
1685 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1686
1687 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1688 THEN
1689 oe_msg_pub.Add_Exc_Msg
1690 ( G_PKG_NAME
1691 , 'Process_Entity'
1692 );
1693 END IF;
1694
1695 -- Get message count and data
1696
1697 oe_msg_pub.Count_And_Get
1698 ( p_count => x_msg_count
1699 , p_data => x_msg_data
1700 );
1701
1702 END Process_Entity;
1703
1704 -- Procedure lock_Row
1705 --
1706
1707 PROCEDURE Lock_Row
1708 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1709 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1710 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1711 , p_accrual_qty IN NUMBER
1712 , p_accrual_uom_code IN VARCHAR2
1713 , p_arithmetic_operator IN VARCHAR2
1714 , p_attribute1 IN VARCHAR2
1715 , p_attribute10 IN VARCHAR2
1716 , p_attribute11 IN VARCHAR2
1717 , p_attribute12 IN VARCHAR2
1718 , p_attribute13 IN VARCHAR2
1719 , p_attribute14 IN VARCHAR2
1720 , p_attribute15 IN VARCHAR2
1721 , p_attribute2 IN VARCHAR2
1722 , p_attribute3 IN VARCHAR2
1723 , p_attribute4 IN VARCHAR2
1724 , p_attribute5 IN VARCHAR2
1725 , p_attribute6 IN VARCHAR2
1726 , p_attribute7 IN VARCHAR2
1727 , p_attribute8 IN VARCHAR2
1728 , p_attribute9 IN VARCHAR2
1729 , p_automatic_flag IN VARCHAR2
1730 , p_base_qty IN NUMBER
1731 , p_base_uom_code IN VARCHAR2
1732 , p_comments IN VARCHAR2
1733 , p_context IN VARCHAR2
1734 , p_created_by IN NUMBER
1735 , p_creation_date IN DATE
1736 , p_effective_period_uom IN VARCHAR2
1737 , p_end_date_active IN DATE
1738 , p_estim_accrual_rate IN NUMBER
1739 , p_generate_using_formula_id IN NUMBER
1740 , p_inventory_item_id IN NUMBER
1741 , p_last_updated_by IN NUMBER
1742 , p_last_update_date IN DATE
1743 , p_last_update_login IN NUMBER
1744 , p_list_header_id IN NUMBER
1745 , p_list_line_id IN NUMBER
1746 , p_list_line_type_code IN VARCHAR2
1747 , p_list_price IN NUMBER
1748 , p_product_precedence IN NUMBER
1749 , p_modifier_level_code IN VARCHAR2
1750 , p_number_effective_periods IN NUMBER
1751 , p_operand IN NUMBER
1752 , p_organization_id IN NUMBER
1753 , p_override_flag IN VARCHAR2
1754 , p_percent_price IN NUMBER
1755 , p_price_break_type_code IN VARCHAR2
1756 , p_price_by_formula_id IN NUMBER
1757 , p_primary_uom_flag IN VARCHAR2
1758 , p_print_on_invoice_flag IN VARCHAR2
1759 , p_program_application_id IN NUMBER
1760 , p_program_id IN NUMBER
1761 , p_program_update_date IN DATE
1762 , p_rebate_trxn_type_code IN VARCHAR2
1763 , p_related_item_id IN NUMBER
1764 , p_relationship_type_id IN NUMBER
1765 , p_reprice_flag IN VARCHAR2
1766 , p_request_id IN NUMBER
1767 , p_revision IN VARCHAR2
1768 , p_revision_date IN DATE
1769 , p_revision_reason_code IN VARCHAR2
1770 , p_start_date_active IN DATE
1771 , p_substitution_attribute IN VARCHAR2
1772 , p_substitution_context IN VARCHAR2
1773 , p_substitution_value IN VARCHAR2
1774 , p_recurring_value IN NUMBER -- block pricing
1775 , p_customer_item_id IN NUMBER
1776 , p_break_uom_code IN VARCHAR2 -- OKS proration
1777 , p_break_uom_context IN VARCHAR2 -- OKS
1778 , p_break_uom_attribute IN VARCHAR2 -- OKS proration
1779 , p_continuous_price_break_flag IN VARCHAR2 --Continuous price breaks
1780 )
1781 IS
1782 l_return_status VARCHAR2(1);
1783 l_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1784 l_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1785 l_x_PRICE_LIST_rec QP_Price_List_PUB.Price_List_Rec_Type;
1786 l_x_PRICE_LIST_LINE_rec QP_Price_List_PUB.Price_List_Line_Rec_Type;
1787 l_x_PRICE_LIST_LINE_tbl QP_Price_List_PUB.Price_List_Line_Tbl_Type;
1788 l_x_QUALIFIERS_rec Qp_Qualifier_Rules_Pub.Qualifiers_Rec_Type;
1789 l_x_QUALIFIERS_tbl Qp_Qualifier_Rules_Pub.Qualifiers_Tbl_Type;
1790 l_x_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1791 l_x_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1792 BEGIN
1793
1794 oe_debug_pub.add('inside lock price list - form 1');
1795
1796 -- Load PRICE_LIST_LINE record
1797
1798 l_PRICE_LIST_LINE_rec.accrual_qty := p_accrual_qty;
1799 l_PRICE_LIST_LINE_rec.accrual_uom_code := p_accrual_uom_code;
1800 l_PRICE_LIST_LINE_rec.arithmetic_operator := p_arithmetic_operator;
1801 l_PRICE_LIST_LINE_rec.attribute1 := p_attribute1;
1802 l_PRICE_LIST_LINE_rec.attribute10 := p_attribute10;
1803 l_PRICE_LIST_LINE_rec.attribute11 := p_attribute11;
1804 l_PRICE_LIST_LINE_rec.attribute12 := p_attribute12;
1805 l_PRICE_LIST_LINE_rec.attribute13 := p_attribute13;
1806 l_PRICE_LIST_LINE_rec.attribute14 := p_attribute14;
1807 l_PRICE_LIST_LINE_rec.attribute15 := p_attribute15;
1808 l_PRICE_LIST_LINE_rec.attribute2 := p_attribute2;
1809 l_PRICE_LIST_LINE_rec.attribute3 := p_attribute3;
1810 l_PRICE_LIST_LINE_rec.attribute4 := p_attribute4;
1811 l_PRICE_LIST_LINE_rec.attribute5 := p_attribute5;
1812 l_PRICE_LIST_LINE_rec.attribute6 := p_attribute6;
1813 l_PRICE_LIST_LINE_rec.attribute7 := p_attribute7;
1814 l_PRICE_LIST_LINE_rec.attribute8 := p_attribute8;
1815 l_PRICE_LIST_LINE_rec.attribute9 := p_attribute9;
1816 l_PRICE_LIST_LINE_rec.automatic_flag := p_automatic_flag;
1817 l_PRICE_LIST_LINE_rec.base_qty := p_base_qty;
1818 l_PRICE_LIST_LINE_rec.base_uom_code := p_base_uom_code;
1819 l_PRICE_LIST_LINE_rec.comments := p_comments;
1820 l_PRICE_LIST_LINE_rec.context := p_context;
1821 l_PRICE_LIST_LINE_rec.created_by := p_created_by;
1822 l_PRICE_LIST_LINE_rec.creation_date := p_creation_date;
1823 l_PRICE_LIST_LINE_rec.effective_period_uom := p_effective_period_uom;
1824 l_PRICE_LIST_LINE_rec.end_date_active := p_end_date_active;
1825 l_PRICE_LIST_LINE_rec.estim_accrual_rate := p_estim_accrual_rate;
1826 l_PRICE_LIST_LINE_rec.generate_using_formula_id := p_generate_using_formula_id;
1827 l_PRICE_LIST_LINE_rec.inventory_item_id := p_inventory_item_id;
1828 l_PRICE_LIST_LINE_rec.last_updated_by := p_last_updated_by;
1829 l_PRICE_LIST_LINE_rec.last_update_date := p_last_update_date;
1830 l_PRICE_LIST_LINE_rec.last_update_login := p_last_update_login;
1831 l_PRICE_LIST_LINE_rec.list_header_id := p_list_header_id;
1832 l_PRICE_LIST_LINE_rec.list_line_id := p_list_line_id;
1833 l_PRICE_LIST_LINE_rec.list_line_type_code := p_list_line_type_code;
1834 l_PRICE_LIST_LINE_rec.list_price := p_list_price;
1835 l_PRICE_LIST_LINE_rec.product_precedence := p_product_precedence;
1836 l_PRICE_LIST_LINE_rec.modifier_level_code := p_modifier_level_code;
1837 l_PRICE_LIST_LINE_rec.number_effective_periods := p_number_effective_periods;
1838 l_PRICE_LIST_LINE_rec.operand := p_operand;
1839 l_PRICE_LIST_LINE_rec.organization_id := p_organization_id;
1840 l_PRICE_LIST_LINE_rec.override_flag := p_override_flag;
1841 l_PRICE_LIST_LINE_rec.percent_price := p_percent_price;
1842 l_PRICE_LIST_LINE_rec.price_break_type_code := p_price_break_type_code;
1843 l_PRICE_LIST_LINE_rec.price_by_formula_id := p_price_by_formula_id;
1844 l_PRICE_LIST_LINE_rec.primary_uom_flag := p_primary_uom_flag;
1845 l_PRICE_LIST_LINE_rec.print_on_invoice_flag := p_print_on_invoice_flag;
1846 l_PRICE_LIST_LINE_rec.program_application_id := p_program_application_id;
1847 l_PRICE_LIST_LINE_rec.program_id := p_program_id;
1848 l_PRICE_LIST_LINE_rec.program_update_date := p_program_update_date;
1849 l_PRICE_LIST_LINE_rec.rebate_trxn_type_code := p_rebate_trxn_type_code;
1850 l_PRICE_LIST_LINE_rec.related_item_id := p_related_item_id;
1851 l_PRICE_LIST_LINE_rec.relationship_type_id := p_relationship_type_id;
1852 l_PRICE_LIST_LINE_rec.reprice_flag := p_reprice_flag;
1853 l_PRICE_LIST_LINE_rec.request_id := p_request_id;
1854 l_PRICE_LIST_LINE_rec.revision := p_revision;
1855 l_PRICE_LIST_LINE_rec.revision_date := p_revision_date;
1856 l_PRICE_LIST_LINE_rec.revision_reason_code := p_revision_reason_code;
1857 l_PRICE_LIST_LINE_rec.start_date_active := p_start_date_active;
1858 l_PRICE_LIST_LINE_rec.substitution_attribute := p_substitution_attribute;
1859 l_PRICE_LIST_LINE_rec.substitution_context := p_substitution_context;
1860 l_PRICE_LIST_LINE_rec.substitution_value := p_substitution_value;
1861 l_PRICE_LIST_LINE_rec.operation := QP_GLOBALS.G_OPR_LOCK;
1862 l_PRICE_LIST_LINE_rec.recurring_value := p_recurring_value; -- block pricing
1863 l_PRICE_LIST_LINE_rec.customer_item_id := p_customer_item_id;
1864 l_PRICE_LIST_LINE_rec.break_uom_code := p_break_uom_code;
1865 l_PRICE_LIST_LINE_rec.break_uom_context := p_break_uom_context;
1866 l_PRICE_LIST_LINE_rec.break_uom_attribute := p_break_uom_attribute;
1867 l_PRICE_LIST_LINE_rec.continuous_price_break_flag := p_continuous_price_break_flag;--Continuous price breaks
1868
1869 if (p_recurring_value IS NOT NULL) THEN
1870 oe_msg_pub.Add_Exc_Msg(G_PKG_NAME, 'Lock_Row');
1871 end if;
1872
1873 -- Populate PRICE_LIST_LINE table
1874
1875 l_PRICE_LIST_LINE_tbl(1) := l_PRICE_LIST_LINE_rec;
1876
1877 -- Call QP_LIST_HEADERS_PVT.Lock_PRICE_LIST
1878
1879 oe_debug_pub.add('before calling lock price list');
1880
1881 QP_LIST_HEADERS_PVT.Lock_PRICE_LIST
1882 ( p_api_version_number => 1.0
1883 , p_init_msg_list => FND_API.G_TRUE
1884 , x_return_status => l_return_status
1885 , x_msg_count => x_msg_count
1886 , x_msg_data => x_msg_data
1887 , p_PRICE_LIST_LINE_tbl => l_PRICE_LIST_LINE_tbl
1888 , x_PRICE_LIST_rec => l_x_PRICE_LIST_rec
1889 , x_PRICE_LIST_LINE_tbl => l_x_PRICE_LIST_LINE_tbl
1890 , x_QUALIFIERS_tbl => l_x_QUALIFIERS_tbl
1891 , x_PRICING_ATTR_tbl => l_x_PRICING_ATTR_tbl
1892 );
1893
1894 oe_debug_pub.add('after calling lock price list');
1895
1896 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1897
1898 -- Set DB flag and write record to cache.
1899
1900 l_x_PRICE_LIST_LINE_rec.db_flag := FND_API.G_TRUE;
1901
1902 Write_PRICE_LIST_LINE
1903 ( p_PRICE_LIST_LINE_rec => l_x_PRICE_LIST_LINE_rec
1904 , p_db_record => TRUE
1905 );
1906
1907 END IF;
1908
1909 -- Set return status.
1910
1911 x_return_status := l_return_status;
1912
1913 -- Get message count and data
1914
1915 oe_msg_pub.Count_And_Get
1916 ( p_count => x_msg_count
1917 , p_data => x_msg_data
1918 );
1919
1920 oe_debug_pub.add('mesg data in lock row : ' || x_msg_data);
1921
1922
1923 EXCEPTION
1924
1925 WHEN OTHERS THEN
1926
1927 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1928 THEN
1929 oe_msg_pub.Add_Exc_Msg
1930 ( G_PKG_NAME
1931 , 'Lock_Row'
1932 );
1933 END IF;
1934
1935 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1936
1937 -- Get message count and data
1938
1939 oe_msg_pub.Count_And_Get
1940 ( p_count => x_msg_count
1941 , p_data => x_msg_data
1942 );
1943
1944
1945
1946 END Lock_Row;
1947
1948 -- Procedures maintaining PRICE_LIST_LINE record cache.
1949
1950 PROCEDURE Write_PRICE_LIST_LINE
1951 ( p_PRICE_LIST_LINE_rec IN QP_Price_List_PUB.Price_List_Line_Rec_Type
1952 , p_db_record IN BOOLEAN := FALSE
1953 )
1954 IS
1955 BEGIN
1956
1957 g_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
1958
1959 IF p_db_record THEN
1960
1961 g_db_PRICE_LIST_LINE_rec := p_PRICE_LIST_LINE_rec;
1962
1963 END IF;
1964
1965 END Write_Price_List_Line;
1966
1967 FUNCTION Get_PRICE_LIST_LINE
1968 ( p_db_record IN BOOLEAN := FALSE
1969 , p_list_line_id IN NUMBER
1970 )
1971 RETURN QP_Price_List_PUB.Price_List_Line_Rec_Type
1972 IS
1973 BEGIN
1974 IF p_list_line_id <> g_PRICE_LIST_LINE_rec.list_line_id
1975 THEN
1976
1977 -- Query row from DB
1978
1979 oe_debug_pub.add('gpll - query row from db ca 1');
1980
1981 g_PRICE_LIST_LINE_rec := QP_Price_List_Line_Util.Query_Row
1982 ( p_list_line_id => p_list_line_id
1983 );
1984
1985 g_PRICE_LIST_LINE_rec.db_flag := FND_API.G_TRUE;
1986
1987 -- Load DB record
1988
1989 g_db_PRICE_LIST_LINE_rec := g_PRICE_LIST_LINE_rec;
1990
1991 END IF;
1992
1993 IF p_db_record THEN
1994
1995 RETURN g_db_PRICE_LIST_LINE_rec;
1996
1997 ELSE
1998
1999 RETURN g_PRICE_LIST_LINE_rec;
2000
2001 END IF;
2002
2003 END Get_Price_List_Line;
2004
2005 PROCEDURE Clear_Price_List_Line
2006 IS
2007 BEGIN
2008
2009 g_PRICE_LIST_LINE_rec := QP_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC;
2010 g_db_PRICE_LIST_LINE_rec := QP_Price_List_PUB.G_MISS_PRICE_LIST_LINE_REC;
2011
2012 END Clear_Price_List_Line;
2013
2014 -- This procedure will be called from the client when the user
2015 -- clears a record
2016 Procedure Clear_Record
2017 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2018 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2019 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2020 , p_list_line_id IN NUMBER
2021 )
2022 IS
2023 l_return_status Varchar2(30);
2024 BEGIN
2025 OE_MSG_PUB.initialize;
2026 x_return_status := FND_API.G_RET_STS_SUCCESS;
2027 QP_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
2028 p_entity_code => QP_GLOBALS.G_ENTITY_PRICE_LIST_LINE
2029 ,p_entity_id => p_list_line_id
2030 ,x_return_status => l_return_status);
2031
2032 OE_MSG_PUB.Count_And_Get
2033 ( p_count => x_msg_count
2034 , p_data => x_msg_data
2035 );
2036
2037 -- Clear the controller cache
2038 Clear_Price_List_Line;
2039
2040 EXCEPTION
2041 WHEN OTHERS THEN
2042 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2043 THEN
2044 OE_MSG_PUB.Add_Exc_Msg
2045 ( G_PKG_NAME
2046 , 'Clear_Record'
2047 );
2048 END IF;
2049 -- Get message count and data
2050 OE_MSG_PUB.Count_And_Get
2051 ( p_count => x_msg_count
2052 , p_data => x_msg_data
2053 );
2054 x_return_status := FND_API.G_RET_STS_ERROR;
2055
2056 END Clear_Record;
2057
2058
2059 -- This procedure will be called from the client when the user
2060 -- clears a block or Form
2061 Procedure Delete_All_Requests
2062 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2063 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
2064 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2065 )
2066 IS
2067 l_return_status Varchar2(30);
2068 BEGIN
2069 OE_MSG_PUB.initialize;
2070 x_return_status := FND_API.G_RET_STS_SUCCESS;
2071 QP_DELAYED_REQUESTS_PVT.Clear_Request(
2072 x_return_status => l_return_status);
2073
2074 EXCEPTION
2075 WHEN OTHERS THEN
2076 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2077 THEN
2078 OE_MSG_PUB.Add_Exc_Msg
2079 ( G_PKG_NAME
2080 , 'Delete_All_Requests'
2081 );
2082 END IF;
2083 -- Get message count and data
2084 OE_MSG_PUB.Count_And_Get
2085 ( p_count => x_msg_count
2086 , p_data => x_msg_data
2087 );
2088 x_return_status := FND_API.G_RET_STS_ERROR;
2089
2090 END Delete_All_Requests;
2091
2092
2093 END QP_QP_Form_Price_List_Line;