DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QP_FORM_MODIFIER_LIST

Source


1 PACKAGE BODY QP_QP_Form_Modifier_List AS
2 /* $Header: QPXFMLHB.pls 120.4 2005/10/26 18:00:44 jhkuo ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_QP_Form_Modifier_List';
7 
8 --  Global variables holding cached record.
9 
10 g_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
11 g_db_MODIFIER_LIST_rec        QP_Modifiers_PUB.Modifier_List_Rec_Type;
12 
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 PROCEDURE Write_MODIFIER_LIST
16 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
17 ,   p_db_record                     IN  BOOLEAN := FALSE
18 );
19 
20 FUNCTION Get_MODIFIER_LIST
21 (   p_db_record                     IN  BOOLEAN := FALSE
22 ,   p_list_header_id                IN  NUMBER
23 )
24 RETURN QP_Modifiers_PUB.Modifier_List_Rec_Type;
25 
26 PROCEDURE Clear_MODIFIER_LIST;
27 
28 --  Global variable holding performed operations.
29 
30 g_opr__tbl                    QP_Modifiers_PUB.Modifier_List_Tbl_Type;
31 
32 --  Procedure : Default_Attributes
33 --
34 
35 PROCEDURE Default_Attributes
36 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
37 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
38 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
40 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 ,   x_automatic_flag                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 ,   x_comments                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 ,   x_currency_code                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
58 ,   x_discount_lines_flag           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
59 ,   x_end_date_active               OUT NOCOPY /* file.sql.39 change */ DATE
60 ,   x_freight_terms_code            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
61 ,   x_gsa_indicator                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
62 ,   x_list_header_id                OUT NOCOPY /* file.sql.39 change */ NUMBER
63 ,   x_list_type_code                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
64 ,   x_prorate_flag                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
65 ,   x_rounding_factor               OUT NOCOPY /* file.sql.39 change */ NUMBER
66 ,   x_ship_method_code              OUT NOCOPY /* file.sql.39 change */ VARCHAR2
67 ,   x_start_date_active             OUT NOCOPY /* file.sql.39 change */ DATE
68 ,   x_terms_id                      OUT NOCOPY /* file.sql.39 change */ NUMBER
69 ,   x_source_system_code            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
70 ,   x_pte_code                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 ,   x_active_flag                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
72 ,   x_parent_list_header_id         OUT NOCOPY /* file.sql.39 change */ NUMBER
73 ,   x_start_date_active_first       OUT NOCOPY /* file.sql.39 change */ DATE
74 ,   x_end_date_active_first         OUT NOCOPY /* file.sql.39 change */ DATE
75 ,   x_active_date_first_type        OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 ,   x_start_date_active_second      OUT NOCOPY /* file.sql.39 change */ DATE
77 ,   x_global_flag                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
78 ,   x_end_date_active_second        OUT NOCOPY /* file.sql.39 change */ DATE
79 ,   x_active_date_second_type       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
80 ,   x_automatic                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
81 ,   x_currency                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
82 ,   x_discount_lines                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
83 ,   x_freight_terms                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
84 ,   x_list_header                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
85 ,   x_list_type                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
86 ,   x_prorate                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
87 ,   x_ship_method                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
88 ,   x_terms                         OUT NOCOPY /* file.sql.39 change */ VARCHAR2
89 ,   x_ask_for_flag                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
90 ,   x_name                          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
91 ,   x_description                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
92 ,   x_version_no                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
93 ,   x_list_source_code		    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
94 ,   x_orig_system_header_ref        OUT NOCOPY /* file.sql.39 change */ VARCHAR2
95 ,   x_shareable_flag           	    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
96 --added for MOAC
97 ,   x_org_id                        OUT NOCOPY /* file.sql.39 change */ NUMBER
98 )
99 IS
100 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
101 l_MODIFIER_LIST_val_rec       QP_Modifiers_PUB.Modifier_List_Val_Rec_Type;
102 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
103 l_return_status               VARCHAR2(1);
104 l_x_MODIFIER_LIST_rec         QP_Modifiers_PUB.Modifier_List_Rec_Type;
105 l_x_MODIFIERS_rec             QP_Modifiers_PUB.Modifiers_Rec_Type;
106 l_x_MODIFIERS_tbl             QP_Modifiers_PUB.Modifiers_Tbl_Type;
107 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
108 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
109 l_x_PRICING_ATTR_rec          QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
110 l_x_PRICING_ATTR_tbl          QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
111 BEGIN
112 
113     oe_debug_pub.add('BEGIN default_attibutes in QPXFMLHB');
114     --  Set control flags.
115 
116     l_control_rec.controlled_operation := TRUE;
117     l_control_rec.default_attributes   := TRUE;
118 
119     l_control_rec.change_attributes    := FALSE;
120     l_control_rec.validate_entity      := FALSE;
121     l_control_rec.write_to_DB          := FALSE;
122     l_control_rec.process              := FALSE;
123 
124     --  Instruct API to retain its caches
125 
126     l_control_rec.clear_api_cache      := FALSE;
127     l_control_rec.clear_api_requests   := FALSE;
128 
129     --  Load IN parameters if any exist
130 
131 
132     --  Defaulting of flex values is currently done by the form.
133     --  Set flex attributes to NULL in order to avoid defaulting them.
134 
135     l_MODIFIER_LIST_rec.attribute1                := NULL;
136     l_MODIFIER_LIST_rec.attribute10               := NULL;
137     l_MODIFIER_LIST_rec.attribute11               := NULL;
138     l_MODIFIER_LIST_rec.attribute12               := NULL;
139     l_MODIFIER_LIST_rec.attribute13               := NULL;
140     l_MODIFIER_LIST_rec.attribute14               := NULL;
141     l_MODIFIER_LIST_rec.attribute15               := NULL;
142     l_MODIFIER_LIST_rec.attribute2                := NULL;
143     l_MODIFIER_LIST_rec.attribute3                := NULL;
144     l_MODIFIER_LIST_rec.attribute4                := NULL;
145     l_MODIFIER_LIST_rec.attribute5                := NULL;
146     l_MODIFIER_LIST_rec.attribute6                := NULL;
147     l_MODIFIER_LIST_rec.attribute7                := NULL;
148     l_MODIFIER_LIST_rec.attribute8                := NULL;
149     l_MODIFIER_LIST_rec.attribute9                := NULL;
150     l_MODIFIER_LIST_rec.context                   := NULL;
151 
152     --  Set Operation to Create
153 
154     l_MODIFIER_LIST_rec.operation := QP_GLOBALS.G_OPR_CREATE;
155 
156     --  Call QP_Modifiers_PVT.Process_MODIFIERS
157 
158     QP_Modifiers_PVT.Process_MODIFIERS
159     (   p_api_version_number          => 1.0
160     ,   p_init_msg_list               => FND_API.G_TRUE
161     ,   x_return_status               => l_return_status
162     ,   x_msg_count                   => x_msg_count
163     ,   x_msg_data                    => x_msg_data
164     ,   p_control_rec                 => l_control_rec
165     ,   p_MODIFIER_LIST_rec           => l_MODIFIER_LIST_rec
166     ,   x_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
167     ,   x_MODIFIERS_tbl               => l_x_MODIFIERS_tbl
168     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
169     ,   x_PRICING_ATTR_tbl            => l_x_PRICING_ATTR_tbl
170     );
171 
172     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
173         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
174     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
175         RAISE FND_API.G_EXC_ERROR;
176     END IF;
177 
178 
179     --  Load OUT parameters.
180 
181     x_attribute1                   := l_x_MODIFIER_LIST_rec.attribute1;
182     x_attribute10                  := l_x_MODIFIER_LIST_rec.attribute10;
183     x_attribute11                  := l_x_MODIFIER_LIST_rec.attribute11;
184     x_attribute12                  := l_x_MODIFIER_LIST_rec.attribute12;
185     x_attribute13                  := l_x_MODIFIER_LIST_rec.attribute13;
186     x_attribute14                  := l_x_MODIFIER_LIST_rec.attribute14;
187     x_attribute15                  := l_x_MODIFIER_LIST_rec.attribute15;
188     x_attribute2                   := l_x_MODIFIER_LIST_rec.attribute2;
189     x_attribute3                   := l_x_MODIFIER_LIST_rec.attribute3;
190     x_attribute4                   := l_x_MODIFIER_LIST_rec.attribute4;
191     x_attribute5                   := l_x_MODIFIER_LIST_rec.attribute5;
192     x_attribute6                   := l_x_MODIFIER_LIST_rec.attribute6;
193     x_attribute7                   := l_x_MODIFIER_LIST_rec.attribute7;
194     x_attribute8                   := l_x_MODIFIER_LIST_rec.attribute8;
195     x_attribute9                   := l_x_MODIFIER_LIST_rec.attribute9;
196     x_automatic_flag               := l_x_MODIFIER_LIST_rec.automatic_flag;
197     x_comments                     := l_x_MODIFIER_LIST_rec.comments;
198     x_context                      := l_x_MODIFIER_LIST_rec.context;
199     x_currency_code                := l_x_MODIFIER_LIST_rec.currency_code;
200     x_discount_lines_flag          := l_x_MODIFIER_LIST_rec.discount_lines_flag;
201     x_end_date_active              := l_x_MODIFIER_LIST_rec.end_date_active;
202     x_freight_terms_code           := l_x_MODIFIER_LIST_rec.freight_terms_code;
203     x_gsa_indicator                := l_x_MODIFIER_LIST_rec.gsa_indicator;
204     x_list_header_id               := l_x_MODIFIER_LIST_rec.list_header_id;
205     x_list_type_code               := l_x_MODIFIER_LIST_rec.list_type_code;
206     x_prorate_flag                 := l_x_MODIFIER_LIST_rec.prorate_flag;
207     x_rounding_factor              := l_x_MODIFIER_LIST_rec.rounding_factor;
208     x_ship_method_code             := l_x_MODIFIER_LIST_rec.ship_method_code;
209     x_start_date_active            := l_x_MODIFIER_LIST_rec.start_date_active;
210     x_terms_id                     := l_x_MODIFIER_LIST_rec.terms_id;
211     x_source_system_code           := l_x_MODIFIER_LIST_rec.source_system_code;
212     x_pte_code                     := l_x_MODIFIER_LIST_rec.pte_code;
213     x_active_flag                  := l_x_MODIFIER_LIST_rec.active_flag;
214     x_parent_list_header_id        := l_x_MODIFIER_LIST_rec.parent_list_header_id;
215     x_start_date_active_first      := l_x_MODIFIER_LIST_rec.start_date_active_first;
216     x_end_date_active_first        := l_x_MODIFIER_LIST_rec.end_date_active_first;
217     x_active_date_first_type       := l_x_MODIFIER_LIST_rec.active_date_first_type;
218     x_start_date_active_second     := l_x_MODIFIER_LIST_rec.start_date_active_second;
219     x_global_flag                  := l_x_MODIFIER_LIST_rec.global_flag;
220     x_end_date_active_second       := l_x_MODIFIER_LIST_rec.end_date_active_second;
221     x_active_date_second_type      := l_x_MODIFIER_LIST_rec.active_date_second_type;
222     x_ask_for_flag                 := l_x_MODIFIER_LIST_rec.ask_for_flag;
223     x_name                         := l_x_MODIFIER_LIST_rec.name;
224     x_description                  := l_x_MODIFIER_LIST_rec.description;
225     x_version_no                   := l_x_MODIFIER_LIST_rec.version_no;
226     x_list_source_code	           := l_x_MODIFIER_LIST_rec.list_source_code;
227     x_orig_system_header_ref       := l_x_MODIFIER_LIST_rec.orig_system_header_ref;
228     x_shareable_flag               := l_x_MODIFIER_LIST_rec.shareable_flag;
229     --added for MOAC
230     x_org_id                       := l_x_MODIFIER_LIST_rec.org_id;
231 
232 
233     --  Load display out parameters if any
234 
235     l_MODIFIER_LIST_val_rec := QP_Modifier_List_Util.Get_Values
236     (   p_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
237     );
238     x_automatic                    := l_MODIFIER_LIST_val_rec.automatic;
239     x_currency                     := l_MODIFIER_LIST_val_rec.currency;
240     x_discount_lines               := l_MODIFIER_LIST_val_rec.discount_lines;
241     x_freight_terms                := l_MODIFIER_LIST_val_rec.freight_terms;
242     x_list_header                  := l_MODIFIER_LIST_val_rec.list_header;
243     x_list_type                    := l_MODIFIER_LIST_val_rec.list_type;
244     x_prorate                      := l_MODIFIER_LIST_val_rec.prorate;
245     x_ship_method                  := l_MODIFIER_LIST_val_rec.ship_method;
246     x_terms                        := l_MODIFIER_LIST_val_rec.terms;
247 
248     --  Write to cache.
249     --  Set db_flag to False before writing to cache
250 
251     l_x_MODIFIER_LIST_rec.db_flag := FND_API.G_FALSE;
252 
253     Write_MODIFIER_LIST
254     (   p_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
255     );
256 
257     --  Set return status.
258 
259     x_return_status := FND_API.G_RET_STS_SUCCESS;
260 
261     --  Get message count and data
262 
263     OE_MSG_PUB.Count_And_Get
264     (   p_count                       => x_msg_count
265     ,   p_data                        => x_msg_data
266     );
267 
268 
269 EXCEPTION
270 
271     WHEN FND_API.G_EXC_ERROR THEN
272 
273         x_return_status := FND_API.G_RET_STS_ERROR;
274 
275         --  Get message count and data
276 
277         OE_MSG_PUB.Count_And_Get
278         (   p_count                       => x_msg_count
279         ,   p_data                        => x_msg_data
280         );
281 
282     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
283 
284         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
285 
286         --  Get message count and data
287 
288         OE_MSG_PUB.Count_And_Get
289         (   p_count                       => x_msg_count
290         ,   p_data                        => x_msg_data
291         );
292 
293     WHEN OTHERS THEN
294 
295         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
296 
297         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
298         THEN
299             OE_MSG_PUB.Add_Exc_Msg
300             (   G_PKG_NAME
301             ,   'Default_Attributes'
302             );
303         END IF;
304 
305         --  Get message count and data
306 
307         OE_MSG_PUB.Count_And_Get
308         (   p_count                       => x_msg_count
309         ,   p_data                        => x_msg_data
310         );
311 
312     oe_debug_pub.add('END default_attibutes in QPXFMLHB');
313 END Default_Attributes;
314 
315 --  Procedure   :   Change_Attribute
316 --
317 
318 PROCEDURE Change_Attribute
319 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
320 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
321 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
322 ,   p_list_header_id                IN  NUMBER
323 ,   p_attr_id                       IN  NUMBER
324 ,   p_attr_value                    IN  VARCHAR2
325 ,   p_attribute1                    IN  VARCHAR2
326 ,   p_attribute10                   IN  VARCHAR2
327 ,   p_attribute11                   IN  VARCHAR2
328 ,   p_attribute12                   IN  VARCHAR2
329 ,   p_attribute13                   IN  VARCHAR2
330 ,   p_attribute14                   IN  VARCHAR2
331 ,   p_attribute15                   IN  VARCHAR2
332 ,   p_attribute2                    IN  VARCHAR2
333 ,   p_attribute3                    IN  VARCHAR2
334 ,   p_attribute4                    IN  VARCHAR2
335 ,   p_attribute5                    IN  VARCHAR2
336 ,   p_attribute6                    IN  VARCHAR2
337 ,   p_attribute7                    IN  VARCHAR2
338 ,   p_attribute8                    IN  VARCHAR2
339 ,   p_attribute9                    IN  VARCHAR2
340 ,   p_context                       IN  VARCHAR2
341 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
342 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
343 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
344 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
345 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
346 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
347 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
348 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
349 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
350 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
351 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
352 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
353 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
354 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
355 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
356 ,   x_automatic_flag                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
357 ,   x_comments                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
358 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
359 ,   x_currency_code                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
360 ,   x_discount_lines_flag           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
361 ,   x_end_date_active               OUT NOCOPY /* file.sql.39 change */ DATE
362 ,   x_freight_terms_code            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
363 ,   x_gsa_indicator                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
364 ,   x_list_header_id                OUT NOCOPY /* file.sql.39 change */ NUMBER
365 ,   x_list_type_code                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
366 ,   x_prorate_flag                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
367 ,   x_rounding_factor               OUT NOCOPY /* file.sql.39 change */ NUMBER
368 ,   x_ship_method_code              OUT NOCOPY /* file.sql.39 change */ VARCHAR2
369 ,   x_start_date_active             OUT NOCOPY /* file.sql.39 change */ DATE
370 ,   x_terms_id                      OUT NOCOPY /* file.sql.39 change */ NUMBER
371 ,   x_source_system_code            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
372 ,   x_pte_code                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
373 ,   x_active_flag                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
374 ,   x_parent_list_header_id         OUT NOCOPY /* file.sql.39 change */ NUMBER
375 ,   x_start_date_active_first       OUT NOCOPY /* file.sql.39 change */ DATE
376 ,   x_end_date_active_first         OUT NOCOPY /* file.sql.39 change */ DATE
377 ,   x_active_date_first_type        OUT NOCOPY /* file.sql.39 change */ VARCHAR2
378 ,   x_start_date_active_second      OUT NOCOPY /* file.sql.39 change */ DATE
379 ,   x_global_flag                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
380 ,   x_end_date_active_second        OUT NOCOPY /* file.sql.39 change */ DATE
381 ,   x_active_date_second_type       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
382 ,   x_automatic                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
383 ,   x_currency                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
384 ,   x_discount_lines                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
385 ,   x_freight_terms                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
386 ,   x_list_header                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
387 ,   x_list_type                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
388 ,   x_prorate                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
389 ,   x_ship_method                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
390 ,   x_terms                         OUT NOCOPY /* file.sql.39 change */ VARCHAR2
391 ,   x_ask_for_flag                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
392 ,   x_name                          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
393 ,   x_description                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
394 ,   x_version_no                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
395 ,   x_list_source_code              OUT NOCOPY /* file.sql.39 change */ VARCHAR2
396 ,   x_orig_system_header_ref        OUT NOCOPY /* file.sql.39 change */ VARCHAR2
397 ,   x_shareable_flag                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
398 --added for MOAC
399 ,   x_org_id                        OUT NOCOPY /* file.sql.39 change */ NUMBER
400 )
401 IS
402 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
403 l_old_MODIFIER_LIST_rec       QP_Modifiers_PUB.Modifier_List_Rec_Type;
404 l_MODIFIER_LIST_val_rec       QP_Modifiers_PUB.Modifier_List_Val_Rec_Type;
405 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
406 l_return_status               VARCHAR2(1);
407 l_x_MODIFIER_LIST_rec         QP_Modifiers_PUB.Modifier_List_Rec_Type;
408 l_x_MODIFIERS_rec             QP_Modifiers_PUB.Modifiers_Rec_Type;
409 l_x_MODIFIERS_tbl             QP_Modifiers_PUB.Modifiers_Tbl_Type;
410 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
411 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
412 l_x_PRICING_ATTR_rec          QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
413 l_x_PRICING_ATTR_tbl          QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
414 BEGIN
415 
416     oe_debug_pub.add('BEGIN change_attibutes in QPXFMLHB');
417     OE_Debug_Pub.add(to_char(p_attr_id)||'attr_id');
418     --  Set control flags.
419 
420     l_control_rec.controlled_operation := TRUE;
421     l_control_rec.change_attributes    := TRUE;
422 
423     l_control_rec.default_attributes   := FALSE;
424     l_control_rec.validate_entity      := FALSE;
425     l_control_rec.write_to_DB          := FALSE;
426     l_control_rec.process              := FALSE;
427 
428     --  Instruct API to retain its caches
429 
430     l_control_rec.clear_api_cache      := FALSE;
431     l_control_rec.clear_api_requests   := FALSE;
432 
433     --  Read MODIFIER_LIST from cache
434 
435     l_MODIFIER_LIST_rec := Get_MODIFIER_LIST
436     (   p_db_record                   => FALSE
437     ,   p_list_header_id              => p_list_header_id
438     );
439 OE_debug_Pub.add('returned');
440     l_old_MODIFIER_LIST_rec        := l_MODIFIER_LIST_rec;
441 
442     IF p_attr_id = QP_Modifier_List_Util.G_AUTOMATIC THEN
443         l_MODIFIER_LIST_rec.automatic_flag := p_attr_value;
444     ELSIF p_attr_id = QP_Modifier_List_Util.G_COMMENTS THEN
445         l_MODIFIER_LIST_rec.comments := p_attr_value;
446     ELSIF p_attr_id = QP_Modifier_List_Util.G_CURRENCY THEN
447         l_MODIFIER_LIST_rec.currency_code := p_attr_value;
448     ELSIF p_attr_id = QP_Modifier_List_Util.G_DISCOUNT_LINES THEN
449         l_MODIFIER_LIST_rec.discount_lines_flag := p_attr_value;
450     ELSIF p_attr_id = QP_Modifier_List_Util.G_END_DATE_ACTIVE THEN
451         l_MODIFIER_LIST_rec.end_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
452     ELSIF p_attr_id = QP_Modifier_List_Util.G_FREIGHT_TERMS THEN
453         l_MODIFIER_LIST_rec.freight_terms_code := p_attr_value;
454     ELSIF p_attr_id = QP_Modifier_List_Util.G_GSA_INDICATOR THEN
455         l_MODIFIER_LIST_rec.gsa_indicator := p_attr_value;
456     ELSIF p_attr_id = QP_Modifier_List_Util.G_LIST_HEADER THEN
457         l_MODIFIER_LIST_rec.list_header_id := TO_NUMBER(p_attr_value);
458     ELSIF p_attr_id = QP_Modifier_List_Util.G_LIST_TYPE THEN
459         l_MODIFIER_LIST_rec.list_type_code := p_attr_value;
460     ELSIF p_attr_id = QP_Modifier_List_Util.G_PRORATE THEN
461         l_MODIFIER_LIST_rec.prorate_flag := p_attr_value;
462     ELSIF p_attr_id = QP_Modifier_List_Util.G_ROUNDING_FACTOR THEN
463         l_MODIFIER_LIST_rec.rounding_factor := TO_NUMBER(p_attr_value);
464     ELSIF p_attr_id = QP_Modifier_List_Util.G_SHIP_METHOD THEN
465         l_MODIFIER_LIST_rec.ship_method_code := p_attr_value;
466     ELSIF p_attr_id = QP_Modifier_List_Util.G_START_DATE_ACTIVE THEN
467         l_MODIFIER_LIST_rec.start_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
468     ELSIF p_attr_id = QP_Modifier_List_Util.G_TERMS THEN
469         l_MODIFIER_LIST_rec.terms_id := TO_NUMBER(p_attr_value);
470     ELSIF p_attr_id = QP_Modifier_List_Util.G_NAME THEN
471         l_MODIFIER_LIST_rec.name := p_attr_value;
472     ELSIF p_attr_id = QP_Modifier_List_Util.G_DESCRIPTION THEN
473         l_MODIFIER_LIST_rec.Description := p_attr_value;
474     ELSIF p_attr_id = QP_Modifier_List_Util.G_VERSION_NO THEN
475         l_MODIFIER_LIST_rec.Version_no := p_attr_value;
476     ELSIF p_attr_id = QP_Modifier_List_Util.G_PARENT_LIST_HEADER_ID THEN
477         l_MODIFIER_LIST_rec.Parent_list_header_id := TO_NUMBER(p_attr_value);
478     ELSIF p_attr_id = QP_Modifier_List_Util.G_ACTIVE_FLAG THEN
479         l_MODIFIER_LIST_rec.active_flag := p_attr_value;
480     ELSIF p_attr_id = QP_Modifier_List_Util.G_START_DATE_ACTIVE_FIRST THEN
481         l_MODIFIER_LIST_rec.start_date_active_first := TO_DATE(p_attr_value,'DD/MM/YYYY');
482     ELSIF p_attr_id = QP_Modifier_List_Util.G_END_DATE_ACTIVE_FIRST THEN
483         l_MODIFIER_LIST_rec.end_date_active_first := TO_DATE(p_attr_value,'DD/MM/YYYY');
484     ELSIF p_attr_id = QP_Modifier_List_Util.G_START_DATE_ACTIVE_SECOND THEN
485         l_MODIFIER_LIST_rec.start_date_active_second := TO_DATE(p_attr_value,'DD/MM/YYYY');
486     ELSIF p_attr_id = QP_Modifier_List_Util.G_GLOBAL_FLAG THEN
487         l_MODIFIER_LIST_rec.global_flag := p_attr_value;
488     ELSIF p_attr_id = QP_Modifier_List_Util.G_END_DATE_ACTIVE_SECOND THEN
489         l_MODIFIER_LIST_rec.end_date_active_second := TO_DATE(p_attr_value,'DD/MM/YYYY');
490     ELSIF p_attr_id = QP_Modifier_List_Util.G_ACTIVE_DATE_FIRST_TYPE THEN
491         l_MODIFIER_LIST_rec.active_date_first_type := p_attr_value;
492     ELSIF p_attr_id = QP_Modifier_List_Util.G_ACTIVE_DATE_SECOND_TYPE THEN
493         l_MODIFIER_LIST_rec.active_date_second_type := p_attr_value;
494     ELSIF p_attr_id = QP_Modifier_List_Util.G_ASK_FOR THEN
495         l_MODIFIER_LIST_rec.ask_for_flag := p_attr_value;
496 -- Blanket Agreement
497     ELSIF p_attr_id = QP_Modifier_List_Util.G_SOURCE_SYSTEM_CODE THEN
498         l_MODIFIER_LIST_rec.source_system_code := p_attr_value;
499     ELSIF p_attr_id = QP_Modifier_List_Util.G_PTE_CODE THEN
500         l_MODIFIER_LIST_rec.pte_code := p_attr_value;
501     ELSIF p_attr_id = QP_Modifier_List_Util.G_LIST_SOURCE_CODE THEN
502         l_MODIFIER_LIST_rec.list_source_code := p_attr_value;
503     ELSIF p_attr_id = QP_Modifier_List_Util.G_ORIG_SYSTEM_HEADER_REF THEN
504         l_MODIFIER_LIST_rec.orig_system_header_ref := p_attr_value;
505     ELSIF p_attr_id = QP_Modifier_List_Util.G_SHAREABLE_FLAG THEN
506         l_MODIFIER_LIST_rec.shareable_flag := p_attr_value;
507     --added for MOAC
508     ELSIF p_attr_id = QP_Modifier_List_Util.G_ORG_ID THEN
509         l_MODIFIER_LIST_rec.org_id := p_attr_value;
510     ELSIF p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE1
511     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE10
512     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE11
513     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE12
514     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE13
515     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE14
516     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE15
517     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE2
518     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE3
519     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE4
520     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE5
521     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE6
522     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE7
523     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE8
524     OR     p_attr_id = QP_Modifier_List_Util.G_ATTRIBUTE9
525     OR     p_attr_id = QP_Modifier_List_Util.G_CONTEXT
526     THEN
527 
528         l_MODIFIER_LIST_rec.attribute1 := p_attribute1;
529         l_MODIFIER_LIST_rec.attribute10 := p_attribute10;
530         l_MODIFIER_LIST_rec.attribute11 := p_attribute11;
531         l_MODIFIER_LIST_rec.attribute12 := p_attribute12;
532         l_MODIFIER_LIST_rec.attribute13 := p_attribute13;
533         l_MODIFIER_LIST_rec.attribute14 := p_attribute14;
534         l_MODIFIER_LIST_rec.attribute15 := p_attribute15;
535         l_MODIFIER_LIST_rec.attribute2 := p_attribute2;
536         l_MODIFIER_LIST_rec.attribute3 := p_attribute3;
537         l_MODIFIER_LIST_rec.attribute4 := p_attribute4;
538         l_MODIFIER_LIST_rec.attribute5 := p_attribute5;
539         l_MODIFIER_LIST_rec.attribute6 := p_attribute6;
540         l_MODIFIER_LIST_rec.attribute7 := p_attribute7;
541         l_MODIFIER_LIST_rec.attribute8 := p_attribute8;
542         l_MODIFIER_LIST_rec.attribute9 := p_attribute9;
543         l_MODIFIER_LIST_rec.context    := p_context;
544 
545     ELSE
546 
547 OE_debug_Pub.add('else returned');
548         --  Unexpected error, unrecognized attribute
549 
550         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
551         THEN
552             OE_MSG_PUB.Add_Exc_Msg
553             (   G_PKG_NAME
554             ,   'Change_Attribute'
555             ,   'Unrecognized attribute'
556             );
557         END IF;
558 
559         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
560 
561     END IF;
562 
563     --  Set Operation.
564 
565     IF FND_API.To_Boolean(l_MODIFIER_LIST_rec.db_flag) THEN
566         l_MODIFIER_LIST_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
567     ELSE
568         l_MODIFIER_LIST_rec.operation := QP_GLOBALS.G_OPR_CREATE;
569     END IF;
570 
571     --  Call QP_Modifiers_PVT.Process_MODIFIERS
572 
573  oe_debug_pub.add('name in QPXF = ' || l_MODIFIER_LIST_rec.name);
574  oe_debug_pub.add('curr in QPXF = ' || l_MODIFIER_LIST_rec.currency_code);
575 
576     QP_Modifiers_PVT.Process_MODIFIERS
577     (   p_api_version_number          => 1.0
578     ,   p_init_msg_list               => FND_API.G_TRUE
579     ,   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
580     ,   x_return_status               => l_return_status
581     ,   x_msg_count                   => x_msg_count
582     ,   x_msg_data                    => x_msg_data
583     ,   p_control_rec                 => l_control_rec
584     ,   p_MODIFIER_LIST_rec           => l_MODIFIER_LIST_rec
585     ,   p_old_MODIFIER_LIST_rec       => l_old_MODIFIER_LIST_rec
586     ,   x_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
587     ,   x_MODIFIERS_tbl               => l_x_MODIFIERS_tbl
588     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
589     ,   x_PRICING_ATTR_tbl            => l_x_PRICING_ATTR_tbl
590     );
591 
592  oe_debug_pub.add('name after QPXF = ' || l_x_MODIFIER_LIST_rec.name);
593  oe_debug_pub.add('curr after QPXF = ' || l_x_MODIFIER_LIST_rec.currency_code);
594 
595     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
596         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
597     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
598         RAISE FND_API.G_EXC_ERROR;
599     END IF;
600 
601 
602     --  Init OUT parameters to missing.
603 
604     x_attribute1                   := FND_API.G_MISS_CHAR;
605     x_attribute10                  := FND_API.G_MISS_CHAR;
606     x_attribute11                  := FND_API.G_MISS_CHAR;
607     x_attribute12                  := FND_API.G_MISS_CHAR;
608     x_attribute13                  := FND_API.G_MISS_CHAR;
609     x_attribute14                  := FND_API.G_MISS_CHAR;
610     x_attribute15                  := FND_API.G_MISS_CHAR;
611     x_attribute2                   := FND_API.G_MISS_CHAR;
612     x_attribute3                   := FND_API.G_MISS_CHAR;
613     x_attribute4                   := FND_API.G_MISS_CHAR;
614     x_attribute5                   := FND_API.G_MISS_CHAR;
615     x_attribute6                   := FND_API.G_MISS_CHAR;
616     x_attribute7                   := FND_API.G_MISS_CHAR;
617     x_attribute8                   := FND_API.G_MISS_CHAR;
618     x_attribute9                   := FND_API.G_MISS_CHAR;
619     x_automatic_flag               := FND_API.G_MISS_CHAR;
620     x_comments                     := FND_API.G_MISS_CHAR;
621     x_context                      := FND_API.G_MISS_CHAR;
622     x_currency_code                := FND_API.G_MISS_CHAR;
623     x_discount_lines_flag          := FND_API.G_MISS_CHAR;
624     x_end_date_active              := FND_API.G_MISS_DATE;
625     x_freight_terms_code           := FND_API.G_MISS_CHAR;
626     x_gsa_indicator                := FND_API.G_MISS_CHAR;
627     x_list_header_id               := FND_API.G_MISS_NUM;
628     x_list_type_code               := FND_API.G_MISS_CHAR;
629     x_prorate_flag                 := FND_API.G_MISS_CHAR;
630     x_rounding_factor              := FND_API.G_MISS_NUM;
631     x_ship_method_code             := FND_API.G_MISS_CHAR;
632     x_start_date_active            := FND_API.G_MISS_DATE;
633     x_terms_id                     := FND_API.G_MISS_NUM;
634     x_source_system_code           := FND_API.G_MISS_CHAR;
635     x_pte_code                     := FND_API.G_MISS_CHAR;
636     x_active_flag                  := FND_API.G_MISS_CHAR;
637     x_parent_list_header_id        := FND_API.G_MISS_NUM;
638     x_start_date_active_first      := FND_API.G_MISS_DATE;
639     x_end_date_active_first        := FND_API.G_MISS_DATE;
640     x_active_date_first_type       := FND_API.G_MISS_CHAR;
641     x_start_date_active_second     := FND_API.G_MISS_DATE;
642     x_global_flag                  := FND_API.G_MISS_CHAR;
643     x_end_date_active_second       := FND_API.G_MISS_DATE;
644     x_active_date_second_type      := FND_API.G_MISS_CHAR;
645     x_automatic                    := FND_API.G_MISS_CHAR;
646     x_currency                     := FND_API.G_MISS_CHAR;
647     x_discount_lines               := FND_API.G_MISS_CHAR;
648     x_freight_terms                := FND_API.G_MISS_CHAR;
649     x_list_header                  := FND_API.G_MISS_CHAR;
650     x_list_type                    := FND_API.G_MISS_CHAR;
651     x_prorate                      := FND_API.G_MISS_CHAR;
652     x_ship_method                  := FND_API.G_MISS_CHAR;
653     x_terms                        := FND_API.G_MISS_CHAR;
654     x_ask_for_flag                 := FND_API.G_MISS_CHAR;
655     x_name                         := FND_API.G_MISS_CHAR;
656     x_description                  := FND_API.G_MISS_CHAR;
657     x_version_no                   := FND_API.G_MISS_CHAR;
658     x_list_source_code		   := FND_API.G_MISS_CHAR;
659     x_orig_system_header_ref       := FND_API.G_MISS_CHAR;
660     x_shareable_flag		   := FND_API.G_MISS_CHAR;
661     --added for MOAC
662     x_org_id		           := FND_API.G_MISS_NUM;
663 
664     --  Load display out parameters if any
665 
666     l_MODIFIER_LIST_val_rec := QP_Modifier_List_Util.Get_Values
667     (   p_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
668     ,   p_old_MODIFIER_LIST_rec       => l_MODIFIER_LIST_rec
669     );
670 
671     --  Return changed attributes.
672 
673     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute1,
674                             l_MODIFIER_LIST_rec.attribute1)
675     THEN
676         x_attribute1 := l_x_MODIFIER_LIST_rec.attribute1;
677     END IF;
678 
679     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute10,
680                             l_MODIFIER_LIST_rec.attribute10)
681     THEN
682         x_attribute10 := l_x_MODIFIER_LIST_rec.attribute10;
683     END IF;
684 
685     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute11,
686                             l_MODIFIER_LIST_rec.attribute11)
687     THEN
688         x_attribute11 := l_x_MODIFIER_LIST_rec.attribute11;
689     END IF;
690 
691     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute12,
692                             l_MODIFIER_LIST_rec.attribute12)
693     THEN
694         x_attribute12 := l_x_MODIFIER_LIST_rec.attribute12;
695     END IF;
696 
697     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute13,
698                             l_MODIFIER_LIST_rec.attribute13)
699     THEN
700         x_attribute13 := l_x_MODIFIER_LIST_rec.attribute13;
701     END IF;
702 
703     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute14,
704                             l_MODIFIER_LIST_rec.attribute14)
705     THEN
706         x_attribute14 := l_x_MODIFIER_LIST_rec.attribute14;
707     END IF;
708 
709     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute15,
710                             l_MODIFIER_LIST_rec.attribute15)
711     THEN
712         x_attribute15 := l_x_MODIFIER_LIST_rec.attribute15;
713     END IF;
714 
715     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute2,
716                             l_MODIFIER_LIST_rec.attribute2)
717     THEN
718         x_attribute2 := l_x_MODIFIER_LIST_rec.attribute2;
719     END IF;
720 
721     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute3,
722                             l_MODIFIER_LIST_rec.attribute3)
723     THEN
724         x_attribute3 := l_x_MODIFIER_LIST_rec.attribute3;
725     END IF;
726 
727     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute4,
728                             l_MODIFIER_LIST_rec.attribute4)
729     THEN
730         x_attribute4 := l_x_MODIFIER_LIST_rec.attribute4;
731     END IF;
732 
733     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute5,
734                             l_MODIFIER_LIST_rec.attribute5)
735     THEN
736         x_attribute5 := l_x_MODIFIER_LIST_rec.attribute5;
737     END IF;
738 
739     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute6,
740                             l_MODIFIER_LIST_rec.attribute6)
741     THEN
742         x_attribute6 := l_x_MODIFIER_LIST_rec.attribute6;
743     END IF;
744 
745     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute7,
746                             l_MODIFIER_LIST_rec.attribute7)
747     THEN
748         x_attribute7 := l_x_MODIFIER_LIST_rec.attribute7;
749     END IF;
750 
751     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute8,
752                             l_MODIFIER_LIST_rec.attribute8)
753     THEN
754         x_attribute8 := l_x_MODIFIER_LIST_rec.attribute8;
755     END IF;
756 
757     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.attribute9,
758                             l_MODIFIER_LIST_rec.attribute9)
759     THEN
760         x_attribute9 := l_x_MODIFIER_LIST_rec.attribute9;
761     END IF;
762 
763     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.automatic_flag,
764                             l_MODIFIER_LIST_rec.automatic_flag)
765     THEN
766         x_automatic_flag := l_x_MODIFIER_LIST_rec.automatic_flag;
767         x_automatic := l_MODIFIER_LIST_val_rec.automatic;
768     END IF;
769 
770     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.comments,
771                             l_MODIFIER_LIST_rec.comments)
772     THEN
773         x_comments := l_x_MODIFIER_LIST_rec.comments;
774     END IF;
775 
776     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.context,
777                             l_MODIFIER_LIST_rec.context)
778     THEN
779         x_context := l_x_MODIFIER_LIST_rec.context;
780     END IF;
781 
782     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.currency_code,
783                             l_MODIFIER_LIST_rec.currency_code)
784     THEN
785         x_currency_code := l_x_MODIFIER_LIST_rec.currency_code;
786         x_currency := l_MODIFIER_LIST_val_rec.currency;
787     END IF;
788 
789     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.discount_lines_flag,
790                             l_MODIFIER_LIST_rec.discount_lines_flag)
791     THEN
792         x_discount_lines_flag := l_x_MODIFIER_LIST_rec.discount_lines_flag;
793         x_discount_lines := l_MODIFIER_LIST_val_rec.discount_lines;
794     END IF;
795 
796     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.end_date_active,
797                             l_MODIFIER_LIST_rec.end_date_active)
798     THEN
799         x_end_date_active := l_x_MODIFIER_LIST_rec.end_date_active;
800     END IF;
801 
802     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.freight_terms_code,
803                             l_MODIFIER_LIST_rec.freight_terms_code)
804     THEN
805         x_freight_terms_code := l_x_MODIFIER_LIST_rec.freight_terms_code;
806         x_freight_terms := l_MODIFIER_LIST_val_rec.freight_terms;
807     END IF;
808 
809     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.gsa_indicator,
810                             l_MODIFIER_LIST_rec.gsa_indicator)
811     THEN
812         x_gsa_indicator := l_x_MODIFIER_LIST_rec.gsa_indicator;
813     END IF;
814 
815     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.list_header_id,
816                             l_MODIFIER_LIST_rec.list_header_id)
817     THEN
818         x_list_header_id := l_x_MODIFIER_LIST_rec.list_header_id;
819         x_list_header := l_MODIFIER_LIST_val_rec.list_header;
820     END IF;
821 
822     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.list_type_code,
823                             l_MODIFIER_LIST_rec.list_type_code)
824     THEN
825         x_list_type_code := l_x_MODIFIER_LIST_rec.list_type_code;
826         x_list_type := l_MODIFIER_LIST_val_rec.list_type;
827     END IF;
828 
829     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.prorate_flag,
830                             l_MODIFIER_LIST_rec.prorate_flag)
831     THEN
832         x_prorate_flag := l_x_MODIFIER_LIST_rec.prorate_flag;
833         x_prorate := l_MODIFIER_LIST_val_rec.prorate;
834     END IF;
835 
836     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.rounding_factor,
837                             l_MODIFIER_LIST_rec.rounding_factor)
838     THEN
839         x_rounding_factor := l_x_MODIFIER_LIST_rec.rounding_factor;
840     END IF;
841 
842     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.ship_method_code,
843                             l_MODIFIER_LIST_rec.ship_method_code)
844     THEN
845         x_ship_method_code := l_x_MODIFIER_LIST_rec.ship_method_code;
846         x_ship_method := l_MODIFIER_LIST_val_rec.ship_method;
847     END IF;
848 
849     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.start_date_active,
850                             l_MODIFIER_LIST_rec.start_date_active)
851     THEN
852         x_start_date_active := l_x_MODIFIER_LIST_rec.start_date_active;
853     END IF;
854 
855     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.terms_id,
856                             l_MODIFIER_LIST_rec.terms_id)
857     THEN
858         x_terms_id := l_x_MODIFIER_LIST_rec.terms_id;
859         x_terms := l_MODIFIER_LIST_val_rec.terms;
860     END IF;
861 
862     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.source_system_code,
863                             l_MODIFIER_LIST_rec.source_system_code)
864     THEN
865         x_source_system_code := l_x_MODIFIER_LIST_rec.source_system_code;
866     END IF;
867 
868     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.pte_code,
869                             l_MODIFIER_LIST_rec.pte_code)
870     THEN
871         x_pte_code := l_x_MODIFIER_LIST_rec.pte_code;
872     END IF;
873 
874     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.active_flag,
875                             l_MODIFIER_LIST_rec.active_flag)
876     THEN
877         x_active_flag := l_x_MODIFIER_LIST_rec.active_flag;
878     END IF;
879 
880     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.parent_list_header_id,
881                             l_MODIFIER_LIST_rec.parent_list_header_id)
882     THEN
883         x_parent_list_header_id := l_x_MODIFIER_LIST_rec.parent_list_header_id;
884     END IF;
885 
886     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.start_date_active_first,
887                             l_MODIFIER_LIST_rec.start_date_active_first)
888     THEN
889         x_start_date_active_first := l_x_MODIFIER_LIST_rec.start_date_active_first;
890     END IF;
891 
892     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.end_date_active_first,
893                             l_MODIFIER_LIST_rec.end_date_active_first)
894     THEN
895         x_end_date_active_first := l_x_MODIFIER_LIST_rec.end_date_active_first;
896     END IF;
897 
898     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.active_date_first_type,
899                             l_MODIFIER_LIST_rec.active_date_first_type)
900     THEN
901         x_active_date_first_type := l_x_MODIFIER_LIST_rec.active_date_first_type;
902     END IF;
903 
904     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.start_date_active_second,
905                             l_MODIFIER_LIST_rec.start_date_active_second)
906     THEN
907         x_start_date_active_second := l_x_MODIFIER_LIST_rec.start_date_active_second;
908     END IF;
909 
910     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.global_flag,
911                             l_MODIFIER_LIST_rec.global_flag)
912     THEN
913         x_global_flag := l_x_MODIFIER_LIST_rec.global_flag;
914     END IF;
915 
916 
917     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.end_date_active_second,
918                             l_MODIFIER_LIST_rec.end_date_active_second)
919     THEN
920         x_end_date_active_second := l_x_MODIFIER_LIST_rec.end_date_active_second;
921     END IF;
922 
923     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.active_date_second_type,
924                             l_MODIFIER_LIST_rec.active_date_second_type)
925     THEN
926         x_active_date_second_type := l_x_MODIFIER_LIST_rec.active_date_second_type;
927     END IF;
928 
929     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.ask_for_flag,
930                             l_MODIFIER_LIST_rec.ask_for_flag)
931     THEN
932         x_ask_for_flag := l_x_MODIFIER_LIST_rec.ask_for_flag;
933     END IF;
934 
935     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.name,
936                             l_MODIFIER_LIST_rec.name)
937     THEN
938         x_name := l_x_MODIFIER_LIST_rec.name;
939     END IF;
940 
941     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.description,
942                             l_MODIFIER_LIST_rec.description)
943     THEN
944         x_description := l_x_MODIFIER_LIST_rec.description;
945     END IF;
946 
947     IF NOT QP_GLOBALS.Equal(l_x_MODIFIER_LIST_rec.version_no,
948                             l_MODIFIER_LIST_rec.version_no)
949     THEN
950         x_version_no := l_x_MODIFIER_LIST_rec.version_no;
951     END IF;
952 
953     IF NOT QP_GLOBALS.Equal (l_x_MODIFIER_LIST_rec.list_source_code,
954                              l_MODIFIER_LIST_rec.list_source_code)
955     THEN
956         x_list_source_code := l_x_MODIFIER_LIST_rec.list_source_code;
957     END IF;
958 
959     IF NOT QP_GLOBALS.Equal (l_x_MODIFIER_LIST_rec.orig_system_header_ref,
960                              l_MODIFIER_LIST_rec.orig_system_header_ref)
961     THEN
962         x_orig_system_header_ref := l_x_MODIFIER_LIST_rec.orig_system_header_ref;
963     END IF;
964 
965     IF NOT QP_GLOBALS.Equal (l_x_MODIFIER_LIST_rec.shareable_flag,
966                              l_MODIFIER_LIST_rec.shareable_flag)
967     THEN
968         x_shareable_flag := l_x_MODIFIER_LIST_rec.shareable_flag;
969     END IF;
970 
971     --added for MOAC
972     IF NOT QP_GLOBALS.Equal (l_x_MODIFIER_LIST_rec.org_id,
973                              l_MODIFIER_LIST_rec.org_id)
974     THEN
975         x_org_id := l_x_MODIFIER_LIST_rec.org_id;
976     END IF;
977 
978     --  Write to cache.
979 
980     Write_MODIFIER_LIST
981     (   p_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
982     );
983 
984     --  Set return status.
985 
986     x_return_status := FND_API.G_RET_STS_SUCCESS;
987 
988     --  Get message count and data
989 
990     OE_MSG_PUB.Count_And_Get
991     (   p_count                       => x_msg_count
992     ,   p_data                        => x_msg_data
993     );
994 
995     oe_debug_pub.add('End change_attibutes in QPXFMLHB');
996 
997 EXCEPTION
998 
999     WHEN FND_API.G_EXC_ERROR THEN
1000 
1001         x_return_status := FND_API.G_RET_STS_ERROR;
1002 
1003         --  Get message count and data
1004 
1005         OE_MSG_PUB.Count_And_Get
1006         (   p_count                       => x_msg_count
1007         ,   p_data                        => x_msg_data
1008         );
1009 
1010     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1011 
1012         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1013 
1014         --  Get message count and data
1015 
1016         OE_MSG_PUB.Count_And_Get
1017         (   p_count                       => x_msg_count
1018         ,   p_data                        => x_msg_data
1019         );
1020 
1021     WHEN OTHERS THEN
1022 
1023         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1024 
1025         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1026         THEN
1027             OE_MSG_PUB.Add_Exc_Msg
1028             (   G_PKG_NAME
1029             ,   'Change_Attribute'
1030             );
1031         END IF;
1032 
1033         --  Get message count and data
1034 
1035         OE_MSG_PUB.Count_And_Get
1036         (   p_count                       => x_msg_count
1037         ,   p_data                        => x_msg_data
1038         );
1039 
1040     oe_debug_pub.add('Exp change_attibutes in QPXFMLHB');
1041 END Change_Attribute;
1042 
1043 --  Procedure       Validate_And_Write
1044 --
1045 
1046 PROCEDURE Validate_And_Write
1047 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1048 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1049 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1050 ,   p_list_header_id                IN  NUMBER
1051 ,   x_creation_date                 OUT NOCOPY /* file.sql.39 change */ DATE
1052 ,   x_created_by                    OUT NOCOPY /* file.sql.39 change */ NUMBER
1053 ,   x_last_update_date              OUT NOCOPY /* file.sql.39 change */ DATE
1054 ,   x_last_updated_by               OUT NOCOPY /* file.sql.39 change */ NUMBER
1055 ,   x_last_update_login             OUT NOCOPY /* file.sql.39 change */ NUMBER
1056 )
1057 IS
1058 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
1059 l_old_MODIFIER_LIST_rec       QP_Modifiers_PUB.Modifier_List_Rec_Type;
1060 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1061 l_return_status               VARCHAR2(1);
1062 l_x_MODIFIER_LIST_rec         QP_Modifiers_PUB.Modifier_List_Rec_Type;
1063 l_x_MODIFIERS_rec             QP_Modifiers_PUB.Modifiers_Rec_Type;
1064 l_x_MODIFIERS_tbl             QP_Modifiers_PUB.Modifiers_Tbl_Type;
1065 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1066 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1067 l_x_PRICING_ATTR_rec          QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1068 l_x_PRICING_ATTR_tbl          QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1069 BEGIN
1070 
1071     oe_debug_pub.add('BEGIN validate_and_write in QPXFMLHB');
1072     --  Set control flags.
1073 
1074     l_control_rec.controlled_operation := TRUE;
1075     l_control_rec.validate_entity      := TRUE;
1076     l_control_rec.write_to_DB          := TRUE;
1077 
1078     l_control_rec.default_attributes   := FALSE;
1079     l_control_rec.change_attributes    := FALSE;
1080     l_control_rec.process              := FALSE;
1081 
1082     --  Instruct API to retain its caches
1083 
1084     l_control_rec.clear_api_cache      := FALSE;
1085     l_control_rec.clear_api_requests   := FALSE;
1086 
1087     --  Read MODIFIER_LIST from cache
1088 
1089     l_old_MODIFIER_LIST_rec := Get_MODIFIER_LIST
1090     (   p_db_record                   => TRUE
1091     ,   p_list_header_id              => p_list_header_id
1092     );
1093 
1094     l_MODIFIER_LIST_rec := Get_MODIFIER_LIST
1095     (   p_db_record                   => FALSE
1096     ,   p_list_header_id              => p_list_header_id
1097     );
1098 
1099     --  Set Operation.
1100 
1101     IF FND_API.To_Boolean(l_MODIFIER_LIST_rec.db_flag) THEN
1102         l_MODIFIER_LIST_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
1103     ELSE
1104         l_MODIFIER_LIST_rec.operation := QP_GLOBALS.G_OPR_CREATE;
1105     END IF;
1106 
1107     --  Call QP_Modifiers_PVT.Process_MODIFIERS
1108 
1109     QP_Modifiers_PVT.Process_MODIFIERS
1110     (   p_api_version_number          => 1.0
1111     ,   p_init_msg_list               => FND_API.G_TRUE
1112     ,   x_return_status               => l_return_status
1113     ,   x_msg_count                   => x_msg_count
1114     ,   x_msg_data                    => x_msg_data
1115     ,   p_control_rec                 => l_control_rec
1116     ,   p_MODIFIER_LIST_rec           => l_MODIFIER_LIST_rec
1117     ,   p_old_MODIFIER_LIST_rec       => l_old_MODIFIER_LIST_rec
1118     ,   x_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
1119     ,   x_MODIFIERS_tbl               => l_x_MODIFIERS_tbl
1120     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1121     ,   x_PRICING_ATTR_tbl            => l_x_PRICING_ATTR_tbl
1122     );
1123 
1124     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1125         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1126     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1127         RAISE FND_API.G_EXC_ERROR;
1128     END IF;
1129 
1130 
1131     --  Load OUT parameters.
1132 
1133 
1134     x_creation_date                := l_x_MODIFIER_LIST_rec.creation_date;
1135     x_created_by                   := l_x_MODIFIER_LIST_rec.created_by;
1136     x_last_update_date             := l_x_MODIFIER_LIST_rec.last_update_date;
1137     x_last_updated_by              := l_x_MODIFIER_LIST_rec.last_updated_by;
1138     x_last_update_login            := l_x_MODIFIER_LIST_rec.last_update_login;
1139 
1140     --  Clear MODIFIER_LIST record cache
1141 
1142     Clear_MODIFIER_LIST;
1143 
1144     --  Keep track of performed operations.
1145 
1146     l_old_MODIFIER_LIST_rec.operation := l_MODIFIER_LIST_rec.operation;
1147 
1148 
1149     --  Set return status.
1150 
1151     x_return_status := FND_API.G_RET_STS_SUCCESS;
1152 
1153     --  Get message count and data
1154 
1155     OE_MSG_PUB.Count_And_Get
1156     (   p_count                       => x_msg_count
1157     ,   p_data                        => x_msg_data
1158     );
1159 
1160 
1161 EXCEPTION
1162 
1163     WHEN FND_API.G_EXC_ERROR THEN
1164 
1165         x_return_status := FND_API.G_RET_STS_ERROR;
1166 
1167         --  Get message count and data
1168 
1169         OE_MSG_PUB.Count_And_Get
1170         (   p_count                       => x_msg_count
1171         ,   p_data                        => x_msg_data
1172         );
1173 
1174     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1175 
1176         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1177 
1178         --  Get message count and data
1179 
1180         OE_MSG_PUB.Count_And_Get
1181         (   p_count                       => x_msg_count
1182         ,   p_data                        => x_msg_data
1183         );
1184 
1185     WHEN OTHERS THEN
1186 
1187         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1188 
1189         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1190         THEN
1191             OE_MSG_PUB.Add_Exc_Msg
1192             (   G_PKG_NAME
1193             ,   'Validate_And_Write'
1194             );
1195         END IF;
1196 
1197         --  Get message count and data
1198 
1199         OE_MSG_PUB.Count_And_Get
1200         (   p_count                       => x_msg_count
1201         ,   p_data                        => x_msg_data
1202         );
1203     oe_debug_pub.add('END validate_and_write in QPXFMLHB');
1204 
1205 END Validate_And_Write;
1206 
1207 --  Procedure       Delete_Row
1208 --
1209 
1210 PROCEDURE Delete_Row
1211 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1212 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1213 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1214 ,   p_list_header_id                IN  NUMBER
1215 )
1216 IS
1217 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
1218 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1219 l_return_status               VARCHAR2(1);
1220 l_x_MODIFIER_LIST_rec         QP_Modifiers_PUB.Modifier_List_Rec_Type;
1221 l_x_MODIFIERS_rec             QP_Modifiers_PUB.Modifiers_Rec_Type;
1222 l_x_MODIFIERS_tbl             QP_Modifiers_PUB.Modifiers_Tbl_Type;
1223 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1224 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1225 l_x_PRICING_ATTR_rec          QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1226 l_x_PRICING_ATTR_tbl          QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1227 BEGIN
1228 
1229     oe_debug_pub.add('BEGIN delete_row in QPXFMLHB');
1230     --  Set control flags.
1231 
1232     l_control_rec.controlled_operation := TRUE;
1233     l_control_rec.validate_entity      := TRUE;
1234     l_control_rec.write_to_DB          := TRUE;
1235 
1236     l_control_rec.default_attributes   := FALSE;
1237     l_control_rec.change_attributes    := FALSE;
1238     l_control_rec.process              := FALSE;
1239 
1240     --  Instruct API to retain its caches
1241 
1242     l_control_rec.clear_api_cache      := FALSE;
1243     l_control_rec.clear_api_requests   := FALSE;
1244 
1245     --  Read DB record from cache
1246 
1247     l_MODIFIER_LIST_rec := Get_MODIFIER_LIST
1248     (   p_db_record                   => TRUE
1249     ,   p_list_header_id              => p_list_header_id
1250     );
1251 
1252     --  Set Operation.
1253 
1254     l_MODIFIER_LIST_rec.operation := QP_GLOBALS.G_OPR_DELETE;
1255 
1256     --  Call QP_Modifiers_PVT.Process_MODIFIERS
1257 
1258     QP_Modifiers_PVT.Process_MODIFIERS
1259     (   p_api_version_number          => 1.0
1260     ,   p_init_msg_list               => FND_API.G_TRUE
1261     ,   x_return_status               => l_return_status
1262     ,   x_msg_count                   => x_msg_count
1263     ,   x_msg_data                    => x_msg_data
1264     ,   p_control_rec                 => l_control_rec
1265     ,   p_MODIFIER_LIST_rec           => l_MODIFIER_LIST_rec
1266     ,   x_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
1267     ,   x_MODIFIERS_tbl               => l_x_MODIFIERS_tbl
1268     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1269     ,   x_PRICING_ATTR_tbl            => l_x_PRICING_ATTR_tbl
1270     );
1271 
1272     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1273         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1274     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1275         RAISE FND_API.G_EXC_ERROR;
1276     END IF;
1277 
1278 
1279     --  Clear MODIFIER_LIST record cache
1280 
1281     Clear_MODIFIER_LIST;
1282 
1283     --  Set return status.
1284 
1285     x_return_status := FND_API.G_RET_STS_SUCCESS;
1286 
1287     --  Get message count and data
1288 
1289     OE_MSG_PUB.Count_And_Get
1290     (   p_count                       => x_msg_count
1291     ,   p_data                        => x_msg_data
1292     );
1293 
1294 
1295 EXCEPTION
1296 
1297     WHEN FND_API.G_EXC_ERROR THEN
1298 
1299         x_return_status := FND_API.G_RET_STS_ERROR;
1300 
1301         --  Get message count and data
1302 
1303         OE_MSG_PUB.Count_And_Get
1304         (   p_count                       => x_msg_count
1305         ,   p_data                        => x_msg_data
1306         );
1307 
1308     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1309 
1310         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1311 
1312         --  Get message count and data
1313 
1314         OE_MSG_PUB.Count_And_Get
1315         (   p_count                       => x_msg_count
1316         ,   p_data                        => x_msg_data
1317         );
1318 
1319     WHEN OTHERS THEN
1320 
1321         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1322 
1323         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1324         THEN
1325             OE_MSG_PUB.Add_Exc_Msg
1326             (   G_PKG_NAME
1327             ,   'Delete_Row'
1328             );
1329         END IF;
1330 
1331         --  Get message count and data
1332 
1333         OE_MSG_PUB.Count_And_Get
1334         (   p_count                       => x_msg_count
1335         ,   p_data                        => x_msg_data
1336         );
1337 
1338     oe_debug_pub.add('END delete_row in QPXFMLHB');
1339 END Delete_Row;
1340 
1341 --  Procedure       Process_Entity
1342 --
1343 
1344 PROCEDURE Process_Entity
1345 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1346 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1347 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1348 )
1349 IS
1350 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1351 l_return_status               VARCHAR2(1);
1352 l_x_MODIFIER_LIST_rec         QP_Modifiers_PUB.Modifier_List_Rec_Type;
1353 l_x_MODIFIERS_rec             QP_Modifiers_PUB.Modifiers_Rec_Type;
1354 l_x_MODIFIERS_tbl             QP_Modifiers_PUB.Modifiers_Tbl_Type;
1355 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1356 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1357 l_x_PRICING_ATTR_rec          QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1358 l_x_PRICING_ATTR_tbl          QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1359 BEGIN
1360 
1361     oe_debug_pub.add('BEGIN process_entity in QPXFMLHB');
1362     --  Set control flags.
1363 
1364     l_control_rec.controlled_operation := TRUE;
1365     l_control_rec.process              := TRUE;
1366     l_control_rec.process_entity       := QP_GLOBALS.G_ENTITY_MODIFIER_LIST;
1367 
1368     l_control_rec.default_attributes   := FALSE;
1369     l_control_rec.change_attributes    := FALSE;
1370     l_control_rec.validate_entity      := FALSE;
1371     l_control_rec.write_to_DB          := FALSE;
1372 
1373     --  Instruct API to clear its request table
1374 
1375     l_control_rec.clear_api_cache      := FALSE;
1376     l_control_rec.clear_api_requests   := FALSE;
1377 
1378     --  Call QP_Modifiers_PVT.Process_MODIFIERS
1379 
1380     QP_Modifiers_PVT.Process_MODIFIERS
1381     (   p_api_version_number          => 1.0
1382     ,   p_init_msg_list               => FND_API.G_TRUE
1383     ,   x_return_status               => l_return_status
1384     ,   x_msg_count                   => x_msg_count
1385     ,   x_msg_data                    => x_msg_data
1386     ,   p_control_rec                 => l_control_rec
1387     ,   x_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
1388     ,   x_MODIFIERS_tbl               => l_x_MODIFIERS_tbl
1389     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1390     ,   x_PRICING_ATTR_tbl            => l_x_PRICING_ATTR_tbl
1391     );
1392 
1393     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1394         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1395     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1396         RAISE FND_API.G_EXC_ERROR;
1397     END IF;
1398 
1399 
1400     --  Set return status.
1401 
1402     x_return_status := FND_API.G_RET_STS_SUCCESS;
1403 
1404     --  Get message count and data
1405 
1406     OE_MSG_PUB.Count_And_Get
1407     (   p_count                       => x_msg_count
1408     ,   p_data                        => x_msg_data
1409     );
1410 
1411 
1412 EXCEPTION
1413 
1414     WHEN FND_API.G_EXC_ERROR THEN
1415 
1416         x_return_status := FND_API.G_RET_STS_ERROR;
1417 
1418         --  Get message count and data
1419 
1420         OE_MSG_PUB.Count_And_Get
1421         (   p_count                       => x_msg_count
1422         ,   p_data                        => x_msg_data
1423         );
1424 
1425     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1426 
1427         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1428 
1429         --  Get message count and data
1430 
1431         OE_MSG_PUB.Count_And_Get
1432         (   p_count                       => x_msg_count
1433         ,   p_data                        => x_msg_data
1434         );
1435 
1436     WHEN OTHERS THEN
1437 
1438         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1439 
1440         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1441         THEN
1442             OE_MSG_PUB.Add_Exc_Msg
1443             (   G_PKG_NAME
1444             ,   'Process_Entity'
1445             );
1446         END IF;
1447 
1448         --  Get message count and data
1449 
1450         OE_MSG_PUB.Count_And_Get
1451         (   p_count                       => x_msg_count
1452         ,   p_data                        => x_msg_data
1453         );
1454 
1455     oe_debug_pub.add('END process_entity in QPXFMLHB');
1456 END Process_Entity;
1457 
1458 --  Procedure       Process_Object
1459 --
1460 
1461 PROCEDURE Process_Object
1462 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1463 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1464 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1465 )
1466 IS
1467 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1468 l_return_status               VARCHAR2(1);
1469 l_x_MODIFIER_LIST_rec         QP_Modifiers_PUB.Modifier_List_Rec_Type;
1470 l_x_MODIFIERS_rec             QP_Modifiers_PUB.Modifiers_Rec_Type;
1471 l_x_MODIFIERS_tbl             QP_Modifiers_PUB.Modifiers_Tbl_Type;
1472 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1473 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1474 l_x_PRICING_ATTR_rec          QP_Modifiers_PUB.Pricing_Attr_Rec_Type;
1475 l_x_PRICING_ATTR_tbl          QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1476 BEGIN
1477 
1478     oe_debug_pub.add('BEGIN process_object in QPXFMLHB');
1479     --  Set control flags.
1480 
1481     l_control_rec.controlled_operation := TRUE;
1482     l_control_rec.process              := TRUE;
1483     l_control_rec.process_entity       := QP_GLOBALS.G_ENTITY_ALL;
1484 
1485     l_control_rec.default_attributes   := FALSE;
1486     l_control_rec.change_attributes    := FALSE;
1487     l_control_rec.validate_entity      := FALSE;
1488     l_control_rec.write_to_DB          := FALSE;
1489 
1490     --  Instruct API to clear its request table
1491 
1492     l_control_rec.clear_api_cache      := FALSE;
1493     l_control_rec.clear_api_requests   := TRUE;
1494 
1495     --  Call QP_Modifiers_PVT.Process_MODIFIERS
1496 
1497     QP_Modifiers_PVT.Process_MODIFIERS
1498     (   p_api_version_number          => 1.0
1499     ,   p_init_msg_list               => FND_API.G_TRUE
1500     ,   x_return_status               => l_return_status
1501     ,   x_msg_count                   => x_msg_count
1502     ,   x_msg_data                    => x_msg_data
1503     ,   p_control_rec                 => l_control_rec
1504     ,   x_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
1505     ,   x_MODIFIERS_tbl               => l_x_MODIFIERS_tbl
1506     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1507     ,   x_PRICING_ATTR_tbl            => l_x_PRICING_ATTR_tbl
1508     );
1509 
1510     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1511         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1512     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1513         RAISE FND_API.G_EXC_ERROR;
1514     END IF;
1515 
1516 
1517     --  Set return status.
1518 
1519     x_return_status := FND_API.G_RET_STS_SUCCESS;
1520 
1521     --  Get message count and data
1522 
1523     OE_MSG_PUB.Count_And_Get
1524     (   p_count                       => x_msg_count
1525     ,   p_data                        => x_msg_data
1526     );
1527 
1528 
1529 EXCEPTION
1530 
1531     WHEN FND_API.G_EXC_ERROR THEN
1532 
1533         x_return_status := FND_API.G_RET_STS_ERROR;
1534 
1535         --  Get message count and data
1536 
1537         OE_MSG_PUB.Count_And_Get
1538         (   p_count                       => x_msg_count
1539         ,   p_data                        => x_msg_data
1540         );
1541 
1542     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1543 
1544         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1545 
1546         --  Get message count and data
1547 
1548         OE_MSG_PUB.Count_And_Get
1549         (   p_count                       => x_msg_count
1550         ,   p_data                        => x_msg_data
1551         );
1552 
1553     WHEN OTHERS THEN
1554 
1555         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1556 
1557         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1558         THEN
1559             OE_MSG_PUB.Add_Exc_Msg
1560             (   G_PKG_NAME
1561             ,   'Process_Object'
1562             );
1563         END IF;
1564 
1565         --  Get message count and data
1566 
1567         OE_MSG_PUB.Count_And_Get
1568         (   p_count                       => x_msg_count
1569         ,   p_data                        => x_msg_data
1570         );
1571 
1572     oe_debug_pub.add('END process_object in QPXFMLHB');
1573 END Process_Object;
1574 
1575 
1576 PROCEDURE Create_GSA_Qualifier(p_list_header_id IN NUMBER,
1577 	                          x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2) IS
1578 Begin
1579     x_return_status := null;
1580 
1581 END Create_GSA_Qualifier;
1582 
1583 PROCEDURE Create_GSA_Qual(p_list_header_id IN NUMBER,
1584 					      p_list_line_id IN NUMBER,
1585                           	 p_qualifier_type IN VARCHAR2,
1586 	                          x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2) IS
1587 
1588 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1589 l_return_status               VARCHAR2(1);
1590 x_msg_count                   number;
1591 x_msg_data                    Varchar2(2000);
1592 x_msg_index                     number;
1593 
1594 l_MODIFIER_LIST_rec             QP_Modifiers_PUB.Modifier_List_Rec_Type;
1595 l_MODIFIER_LIST_val_rec         QP_Modifiers_PUB.Modifier_List_Val_Rec_Type;
1596 l_MODIFIERS_tbl                 QP_Modifiers_PUB.Modifiers_Tbl_Type;
1597 l_MODIFIERS_val_tbl             QP_Modifiers_PUB.Modifiers_Val_Tbl_Type;
1598 l_QUALIFIERS_tbl                QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1599 l_QUALIFIERS_val_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type;
1600 l_PRICING_ATTR_tbl              QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1601 l_PRICING_ATTR_val_tbl          QP_Modifiers_PUB.Pricing_Attr_Val_Tbl_Type;
1602 
1603 l_x_MODIFIER_LIST_rec             QP_Modifiers_PUB.Modifier_List_Rec_Type;
1604 l_x_MODIFIER_LIST_val_rec         QP_Modifiers_PUB.Modifier_List_Val_Rec_Type;
1605 l_x_MODIFIERS_tbl                 QP_Modifiers_PUB.Modifiers_Tbl_Type;
1606 l_x_MODIFIERS_val_tbl             QP_Modifiers_PUB.Modifiers_Val_Tbl_Type;
1607 l_x_QUALIFIERS_tbl                QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1608 l_x_QUALIFIERS_val_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type
1609 ;
1610 l_x_PRICING_ATTR_tbl              QP_Modifiers_PUB.Pricing_Attr_Tbl_Type;
1611 
1612 
1613 l_x_PRICING_ATTR_val_tbl          QP_Modifiers_PUB.Pricing_Attr_Val_Tbl_Type;
1614 
1615 l_datatype                    VARCHAR2(1);
1616 l_precedence                  NUMBER;
1617 l_qualifier_grouping_no       QP_QUALIFIERS.QUALIFIER_GROUPING_NO%TYPE;
1618 l_error_code                  NUMBER := 0;
1619 
1620 BEGIN
1621 
1622 --behind the scene qualifier for gsa_pricing
1623 
1624 
1625     oe_debug_pub.add('BEGIN Create GSA_Qualifiers in QPXFMLHB');
1626 /*
1627   IF p_list_line_id IS NULL
1628   THEN
1629 
1630    	l_MODIFIER_LIST_rec.list_header_id           := p_list_header_id;
1631 	l_MODIFIER_LIST_rec.operation      		:= QP_GLOBALS.G_OPR_UPDATE;
1632 
1633   ELSE
1634 
1635    	l_MODIFIERS_rec.list_line_id           := p_list_line_id;
1636 	l_MODIFIERS_rec.operation      		:= QP_GLOBALS.G_OPR_UPDATE;
1637 
1638   END IF;
1639   */
1640 
1641  	IF p_qualifier_type = 'GSA' THEN
1642     oe_debug_pub.add('IN IF Create GSA_Qualifiers in QPXFMLHB'||to_char(p_list_line_id));
1643 
1644 	--create default qualifier for GSA Modifier List
1645 
1646 	l_QUALIFIERS_tbl(1).qualifier_context		:= 'CUSTOMER';
1647 	l_QUALIFIERS_tbl(1).qualifier_attribute		:= 'QUALIFIER_ATTRIBUTE15';
1648 	l_QUALIFIERS_tbl(1).qualifier_attr_value	:= 'Y';
1649 	l_QUALIFIERS_tbl(1).qualifier_attr_value_to	:= Null;
1650 	l_QUALIFIERS_tbl(1).qualifier_grouping_no	:= -1;
1651 --changed gsa precedence per nitin's decision to change precedence to 100
1652 --gsa discounts were not getting selected with old precedence as
1653 --item context's precedence< gsa qualifier precedence
1654 --	l_QUALIFIERS_tbl(1).qualifier_precedence	:= 100;
1655 --	l_QUALIFIERS_tbl(1).qualifier_precedence	:=
1656 			QP_UTIL.Get_Qual_Flex_Properties(
1657 					l_QUALIFIERS_tbl(1).Qualifier_Context,
1658 					l_QUALIFIERS_tbl(1).Qualifier_Attribute,
1659 					l_QUALIFIERS_tbl(1).Qualifier_Attr_Value,
1660 					l_datatype,
1661 					l_QUALIFIERS_tbl(1).Qualifier_precedence,
1662 					l_error_code);
1663 	l_QUALIFIERS_tbl(1).qualifier_datatype		:= 'C';
1664 	l_QUALIFIERS_tbl(1).list_header_id			:= p_list_header_id;
1665 	l_QUALIFIERS_tbl(1).list_line_id  			:= p_list_line_id;
1666 	l_QUALIFIERS_tbl(1).operation                := QP_GLOBALS.G_OPR_CREATE;
1667 
1668 	ELSIF p_qualifier_type = 'COUPON' THEN
1669 
1670     oe_debug_pub.add('IN IF Create COUP_Qualifiers in QPXFMLHB'||to_char(p_list_line_id));
1671 	--create default qualifier for COUPON ISSUE Modifier's child line
1672 
1673 	--for restricted qualifier will have grouping no as the max grouping no + 1
1674 	--if the discount has null qual grp no the coupon line should have that
1675 	--as an AND condition in its qualifiers
1676 
1677 	select (nvl(max(qualifier_grouping_no),1)+1) into l_qualifier_grouping_no
1678 			from qp_qualifiers where
1679 			list_header_id = p_list_header_id and
1680 			list_line_id = p_list_line_id;
1681 
1682 	l_QUALIFIERS_tbl(1).qualifier_context		:= 'MODLIST';
1683 	l_QUALIFIERS_tbl(1).qualifier_attribute		:= 'QUALIFIER_ATTRIBUTE10';
1684 	l_QUALIFIERS_tbl(1).qualifier_attr_value	:= 'Y';
1685 	l_QUALIFIERS_tbl(1).qualifier_attr_value_to	:= Null;
1686 	l_QUALIFIERS_tbl(1).qualifier_grouping_no	:= l_qualifier_grouping_no;
1687 --	l_QUALIFIERS_tbl(1).qualifier_precedence	:=
1688 			QP_UTIL.Get_Qual_Flex_Properties(
1689 					l_QUALIFIERS_tbl(1).Qualifier_Context,
1690 					l_QUALIFIERS_tbl(1).Qualifier_Attribute,
1691 					l_QUALIFIERS_tbl(1).Qualifier_Attr_Value,
1692 					l_datatype,
1693 					l_QUALIFIERS_tbl(1).Qualifier_precedence,
1694 					l_error_code);
1695 	l_QUALIFIERS_tbl(1).qualifier_datatype		:= 'C';
1696 	l_QUALIFIERS_tbl(1).list_header_id			:= p_list_header_id;
1697 	l_QUALIFIERS_tbl(1).list_line_id  			:= p_list_line_id;
1698 	l_QUALIFIERS_tbl(1).operation                := QP_GLOBALS.G_OPR_CREATE;
1699 
1700 
1701 	ELSE
1702 
1703 		null;
1704 	END IF;
1705 
1706 
1707     oe_debug_pub.add('BEFORE Process_Modifiers in QPXVMLSB');
1708 
1709 /* dhgupta for bug 1975291.Private package needs to be called instead of Public package */
1710 
1711 /*
1712      QP_Modifiers_PUB.Process_Modifiers
1713 			( p_api_version_number   => 1.0
1714              	, p_init_msg_list        => FND_API.G_FALSE
1715 	          , p_return_values        =>  FND_API.G_FALSE
1716              	, p_commit               => FND_API.G_FALSE
1717 			, x_return_status        => x_return_status
1718 			, x_msg_count            =>x_msg_count
1719 			, x_msg_data             =>x_msg_data
1720 --			,p_MODIFIER_LIST_rec     => l_MODIFIER_LIST_rec
1721 --			,p_MODIFIERS_tbl         => l_MODIFIERS_tbl
1722 --			,p_PRICING_ATTR_tbl      => l_PRICING_ATTR_tbl
1723 			,p_QUALIFIERS_tbl      => l_QUALIFIERS_tbl
1724 			,x_MODIFIER_LIST_rec     => l_MODIFIER_LIST_rec
1725 			,x_MODIFIER_LIST_val_rec => l_MODIFIER_LIST_val_rec
1726 			,x_MODIFIERS_tbl         => l_MODIFIERS_tbl
1727 			,x_MODIFIERS_val_tbl     => l_MODIFIERS_val_tbl
1728 			,x_QUALIFIERS_tbl        => l_QUALIFIERS_tbl
1729 			,x_QUALIFIERS_val_tbl    => l_QUALIFIERS_val_tbl
1730 			,x_PRICING_ATTR_tbl      => l_PRICING_ATTR_tbl
1731 			,x_PRICING_ATTR_val_tbl  => l_PRICING_ATTR_val_tbl
1732 			);
1733 
1734 */
1735 
1736      QP_Modifiers_PVT.Process_Modifiers
1737                         ( p_api_version_number   => 1.0
1738                         , p_init_msg_list        => FND_API.G_FALSE
1739                         , p_commit               => FND_API.G_FALSE
1740                         , p_validation_level     => FND_API.G_VALID_LEVEL_FULL
1741                         , p_control_rec          => l_control_rec
1742                         , x_return_status        => x_return_status
1743                         , x_msg_count            =>x_msg_count
1744                         , x_msg_data             =>x_msg_data
1745                         ,p_QUALIFIERS_tbl      => l_QUALIFIERS_tbl
1746                         ,x_MODIFIER_LIST_rec     => l_MODIFIER_LIST_rec
1747                         ,x_MODIFIERS_tbl         => l_MODIFIERS_tbl
1748                         ,x_QUALIFIERS_tbl        => l_x_QUALIFIERS_tbl
1749                         ,x_PRICING_ATTR_tbl      => l_PRICING_ATTR_tbl
1750                         );
1751 
1752 
1753     oe_debug_pub.add('END Create GSA_Qualifiers in QPXFMLHB');
1754 
1755 
1756 EXCEPTION
1757 
1758     WHEN FND_API.G_EXC_ERROR THEN
1759 
1760 		  x_return_status := FND_API.G_RET_STS_ERROR;
1761 
1762 			FND_MESSAGE.SET_NAME('QP','QP_PE_QUALIFIERS');
1763 			OE_MSG_PUB.Add;
1764 
1765 			--  Get message count and data
1766 
1767 			OE_MSG_PUB.Count_And_Get
1768 			(   		p_count  		=> x_msg_count
1769 			,   p_data    	=> x_msg_data
1770 			);
1771 
1772         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1773         THEN
1774             OE_MSG_PUB.Add_Exc_Msg
1775             (   G_PKG_NAME
1776             ,   'QP_QP_FORM_MODIFIER_LIST'
1777             );
1778         END IF;
1779 
1780 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1781 
1782 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1783 
1784 			FND_MESSAGE.SET_NAME('QP','QP_PE_QUALIFIERS');
1785 			OE_MSG_PUB.Add;
1786 			--  Get message count and data
1787 
1788 			OE_MSG_PUB.Count_And_Get
1789 			(   p_count                       => x_msg_count
1790 			,   p_data                        => x_msg_data
1791 			);
1792 
1793         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1794         THEN
1795             OE_MSG_PUB.Add_Exc_Msg
1796             (   G_PKG_NAME
1797             ,   'QP_QP_FORM_MODIFIER_LIST'
1798             );
1799         END IF;
1800 
1801     WHEN OTHERS THEN
1802 
1803         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1804         THEN
1805             OE_MSG_PUB.Add_Exc_Msg
1806             (   G_PKG_NAME
1807             ,   'QP_QP_FORM_MODIFIER_LIST'
1808             );
1809         END IF;
1810 
1811         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1812 
1813         --  Get message count and data
1814 
1815         OE_MSG_PUB.Count_And_Get
1816         (   p_count                       => x_msg_count
1817         ,   p_data                        => x_msg_data
1818         );
1819 
1820 
1821     oe_debug_pub.add('EXP Create GSA_Qualifiers in QPXFMLHB');
1822 
1823 
1824 END Create_GSA_Qual;
1825 
1826 
1827 --  Procedure       lock_Row
1828 --
1829 
1830 PROCEDURE Lock_Row
1831 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1832 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1833 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1834 ,   p_attribute1                    IN  VARCHAR2
1835 ,   p_attribute10                   IN  VARCHAR2
1836 ,   p_attribute11                   IN  VARCHAR2
1837 ,   p_attribute12                   IN  VARCHAR2
1838 ,   p_attribute13                   IN  VARCHAR2
1839 ,   p_attribute14                   IN  VARCHAR2
1840 ,   p_attribute15                   IN  VARCHAR2
1841 ,   p_attribute2                    IN  VARCHAR2
1842 ,   p_attribute3                    IN  VARCHAR2
1843 ,   p_attribute4                    IN  VARCHAR2
1844 ,   p_attribute5                    IN  VARCHAR2
1845 ,   p_attribute6                    IN  VARCHAR2
1846 ,   p_attribute7                    IN  VARCHAR2
1847 ,   p_attribute8                    IN  VARCHAR2
1848 ,   p_attribute9                    IN  VARCHAR2
1849 ,   p_automatic_flag                IN  VARCHAR2
1850 ,   p_comments                      IN  VARCHAR2
1851 ,   p_context                       IN  VARCHAR2
1852 ,   p_created_by                    IN  NUMBER
1853 ,   p_creation_date                 IN  DATE
1854 ,   p_currency_code                 IN  VARCHAR2
1855 ,   p_discount_lines_flag           IN  VARCHAR2
1856 ,   p_end_date_active               IN  DATE
1857 ,   p_freight_terms_code            IN  VARCHAR2
1858 ,   p_gsa_indicator                 IN  VARCHAR2
1859 ,   p_last_updated_by               IN  NUMBER
1860 ,   p_last_update_date              IN  DATE
1861 ,   p_last_update_login             IN  NUMBER
1862 ,   p_list_header_id                IN  NUMBER
1863 ,   p_list_type_code                IN  VARCHAR2
1864 ,   p_program_application_id        IN  NUMBER
1865 ,   p_program_id                    IN  NUMBER
1866 ,   p_program_update_date           IN  DATE
1867 ,   p_prorate_flag                  IN  VARCHAR2
1868 ,   p_request_id                    IN  NUMBER
1869 ,   p_rounding_factor               IN  NUMBER
1870 ,   p_ship_method_code              IN  VARCHAR2
1871 ,   p_start_date_active             IN  DATE
1872 ,   p_terms_id                      IN  NUMBER
1873 ,   p_source_system_code            IN VARCHAR2
1874 ,   p_pte_code                      IN VARCHAR2
1875 ,   p_active_flag                   IN VARCHAR2
1876 ,   p_parent_list_header_id         IN NUMBER
1877 ,   p_start_date_active_first       IN  DATE
1878 ,   p_end_date_active_first         IN  DATE
1879 ,   p_active_date_first_type        IN VARCHAR2
1880 ,   p_start_date_active_second      IN  DATE
1881 ,   p_global_flag                   IN  VARCHAR2
1882 ,   p_end_date_active_second        IN  DATE
1883 ,   p_active_date_second_type       IN VARCHAR2
1884 ,   p_ask_for_flag                  IN VARCHAR2
1885 ,   p_list_source_code              IN VARCHAR2 := NULL
1886 ,   p_orig_system_header_ref        IN VARCHAR2 := NULL
1887 ,   p_shareable_flag                IN VARCHAR2 := NULL
1888 --added for MOAC
1889 ,   p_org_id                        IN NUMBER
1890 )
1891 IS
1892 l_return_status               VARCHAR2(1);
1893 l_MODIFIER_LIST_rec           QP_Modifiers_PUB.Modifier_List_Rec_Type;
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 lock_row in QPXFMLHB');
1904     --  Load MODIFIER_LIST record
1905 
1906     l_MODIFIER_LIST_rec.attribute1 := p_attribute1;
1907     l_MODIFIER_LIST_rec.attribute10 := p_attribute10;
1908     l_MODIFIER_LIST_rec.attribute11 := p_attribute11;
1909     l_MODIFIER_LIST_rec.attribute12 := p_attribute12;
1910     l_MODIFIER_LIST_rec.attribute13 := p_attribute13;
1911     l_MODIFIER_LIST_rec.attribute14 := p_attribute14;
1912     l_MODIFIER_LIST_rec.attribute15 := p_attribute15;
1913     l_MODIFIER_LIST_rec.attribute2 := p_attribute2;
1914     l_MODIFIER_LIST_rec.attribute3 := p_attribute3;
1915     l_MODIFIER_LIST_rec.attribute4 := p_attribute4;
1916     l_MODIFIER_LIST_rec.attribute5 := p_attribute5;
1917     l_MODIFIER_LIST_rec.attribute6 := p_attribute6;
1918     l_MODIFIER_LIST_rec.attribute7 := p_attribute7;
1919     l_MODIFIER_LIST_rec.attribute8 := p_attribute8;
1920     l_MODIFIER_LIST_rec.attribute9 := p_attribute9;
1921     l_MODIFIER_LIST_rec.automatic_flag := p_automatic_flag;
1922     l_MODIFIER_LIST_rec.comments   := p_comments;
1923     l_MODIFIER_LIST_rec.context    := p_context;
1924     l_MODIFIER_LIST_rec.created_by := p_created_by;
1925     l_MODIFIER_LIST_rec.creation_date := p_creation_date;
1926     l_MODIFIER_LIST_rec.currency_code := p_currency_code;
1927     l_MODIFIER_LIST_rec.discount_lines_flag := p_discount_lines_flag;
1928     l_MODIFIER_LIST_rec.end_date_active := p_end_date_active;
1929     l_MODIFIER_LIST_rec.freight_terms_code := p_freight_terms_code;
1930     l_MODIFIER_LIST_rec.gsa_indicator := p_gsa_indicator;
1931     l_MODIFIER_LIST_rec.last_updated_by := p_last_updated_by;
1932     l_MODIFIER_LIST_rec.last_update_date := p_last_update_date;
1933     l_MODIFIER_LIST_rec.last_update_login := p_last_update_login;
1934     l_MODIFIER_LIST_rec.list_header_id := p_list_header_id;
1935     l_MODIFIER_LIST_rec.list_type_code := p_list_type_code;
1936     l_MODIFIER_LIST_rec.program_application_id := p_program_application_id;
1937     l_MODIFIER_LIST_rec.program_id := p_program_id;
1938     l_MODIFIER_LIST_rec.program_update_date := p_program_update_date;
1939     l_MODIFIER_LIST_rec.prorate_flag := p_prorate_flag;
1940     l_MODIFIER_LIST_rec.request_id := p_request_id;
1941     l_MODIFIER_LIST_rec.rounding_factor := p_rounding_factor;
1942     l_MODIFIER_LIST_rec.ship_method_code := p_ship_method_code;
1943     l_MODIFIER_LIST_rec.start_date_active := p_start_date_active;
1944     l_MODIFIER_LIST_rec.terms_id   := p_terms_id;
1945     l_MODIFIER_LIST_rec.source_system_code   := p_source_system_code;
1946     l_MODIFIER_LIST_rec.pte_code             := p_pte_code;
1947     l_MODIFIER_LIST_rec.active_flag   := p_active_flag;
1948     l_MODIFIER_LIST_rec.parent_list_header_id   := p_parent_list_header_id;
1949     l_MODIFIER_LIST_rec.start_date_active_first   := p_start_date_active_first;
1950     l_MODIFIER_LIST_rec.end_date_active_first   := p_end_date_active_first;
1951     l_MODIFIER_LIST_rec.active_date_first_type   := p_active_date_first_type;
1952     l_MODIFIER_LIST_rec.start_date_active_second   := p_start_date_active_second;
1953     l_MODIFIER_LIST_rec.global_flag   := p_global_flag;
1954     l_MODIFIER_LIST_rec.end_date_active_second   := p_end_date_active_second;
1955     l_MODIFIER_LIST_rec.active_date_second_type   := p_active_date_second_type;
1956     l_MODIFIER_LIST_rec.ask_for_flag   := p_ask_for_flag;
1957     l_MODIFIER_LIST_rec.list_source_code       := p_list_source_code ;
1958     l_MODIFIER_LIST_rec.orig_system_header_ref := p_orig_system_header_ref;
1959     l_MODIFIER_LIST_rec.shareable_flag         := p_shareable_flag ;
1960     --added for MOAC
1961     l_MODIFIER_LIST_rec.org_id         := p_org_id ;
1962     l_MODIFIER_LIST_rec.operation   := QP_GLOBALS.G_OPR_LOCK;
1963 
1964     --  Call QP_Modifiers_PVT.Lock_MODIFIERS
1965 
1966     QP_Modifiers_PVT.Lock_MODIFIERS
1967     (   p_api_version_number          => 1.0
1968     ,   p_init_msg_list               => FND_API.G_TRUE
1969     ,   x_return_status               => l_return_status
1970     ,   x_msg_count                   => x_msg_count
1971     ,   x_msg_data                    => x_msg_data
1972     ,   p_MODIFIER_LIST_rec           => l_MODIFIER_LIST_rec
1973     ,   x_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
1974     ,   x_MODIFIERS_tbl               => l_x_MODIFIERS_tbl
1975     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1976     ,   x_PRICING_ATTR_tbl            => l_x_PRICING_ATTR_tbl
1977     );
1978 
1979     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1980 
1981         --  Set DB flag and write record to cache.
1982 
1983         l_x_MODIFIER_LIST_rec.db_flag := FND_API.G_TRUE;
1984 
1985         Write_MODIFIER_LIST
1986         (   p_MODIFIER_LIST_rec           => l_x_MODIFIER_LIST_rec
1987         ,   p_db_record                   => TRUE
1988         );
1989 
1990     END IF;
1991 
1992     --  Set return status.
1993 
1994     x_return_status := l_return_status;
1995 
1996     --  Get message count and data
1997 
1998     OE_MSG_PUB.Count_And_Get
1999     (   p_count                       => x_msg_count
2000     ,   p_data                        => x_msg_data
2001     );
2002 
2003 
2004 EXCEPTION
2005 
2006     WHEN OTHERS THEN
2007 
2008         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2009         THEN
2010             OE_MSG_PUB.Add_Exc_Msg
2011             (   G_PKG_NAME
2012             ,   'Lock_Row'
2013             );
2014         END IF;
2015 
2016         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2017 
2018         --  Get message count and data
2019 
2020         OE_MSG_PUB.Count_And_Get
2021         (   p_count                       => x_msg_count
2022         ,   p_data                        => x_msg_data
2023         );
2024 
2025 
2026     oe_debug_pub.add('END lock_row in QPXFMLHB');
2027 
2028 END Lock_Row;
2029 
2030 --  Procedures maintaining MODIFIER_LIST record cache.
2031 
2032 PROCEDURE Write_MODIFIER_LIST
2033 (   p_MODIFIER_LIST_rec             IN  QP_Modifiers_PUB.Modifier_List_Rec_Type
2034 ,   p_db_record                     IN  BOOLEAN := FALSE
2035 )
2036 IS
2037 BEGIN
2038     oe_debug_pub.add('BEGIN write_modifier_list in QPXFMLHB');
2039 
2040     g_MODIFIER_LIST_rec := p_MODIFIER_LIST_rec;
2041 
2042     IF p_db_record THEN
2043 
2044         g_db_MODIFIER_LIST_rec := p_MODIFIER_LIST_rec;
2045 
2046     END IF;
2047     oe_debug_pub.add('END write_modifier_list in QPXFMLHB');
2048 
2049 END Write_Modifier_List;
2050 
2051 FUNCTION Get_MODIFIER_LIST
2052 (   p_db_record                     IN  BOOLEAN := FALSE
2053 ,   p_list_header_id                IN  NUMBER
2054 )
2055 RETURN QP_Modifiers_PUB.Modifier_List_Rec_Type
2056 IS
2057 BEGIN
2058 
2059     oe_debug_pub.add('BEGIN get_modifier_list in QPXFMLHB');
2060     IF  p_list_header_id <> g_MODIFIER_LIST_rec.list_header_id
2061     THEN
2062 
2063         --  Query row from DB
2064 
2065         g_MODIFIER_LIST_rec := QP_Modifier_List_Util.Query_Row
2066         (   p_list_header_id              => p_list_header_id
2067         );
2068 
2069         g_MODIFIER_LIST_rec.db_flag    := FND_API.G_TRUE;
2070 
2071         --  Load DB record
2072 
2073         g_db_MODIFIER_LIST_rec         := g_MODIFIER_LIST_rec;
2074 
2075     END IF;
2076 
2077     IF p_db_record THEN
2078 
2079     oe_debug_pub.add('if END get_modifier_list in QPXFMLHB');
2080         RETURN g_db_MODIFIER_LIST_rec;
2081 
2082     ELSE
2083 
2084     oe_debug_pub.add('else END get_modifier_list in QPXFMLHB');
2085         RETURN g_MODIFIER_LIST_rec;
2086 
2087     END IF;
2088     oe_debug_pub.add('END get_modifier_list in QPXFMLHB');
2089 
2090 END Get_Modifier_List;
2091 
2092 PROCEDURE Clear_Modifier_List
2093 IS
2094 BEGIN
2095 
2096     g_MODIFIER_LIST_rec            := QP_Modifiers_PUB.G_MISS_MODIFIER_LIST_REC;
2097     g_db_MODIFIER_LIST_rec         := QP_Modifiers_PUB.G_MISS_MODIFIER_LIST_REC;
2098 
2099 END Clear_Modifier_List;
2100 
2101 
2102 --added bu svdeshmu
2103 -- This procedure will be called from the client when the user
2104 -- clears a record
2105 Procedure Clear_Record
2106 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2107 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
2108 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2109 ,   p_list_header_id                IN  NUMBER
2110 )
2111 IS
2112 l_return_status                     Varchar2(30);
2113 BEGIN
2114      OE_MSG_PUB.initialize;
2115  	x_return_status := FND_API.G_RET_STS_SUCCESS;
2116        QP_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
2117 					p_entity_code  => QP_GLOBALS.G_ENTITY_MODIFIER_LIST
2118 					,p_entity_id    => p_list_header_id
2119 				     ,x_return_status => l_return_status);
2120 
2121         OE_MSG_PUB.Count_And_Get
2122         (   p_count                       => x_msg_count
2123         ,   p_data                        => x_msg_data
2124         );
2125 
2126 -- Clear the controller cache
2127 	Clear_Modifier_List;
2128 
2129 EXCEPTION
2130     WHEN OTHERS THEN
2131         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2132         THEN
2133             OE_MSG_PUB.Add_Exc_Msg
2134             (   G_PKG_NAME
2135             ,   'Clear_Record'
2136             );
2137         END IF;
2138         --  Get message count and data
2139         OE_MSG_PUB.Count_And_Get
2140         (   p_count                       => x_msg_count
2141         ,   p_data                        => x_msg_data
2142         );
2143         x_return_status := FND_API.G_RET_STS_ERROR;
2144 
2145 END Clear_Record;
2146 
2147 
2148 -- This procedure will be called from the client when the user
2149 -- clears a block or Form
2150 Procedure Delete_All_Requests
2151 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2152 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
2153 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2154 )
2155 IS
2156 l_return_status                     Varchar2(30);
2157 BEGIN
2158      OE_MSG_PUB.initialize;
2159  	x_return_status := FND_API.G_RET_STS_SUCCESS;
2160        QP_DELAYED_REQUESTS_PVT.Clear_Request(
2161 				     x_return_status => l_return_status);
2162 
2163 EXCEPTION
2164     WHEN OTHERS THEN
2165         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2166         THEN
2167             OE_MSG_PUB.Add_Exc_Msg
2168             (   G_PKG_NAME
2169             ,   'Delete_All_Requests'
2170             );
2171         END IF;
2172         --  Get message count and data
2173         OE_MSG_PUB.Count_And_Get
2174         (   p_count                       => x_msg_count
2175         ,   p_data                        => x_msg_data
2176         );
2177         x_return_status := FND_API.G_RET_STS_ERROR;
2178 
2179 END Delete_All_Requests;
2180 
2181 
2182 --end of additions by svdeshmu
2183 
2184 
2185 
2186 
2187 END QP_QP_Form_Modifier_List;