DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QP_FORM_MODIFIERS

Source


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