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