DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QP_FORM_QUALIFIERS

Source


1 PACKAGE BODY QP_QP_Form_Qualifiers AS
2 /* $Header: QPXFQPQB.pls 120.1 2005/06/27 04:58:11 appldev ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_QP_Form_Qualifiers';
7 
8 --  Global variables holding cached record.
9 
10 g_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
11 g_db_QUALIFIERS_rec           QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
12 
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 PROCEDURE Write_QUALIFIERS
16 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
17 ,   p_db_record                     IN  BOOLEAN := FALSE
18 );
19 
20 FUNCTION Get_QUALIFIERS
21 (   p_db_record                     IN  BOOLEAN := FALSE
22 ,   p_qualifier_id                  IN  NUMBER
23 )
24 RETURN QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
25 
26 PROCEDURE Clear_QUALIFIERS;
27 
28 --  Global variable holding performed operations.
29 
30 g_opr__tbl                    QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
31 
32 --  Procedure : Default_Attributes
33 --
34 
35 PROCEDURE Default_Attributes
36 (   p_qualifier_rule_id            IN NUMBER
37 ,   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
38 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
39 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
40 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 ,   x_comparison_operator_code      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
57 ,   x_created_from_rule_id          OUT NOCOPY /* file.sql.39 change */ NUMBER
58 ,   x_end_date_active               OUT NOCOPY /* file.sql.39 change */ DATE
59 ,   x_excluder_flag                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
60 ,   x_list_header_id                OUT NOCOPY /* file.sql.39 change */ NUMBER
61 ,   x_list_line_id                  OUT NOCOPY /* file.sql.39 change */ NUMBER
62 ,   x_qualifier_attribute           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
63 ,   x_qualifier_attr_value          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
64 ,   x_qualifier_attr_value_to       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
65 ,   x_qualifier_context             OUT NOCOPY /* file.sql.39 change */ VARCHAR2
66 ,   x_qualifier_datatype            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
67 --,   x_qualifier_date_format         OUT NOCOPY /* file.sql.39 change */ VARCHAR2
68 ,   x_qualifier_grouping_no         OUT NOCOPY /* file.sql.39 change */ NUMBER
69 ,   x_qualifier_id                  OUT NOCOPY /* file.sql.39 change */ NUMBER
70 --,   x_qualifier_number_format       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 ,   x_qualifier_precedence          OUT NOCOPY /* file.sql.39 change */ NUMBER
72 ,   x_qualifier_rule_id             OUT NOCOPY /* file.sql.39 change */ NUMBER
73 ,   x_start_date_active             OUT NOCOPY /* file.sql.39 change */ DATE
74 --,   x_comparison_operator           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
75 ,   x_created_from_rule             OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 --,   x_excluder                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
77 ,   x_list_header                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
78 ,   x_list_line                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
79 --,   x_qualifier                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
80 ,   x_qualifier_rule                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
81 )
82 IS
83 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
84 l_QUALIFIERS_val_rec          QP_Qualifier_Rules_PUB.Qualifiers_Val_Rec_Type;
85 l_QUALIFIERS_tbl              QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
86 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
87 l_return_status               VARCHAR2(1);
88 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
89 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
90 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
91 BEGIN
92 
93     --  Set control flags.
94 
95     l_control_rec.controlled_operation := TRUE;
96     l_control_rec.default_attributes   := TRUE;
97 
98     l_control_rec.change_attributes    := FALSE;
99     l_control_rec.validate_entity      := FALSE;
100     l_control_rec.write_to_DB          := FALSE;
101     l_control_rec.process              := FALSE;
102 
103     --  Instruct API to retain its caches
104 
105     l_control_rec.clear_api_cache      := FALSE;
106     l_control_rec.clear_api_requests   := FALSE;
107 
108     --  Load IN parameters if any exist
109 
110 
111     --  Defaulting of flex values is currently done by the form.
112     --  Set flex attributes to NULL in order to avoid defaulting them.
113 
114     l_QUALIFIERS_rec.qualifier_rule_id            := p_qualifier_rule_id;
115     l_QUALIFIERS_rec.attribute1                   := NULL;
116     l_QUALIFIERS_rec.attribute10                  := NULL;
117     l_QUALIFIERS_rec.attribute11                  := NULL;
118     l_QUALIFIERS_rec.attribute12                  := NULL;
119     l_QUALIFIERS_rec.attribute13                  := NULL;
120     l_QUALIFIERS_rec.attribute14                  := NULL;
121     l_QUALIFIERS_rec.attribute15                  := NULL;
122     l_QUALIFIERS_rec.attribute2                   := NULL;
123     l_QUALIFIERS_rec.attribute3                   := NULL;
124     l_QUALIFIERS_rec.attribute4                   := NULL;
125     l_QUALIFIERS_rec.attribute5                   := NULL;
126     l_QUALIFIERS_rec.attribute6                   := NULL;
127     l_QUALIFIERS_rec.attribute7                   := NULL;
128     l_QUALIFIERS_rec.attribute8                   := NULL;
129     l_QUALIFIERS_rec.attribute9                   := NULL;
130     l_QUALIFIERS_rec.context                      := NULL;
131 
132     --  Set Operation to Create
133 
134     l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
135 
136     --  Populate QUALIFIERS table
137 
138     l_QUALIFIERS_tbl(1) := l_QUALIFIERS_rec;
139 
140     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
141 
142     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
143     (   p_api_version_number          => 1.0
144     ,   p_init_msg_list               => FND_API.G_TRUE
145     ,   x_return_status               => l_return_status
146     ,   x_msg_count                   => x_msg_count
147     ,   x_msg_data                    => x_msg_data
148     ,   p_control_rec                 => l_control_rec
149     ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
150     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
151     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
152     );
153 
154     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
155         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
156     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
157         RAISE FND_API.G_EXC_ERROR;
158     END IF;
159 
160 
161     --  Unload out tbl
162 
163     l_x_QUALIFIERS_rec := l_x_QUALIFIERS_tbl(1);
164 
165     --  Load OUT parameters.
166 
167     x_attribute1                   := l_x_QUALIFIERS_rec.attribute1;
168     x_attribute10                  := l_x_QUALIFIERS_rec.attribute10;
169     x_attribute11                  := l_x_QUALIFIERS_rec.attribute11;
170     x_attribute12                  := l_x_QUALIFIERS_rec.attribute12;
171     x_attribute13                  := l_x_QUALIFIERS_rec.attribute13;
172     x_attribute14                  := l_x_QUALIFIERS_rec.attribute14;
173     x_attribute15                  := l_x_QUALIFIERS_rec.attribute15;
174     x_attribute2                   := l_x_QUALIFIERS_rec.attribute2;
175     x_attribute3                   := l_x_QUALIFIERS_rec.attribute3;
176     x_attribute4                   := l_x_QUALIFIERS_rec.attribute4;
177     x_attribute5                   := l_x_QUALIFIERS_rec.attribute5;
178     x_attribute6                   := l_x_QUALIFIERS_rec.attribute6;
179     x_attribute7                   := l_x_QUALIFIERS_rec.attribute7;
180     x_attribute8                   := l_x_QUALIFIERS_rec.attribute8;
181     x_attribute9                   := l_x_QUALIFIERS_rec.attribute9;
182     x_comparison_operator_code     := l_x_QUALIFIERS_rec.comparison_operator_code;
183     x_context                      := l_x_QUALIFIERS_rec.context;
184     x_created_from_rule_id         := l_x_QUALIFIERS_rec.created_from_rule_id;
185     x_end_date_active              := l_x_QUALIFIERS_rec.end_date_active;
186     x_excluder_flag                := l_x_QUALIFIERS_rec.excluder_flag;
187     x_list_header_id               := l_x_QUALIFIERS_rec.list_header_id;
188     x_list_line_id                 := l_x_QUALIFIERS_rec.list_line_id;
189     x_qualifier_attribute          := l_x_QUALIFIERS_rec.qualifier_attribute;
190     x_qualifier_attr_value         := l_x_QUALIFIERS_rec.qualifier_attr_value;
191     x_qualifier_attr_value_to    := l_x_QUALIFIERS_rec.qualifier_attr_value_to;
192     x_qualifier_context            := l_x_QUALIFIERS_rec.qualifier_context;
193     x_qualifier_datatype           := l_x_QUALIFIERS_rec.qualifier_datatype;
194     --x_qualifier_date_format        := l_x_QUALIFIERS_rec.qualifier_date_format;
195     x_qualifier_grouping_no        := l_x_QUALIFIERS_rec.qualifier_grouping_no;
196     x_qualifier_id                 := l_x_QUALIFIERS_rec.qualifier_id;
197     --x_qualifier_number_format      := l_x_QUALIFIERS_rec.qualifier_number_format;
198     x_qualifier_precedence         := l_x_QUALIFIERS_rec.qualifier_precedence;
199     x_qualifier_rule_id            := l_x_QUALIFIERS_rec.qualifier_rule_id;
200     x_start_date_active            := l_x_QUALIFIERS_rec.start_date_active;
201 
202     --  Load display out parameters if any
203 
204     l_QUALIFIERS_val_rec := QP_Qualifiers_Util.Get_Values
205     (   p_QUALIFIERS_rec              => l_x_QUALIFIERS_rec
206     );
207     --x_comparison_operator          := l_QUALIFIERS_val_rec.comparison_operator;
208     x_created_from_rule            := l_QUALIFIERS_val_rec.created_from_rule;
209     --x_excluder                     := l_QUALIFIERS_val_rec.excluder;
210     x_list_header                  := l_QUALIFIERS_val_rec.list_header;
211     x_list_line                    := l_QUALIFIERS_val_rec.list_line;
212    -- x_qualifier                    := l_QUALIFIERS_val_rec.qualifier;
213     x_qualifier_rule               := l_QUALIFIERS_val_rec.qualifier_rule;
214 
215     --  Write to cache.
216     --  Set db_flag to False before writing to cache
217 
218     l_x_QUALIFIERS_rec.db_flag := FND_API.G_FALSE;
219 
220     Write_QUALIFIERS
221     (   p_QUALIFIERS_rec              => l_x_QUALIFIERS_rec
222     );
223 
224     --  Set return status.
225 
226     x_return_status := FND_API.G_RET_STS_SUCCESS;
227 
228     --  Get message count and data
229 
230     OE_MSG_PUB.Count_And_Get
231     (   p_count                       => x_msg_count
232     ,   p_data                        => x_msg_data
233     );
234 
235 
236 EXCEPTION
237 
238     WHEN FND_API.G_EXC_ERROR THEN
239 
240         x_return_status := FND_API.G_RET_STS_ERROR;
241 
242         --  Get message count and data
243 
244         OE_MSG_PUB.Count_And_Get
245         (   p_count                       => x_msg_count
246         ,   p_data                        => x_msg_data
247         );
248 
249     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
250 
251         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
252 
253         --  Get message count and data
254 
255         OE_MSG_PUB.Count_And_Get
256         (   p_count                       => x_msg_count
257         ,   p_data                        => x_msg_data
258         );
259 
260     WHEN OTHERS THEN
261 
262         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
263 
264         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
265         THEN
266             OE_MSG_PUB.Add_Exc_Msg
267             (   G_PKG_NAME
268             ,   'Default_Attributes'
269             );
270         END IF;
271 
272         --  Get message count and data
273 
274         OE_MSG_PUB.Count_And_Get
275         (   p_count                       => x_msg_count
276         ,   p_data                        => x_msg_data
277         );
278 
279 END Default_Attributes;
280 
281 --  Procedure   :   Change_Attribute
282 --
283 
284 PROCEDURE Change_Attribute
285 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
286 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
287 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
288 ,   p_qualifier_id                  IN  NUMBER
289 ,   p_attr_id                       IN  NUMBER
290 ,   p_attr_value                    IN  VARCHAR2
291 ,   p_attribute1                    IN  VARCHAR2
292 ,   p_attribute10                   IN  VARCHAR2
293 ,   p_attribute11                   IN  VARCHAR2
294 ,   p_attribute12                   IN  VARCHAR2
295 ,   p_attribute13                   IN  VARCHAR2
296 ,   p_attribute14                   IN  VARCHAR2
297 ,   p_attribute15                   IN  VARCHAR2
298 ,   p_attribute2                    IN  VARCHAR2
299 ,   p_attribute3                    IN  VARCHAR2
300 ,   p_attribute4                    IN  VARCHAR2
301 ,   p_attribute5                    IN  VARCHAR2
302 ,   p_attribute6                    IN  VARCHAR2
303 ,   p_attribute7                    IN  VARCHAR2
304 ,   p_attribute8                    IN  VARCHAR2
305 ,   p_attribute9                    IN  VARCHAR2
306 ,   p_context                       IN  VARCHAR2
307 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
308 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
309 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
310 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
311 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
312 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
313 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
314 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
315 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
316 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
317 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
318 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
319 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
320 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
321 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
322 ,   x_comparison_operator_code      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
326 ,   x_excluder_flag                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
323 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
324 ,   x_created_from_rule_id          OUT NOCOPY /* file.sql.39 change */ NUMBER
325 ,   x_end_date_active               OUT NOCOPY /* file.sql.39 change */ DATE
327 ,   x_list_header_id                OUT NOCOPY /* file.sql.39 change */ NUMBER
328 ,   x_list_line_id                  OUT NOCOPY /* file.sql.39 change */ NUMBER
329 ,   x_qualifier_attribute           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
330 ,   x_qualifier_attr_value          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
331 ,   x_qualifier_attr_value_to       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
332 ,   x_qualifier_context             OUT NOCOPY /* file.sql.39 change */ VARCHAR2
333 ,   x_qualifier_datatype            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
334 --,   x_qualifier_date_format         OUT NOCOPY /* file.sql.39 change */ VARCHAR2
335 ,   x_qualifier_grouping_no         OUT NOCOPY /* file.sql.39 change */ NUMBER
336 ,   x_qualifier_id                  OUT NOCOPY /* file.sql.39 change */ NUMBER
337 --,   x_qualifier_number_format       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
338 ,   x_qualifier_precedence          OUT NOCOPY /* file.sql.39 change */ NUMBER
339 ,   x_qualifier_rule_id             OUT NOCOPY /* file.sql.39 change */ NUMBER
340 ,   x_start_date_active             OUT NOCOPY /* file.sql.39 change */ DATE
341 --,   x_comparison_operator           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
342 ,   x_created_from_rule             OUT NOCOPY /* file.sql.39 change */ VARCHAR2
343 --,   x_excluder                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
344 ,   x_list_header                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
345 ,   x_list_line                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
346 --,   x_qualifier                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
347 ,   x_qualifier_rule                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
348 )
349 IS
350 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
351 l_old_QUALIFIERS_rec          QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
352 l_QUALIFIERS_val_rec          QP_Qualifier_Rules_PUB.Qualifiers_Val_Rec_Type;
353 l_QUALIFIERS_tbl              QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
354 l_old_QUALIFIERS_tbl          QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
355 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
356 l_return_status               VARCHAR2(1);
357 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
358 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
359 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
360 BEGIN
361 
362     --  Set control flags.
363 
364     l_control_rec.controlled_operation := TRUE;
365     l_control_rec.change_attributes    := TRUE;
366 
367     l_control_rec.default_attributes   := FALSE;
368     l_control_rec.validate_entity      := FALSE;
369     l_control_rec.write_to_DB          := FALSE;
370     l_control_rec.process              := FALSE;
371 
372     --  Instruct API to retain its caches
373 
374     l_control_rec.clear_api_cache      := FALSE;
375     l_control_rec.clear_api_requests   := FALSE;
376 
377     --  Read QUALIFIERS from cache
378 
379     l_QUALIFIERS_rec := Get_QUALIFIERS
380     (   p_db_record                   => FALSE
381     ,   p_qualifier_id                => p_qualifier_id
382     );
383 
384     l_old_QUALIFIERS_rec           := l_QUALIFIERS_rec;
385 
386     IF p_attr_id = QP_Qualifiers_Util.G_COMPARISON_OPERATOR THEN
387         l_QUALIFIERS_rec.comparison_operator_code := p_attr_value;
388     ELSIF p_attr_id = QP_Qualifiers_Util.G_CREATED_FROM_RULE THEN
389         l_QUALIFIERS_rec.created_from_rule_id := TO_NUMBER(p_attr_value);
390     ELSIF p_attr_id = QP_Qualifiers_Util.G_END_DATE_ACTIVE THEN
391         l_QUALIFIERS_rec.end_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
392     ELSIF p_attr_id = QP_Qualifiers_Util.G_EXCLUDER THEN
393         l_QUALIFIERS_rec.excluder_flag := p_attr_value;
394     ELSIF p_attr_id = QP_Qualifiers_Util.G_LIST_HEADER THEN
395         l_QUALIFIERS_rec.list_header_id := TO_NUMBER(p_attr_value);
396     ELSIF p_attr_id = QP_Qualifiers_Util.G_LIST_LINE THEN
397         l_QUALIFIERS_rec.list_line_id := TO_NUMBER(p_attr_value);
398     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_ATTRIBUTE THEN
399         l_QUALIFIERS_rec.qualifier_attribute := p_attr_value;
400     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_ATTR_VALUE THEN
401         l_QUALIFIERS_rec.qualifier_attr_value := p_attr_value;
402     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_ATTR_VALUE_TO THEN
403         l_QUALIFIERS_rec.qualifier_attr_value_to := p_attr_value;
404     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_CONTEXT THEN
405         l_QUALIFIERS_rec.qualifier_context := p_attr_value;
406     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_DATATYPE THEN
407         l_QUALIFIERS_rec.qualifier_datatype := p_attr_value;
408     --ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_DATE_FORMAT THEN
409     --    l_QUALIFIERS_rec.qualifier_date_format := p_attr_value;
410     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_GROUPING_NO THEN
411         l_QUALIFIERS_rec.qualifier_grouping_no := TO_NUMBER(p_attr_value);
412     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER THEN
416     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_PRECEDENCE THEN
413         l_QUALIFIERS_rec.qualifier_id := TO_NUMBER(p_attr_value);
414     --ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_NUMBER_FORMAT THEN
415     --    l_QUALIFIERS_rec.qualifier_number_format := p_attr_value;
417         l_QUALIFIERS_rec.qualifier_precedence := TO_NUMBER(p_attr_value);
418     ELSIF p_attr_id = QP_Qualifiers_Util.G_QUALIFIER_RULE THEN
419         l_QUALIFIERS_rec.qualifier_rule_id := TO_NUMBER(p_attr_value);
420     ELSIF p_attr_id = QP_Qualifiers_Util.G_START_DATE_ACTIVE THEN
421         l_QUALIFIERS_rec.start_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
422     ELSIF p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE1
423     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE10
424     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE11
425     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE12
426     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE13
427     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE14
428     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE15
429     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE2
430     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE3
431     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE4
432     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE5
433     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE6
434     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE7
435     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE8
436     OR     p_attr_id = QP_Qualifiers_Util.G_ATTRIBUTE9
437     OR     p_attr_id = QP_Qualifiers_Util.G_CONTEXT
438     THEN
439 
440         l_QUALIFIERS_rec.attribute1    := p_attribute1;
441         l_QUALIFIERS_rec.attribute10   := p_attribute10;
442         l_QUALIFIERS_rec.attribute11   := p_attribute11;
443         l_QUALIFIERS_rec.attribute12   := p_attribute12;
444         l_QUALIFIERS_rec.attribute13   := p_attribute13;
445         l_QUALIFIERS_rec.attribute14   := p_attribute14;
446         l_QUALIFIERS_rec.attribute15   := p_attribute15;
447         l_QUALIFIERS_rec.attribute2    := p_attribute2;
448         l_QUALIFIERS_rec.attribute3    := p_attribute3;
449         l_QUALIFIERS_rec.attribute4    := p_attribute4;
450         l_QUALIFIERS_rec.attribute5    := p_attribute5;
451         l_QUALIFIERS_rec.attribute6    := p_attribute6;
452         l_QUALIFIERS_rec.attribute7    := p_attribute7;
453         l_QUALIFIERS_rec.attribute8    := p_attribute8;
454         l_QUALIFIERS_rec.attribute9    := p_attribute9;
455         l_QUALIFIERS_rec.context       := p_context;
456 
457     ELSE
458 
459         --  Unexpected error, unrecognized attribute
460 
461         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
462         THEN
463             OE_MSG_PUB.Add_Exc_Msg
464             (   G_PKG_NAME
465             ,   'Change_Attribute'
466             ,   'Unrecognized attribute'
467             );
468         END IF;
469 
470         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
471 
472     END IF;
473 
474     --  Set Operation.
475 
476     IF FND_API.To_Boolean(l_QUALIFIERS_rec.db_flag) THEN
477         l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
478     ELSE
479         l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
480     END IF;
481 
482     --  Populate QUALIFIERS table
483 
484     oe_debug_pub.add('before calling process qualifier rules from change attribute');
485     oe_debug_pub.add('precedence is '||l_QUALIFIERS_rec.qualifier_precedence);
486 
487 
488 
489 
490 
491     l_QUALIFIERS_tbl(1) := l_QUALIFIERS_rec;
492     l_old_QUALIFIERS_tbl(1) := l_old_QUALIFIERS_rec;
493 
494     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
495 
496 
497 
498 
499 
500 
501     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
502     (   p_api_version_number          => 1.0
503     ,   p_init_msg_list               => FND_API.G_TRUE
504     ,   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
505     ,   x_return_status               => l_return_status
506     ,   x_msg_count                   => x_msg_count
507     ,   x_msg_data                    => x_msg_data
508     ,   p_control_rec                 => l_control_rec
509     ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
510     ,   p_old_QUALIFIERS_tbl          => l_old_QUALIFIERS_tbl
511     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
512     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
513     );
514 
515     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
516         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
517     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
518         RAISE FND_API.G_EXC_ERROR;
519     END IF;
520 
521 
522     --  Unload out tbl
523 
524     l_x_QUALIFIERS_rec := l_x_QUALIFIERS_tbl(1);
525 
526     --  Init OUT parameters to missing.
527 
528     x_attribute1                   := FND_API.G_MISS_CHAR;
529     x_attribute10                  := FND_API.G_MISS_CHAR;
530     x_attribute11                  := FND_API.G_MISS_CHAR;
531     x_attribute12                  := FND_API.G_MISS_CHAR;
532     x_attribute13                  := FND_API.G_MISS_CHAR;
533     x_attribute14                  := FND_API.G_MISS_CHAR;
534     x_attribute15                  := FND_API.G_MISS_CHAR;
538     x_attribute5                   := FND_API.G_MISS_CHAR;
535     x_attribute2                   := FND_API.G_MISS_CHAR;
536     x_attribute3                   := FND_API.G_MISS_CHAR;
537     x_attribute4                   := FND_API.G_MISS_CHAR;
539     x_attribute6                   := FND_API.G_MISS_CHAR;
540     x_attribute7                   := FND_API.G_MISS_CHAR;
541     x_attribute8                   := FND_API.G_MISS_CHAR;
542     x_attribute9                   := FND_API.G_MISS_CHAR;
543     x_comparison_operator_code     := FND_API.G_MISS_CHAR;
544     x_context                      := FND_API.G_MISS_CHAR;
545     x_created_from_rule_id         := FND_API.G_MISS_NUM;
546     x_end_date_active              := FND_API.G_MISS_DATE;
547     x_excluder_flag                := FND_API.G_MISS_CHAR;
548     x_list_header_id               := FND_API.G_MISS_NUM;
549     x_list_line_id                 := FND_API.G_MISS_NUM;
550     x_qualifier_attribute          := FND_API.G_MISS_CHAR;
551     x_qualifier_attr_value         := FND_API.G_MISS_CHAR;
552     x_qualifier_attr_value_to      := FND_API.G_MISS_CHAR;
553     x_qualifier_context            := FND_API.G_MISS_CHAR;
554     x_qualifier_datatype           := FND_API.G_MISS_CHAR;
555     --x_qualifier_date_format        := FND_API.G_MISS_CHAR;
556     x_qualifier_grouping_no        := FND_API.G_MISS_NUM;
557     x_qualifier_id                 := FND_API.G_MISS_NUM;
558     --x_qualifier_number_format      := FND_API.G_MISS_CHAR;
559     x_qualifier_precedence         := FND_API.G_MISS_NUM;
560     x_qualifier_rule_id            := FND_API.G_MISS_NUM;
561     x_start_date_active            := FND_API.G_MISS_DATE;
562     --x_comparison_operator          := FND_API.G_MISS_CHAR;
563     x_created_from_rule            := FND_API.G_MISS_CHAR;
564     --x_excluder                     := FND_API.G_MISS_CHAR;
565     x_list_header                  := FND_API.G_MISS_CHAR;
566     x_list_line                    := FND_API.G_MISS_CHAR;
567     --x_qualifier                    := FND_API.G_MISS_CHAR;
568     x_qualifier_rule               := FND_API.G_MISS_CHAR;
569 
570     --  Load display out parameters if any
571 
572     l_QUALIFIERS_val_rec := QP_Qualifiers_Util.Get_Values
573     (   p_QUALIFIERS_rec              => l_x_QUALIFIERS_rec
574     ,   p_old_QUALIFIERS_rec          => l_QUALIFIERS_rec
575     );
576 
577     --  Return changed attributes.
578 
579     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute1,
580                             l_QUALIFIERS_rec.attribute1)
581     THEN
582         x_attribute1 := l_x_QUALIFIERS_rec.attribute1;
583     END IF;
584 
585     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute10,
586                             l_QUALIFIERS_rec.attribute10)
587     THEN
588         x_attribute10 := l_x_QUALIFIERS_rec.attribute10;
589     END IF;
590 
591     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute11,
592                             l_QUALIFIERS_rec.attribute11)
593     THEN
594         x_attribute11 := l_x_QUALIFIERS_rec.attribute11;
595     END IF;
596 
597     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute12,
598                             l_QUALIFIERS_rec.attribute12)
599     THEN
600         x_attribute12 := l_x_QUALIFIERS_rec.attribute12;
601     END IF;
602 
603     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute13,
604                             l_QUALIFIERS_rec.attribute13)
605     THEN
606         x_attribute13 := l_x_QUALIFIERS_rec.attribute13;
607     END IF;
608 
609     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute14,
610                             l_QUALIFIERS_rec.attribute14)
611     THEN
612         x_attribute14 := l_x_QUALIFIERS_rec.attribute14;
613     END IF;
614 
615     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute15,
616                             l_QUALIFIERS_rec.attribute15)
617     THEN
618         x_attribute15 := l_x_QUALIFIERS_rec.attribute15;
619     END IF;
620 
621     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute2,
622                             l_QUALIFIERS_rec.attribute2)
623     THEN
624         x_attribute2 := l_x_QUALIFIERS_rec.attribute2;
625     END IF;
626 
627     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute3,
628                             l_QUALIFIERS_rec.attribute3)
629     THEN
630         x_attribute3 := l_x_QUALIFIERS_rec.attribute3;
631     END IF;
632 
633     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute4,
634                             l_QUALIFIERS_rec.attribute4)
635     THEN
636         x_attribute4 := l_x_QUALIFIERS_rec.attribute4;
637     END IF;
638 
639     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute5,
640                             l_QUALIFIERS_rec.attribute5)
641     THEN
642         x_attribute5 := l_x_QUALIFIERS_rec.attribute5;
643     END IF;
644 
645     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute6,
646                             l_QUALIFIERS_rec.attribute6)
647     THEN
648         x_attribute6 := l_x_QUALIFIERS_rec.attribute6;
649     END IF;
650 
651     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute7,
652                             l_QUALIFIERS_rec.attribute7)
653     THEN
654         x_attribute7 := l_x_QUALIFIERS_rec.attribute7;
655     END IF;
656 
660         x_attribute8 := l_x_QUALIFIERS_rec.attribute8;
657     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute8,
658                             l_QUALIFIERS_rec.attribute8)
659     THEN
661     END IF;
662 
663     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.attribute9,
664                             l_QUALIFIERS_rec.attribute9)
665     THEN
666         x_attribute9 := l_x_QUALIFIERS_rec.attribute9;
667     END IF;
668 
669     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.comparison_operator_code,
670                             l_QUALIFIERS_rec.comparison_operator_code)
671     THEN
672         x_comparison_operator_code := l_x_QUALIFIERS_rec.comparison_operator_code;
673      -- x_comparison_operator := l_QUALIFIERS_val_rec.comparison_operator;
674     END IF;
675 
676     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.context,
677                             l_QUALIFIERS_rec.context)
678     THEN
679         x_context := l_x_QUALIFIERS_rec.context;
680     END IF;
681 
682     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.created_from_rule_id,
683                             l_QUALIFIERS_rec.created_from_rule_id)
684     THEN
685         x_created_from_rule_id := l_x_QUALIFIERS_rec.created_from_rule_id;
686         x_created_from_rule := l_QUALIFIERS_val_rec.created_from_rule;
687     END IF;
688 
689     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.end_date_active,
690                             l_QUALIFIERS_rec.end_date_active)
691     THEN
692         x_end_date_active := l_x_QUALIFIERS_rec.end_date_active;
693     END IF;
694 
695     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.excluder_flag,
696                             l_QUALIFIERS_rec.excluder_flag)
697     THEN
698         x_excluder_flag := l_x_QUALIFIERS_rec.excluder_flag;
699         --x_excluder := l_QUALIFIERS_val_rec.excluder;
700     END IF;
701 
702     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.list_header_id,
703                             l_QUALIFIERS_rec.list_header_id)
704     THEN
705         x_list_header_id := l_x_QUALIFIERS_rec.list_header_id;
706         x_list_header := l_QUALIFIERS_val_rec.list_header;
707     END IF;
708 
709     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.list_line_id,
710                             l_QUALIFIERS_rec.list_line_id)
711     THEN
712         x_list_line_id := l_x_QUALIFIERS_rec.list_line_id;
713         x_list_line := l_QUALIFIERS_val_rec.list_line;
714     END IF;
715 
716     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_attribute,
717                             l_QUALIFIERS_rec.qualifier_attribute)
718     THEN
719         x_qualifier_attribute := l_x_QUALIFIERS_rec.qualifier_attribute;
720     END IF;
721 
722     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_attr_value,
723                             l_QUALIFIERS_rec.qualifier_attr_value)
724     THEN
725         x_qualifier_attr_value := l_x_QUALIFIERS_rec.qualifier_attr_value;
726     END IF;
727     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_attr_value_to,
728                             l_QUALIFIERS_rec.qualifier_attr_value_to)
729     THEN
730        x_qualifier_attr_value_to := l_x_QUALIFIERS_rec.qualifier_attr_value_to;
731     END IF;
732 
733     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_context,
734                             l_QUALIFIERS_rec.qualifier_context)
735     THEN
736         x_qualifier_context := l_x_QUALIFIERS_rec.qualifier_context;
737     END IF;
738 
739     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_datatype,
740                             l_QUALIFIERS_rec.qualifier_datatype)
741     THEN
742         x_qualifier_datatype := l_x_QUALIFIERS_rec.qualifier_datatype;
743     END IF;
744 
745     /*IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_date_format,
746                             l_QUALIFIERS_rec.qualifier_date_format)
747     THEN
748         x_qualifier_date_format := l_x_QUALIFIERS_rec.qualifier_date_format;
749     END IF;*/
750 
751     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_grouping_no,
752                             l_QUALIFIERS_rec.qualifier_grouping_no)
753     THEN
754         x_qualifier_grouping_no := l_x_QUALIFIERS_rec.qualifier_grouping_no;
755     END IF;
756 
757     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_id,
758                             l_QUALIFIERS_rec.qualifier_id)
759     THEN
760         x_qualifier_id := l_x_QUALIFIERS_rec.qualifier_id;
761         --x_qualifier := l_QUALIFIERS_val_rec.qualifier;
762     END IF;
763 
764     /*IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_number_format,
765                             l_QUALIFIERS_rec.qualifier_number_format)
766     THEN
767         x_qualifier_number_format := l_x_QUALIFIERS_rec.qualifier_number_format;
768     END IF;*/
769 
770     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_precedence,
771                             l_QUALIFIERS_rec.qualifier_precedence)
772     THEN
773         x_qualifier_precedence := l_x_QUALIFIERS_rec.qualifier_precedence;
774     END IF;
775 
776     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.qualifier_rule_id,
777                             l_QUALIFIERS_rec.qualifier_rule_id)
778     THEN
779         x_qualifier_rule_id := l_x_QUALIFIERS_rec.qualifier_rule_id;
780         x_qualifier_rule := l_QUALIFIERS_val_rec.qualifier_rule;
781     END IF;
785     THEN
782 
783     IF NOT QP_GLOBALS.Equal(l_x_QUALIFIERS_rec.start_date_active,
784                             l_QUALIFIERS_rec.start_date_active)
786         x_start_date_active := l_x_QUALIFIERS_rec.start_date_active;
787     END IF;
788 
789 
790     --  Write to cache.
791 
792     Write_QUALIFIERS
793     (   p_QUALIFIERS_rec              => l_x_QUALIFIERS_rec
794     );
795 
796     --  Set return status.
797 
798     x_return_status := FND_API.G_RET_STS_SUCCESS;
799 
800     --  Get message count and data
801 
802     OE_MSG_PUB.Count_And_Get
803     (   p_count                       => x_msg_count
804     ,   p_data                        => x_msg_data
805     );
806 
807 
808 EXCEPTION
809 
810     WHEN FND_API.G_EXC_ERROR THEN
811 
812         x_return_status := FND_API.G_RET_STS_ERROR;
813 
814         --  Get message count and data
815 
816         OE_MSG_PUB.Count_And_Get
817         (   p_count                       => x_msg_count
818         ,   p_data                        => x_msg_data
819         );
820 
821     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
822 
823         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
824 
825         --  Get message count and data
826 
827         OE_MSG_PUB.Count_And_Get
828         (   p_count                       => x_msg_count
829         ,   p_data                        => x_msg_data
830         );
831 
832     WHEN OTHERS THEN
833 
834         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
835 
836         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
837         THEN
838             OE_MSG_PUB.Add_Exc_Msg
839             (   G_PKG_NAME
840             ,   'Change_Attribute'
841             );
842         END IF;
843 
844         --  Get message count and data
845 
846         OE_MSG_PUB.Count_And_Get
847         (   p_count                       => x_msg_count
848         ,   p_data                        => x_msg_data
849         );
850 
851 END Change_Attribute;
852 
853 --  Procedure       Validate_And_Write
854 --
855 
856 PROCEDURE Validate_And_Write
857 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
858 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
859 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
860 ,   p_qualifier_id                  IN  NUMBER
861 ,   x_creation_date                 OUT NOCOPY /* file.sql.39 change */ DATE
862 ,   x_created_by                    OUT NOCOPY /* file.sql.39 change */ NUMBER
863 ,   x_last_update_date              OUT NOCOPY /* file.sql.39 change */ DATE
864 ,   x_last_updated_by               OUT NOCOPY /* file.sql.39 change */ NUMBER
865 ,   x_last_update_login             OUT NOCOPY /* file.sql.39 change */ NUMBER
866 )
867 IS
868 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
869 l_old_QUALIFIERS_rec          QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
870 l_QUALIFIERS_tbl              QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
871 l_old_QUALIFIERS_tbl          QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
872 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
873 l_return_status               VARCHAR2(1);
874 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
875 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
876 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
877 BEGIN
878 
879     --  Set control flags.
880 
881     l_control_rec.controlled_operation := TRUE;
882     l_control_rec.validate_entity      := TRUE;
883     l_control_rec.write_to_DB          := TRUE;
884 
885     l_control_rec.default_attributes   := FALSE;
886     l_control_rec.change_attributes    := FALSE;
887     l_control_rec.process              := FALSE;
888 
889     --  Instruct API to retain its caches
890 
891     l_control_rec.clear_api_cache      := FALSE;
892     l_control_rec.clear_api_requests   := FALSE;
893 
894     --  Read QUALIFIERS from cache
895 
896     l_old_QUALIFIERS_rec := Get_QUALIFIERS
897     (   p_db_record                   => TRUE
898     ,   p_qualifier_id                => p_qualifier_id
899     );
900 
901     l_QUALIFIERS_rec := Get_QUALIFIERS
902     (   p_db_record                   => FALSE
903     ,   p_qualifier_id                => p_qualifier_id
904     );
905 
906     --  Set Operation.
907 
908     IF FND_API.To_Boolean(l_QUALIFIERS_rec.db_flag) THEN
909         l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
910     ELSE
911         l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
912     END IF;
913 
914     --  Populate QUALIFIERS table
915 
916     l_QUALIFIERS_tbl(1) := l_QUALIFIERS_rec;
917     l_old_QUALIFIERS_tbl(1) := l_old_QUALIFIERS_rec;
918 
919     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
920 
921 
922     oe_debug_pub.add('calling qualifers rule pvt from qulifiers form validate and write');
923     oe_debug_pub.add('with record as id  '||l_QUALIFIERS_rec.qualifier_id);
924     oe_debug_pub.add('with record as con  '||l_QUALIFIERS_rec.qualifier_context);
928 
925     oe_debug_pub.add('with record as attr  '||l_QUALIFIERS_rec.qualifier_attribute);
926     oe_debug_pub.add('with record as val  '||l_QUALIFIERS_rec.qualifier_attr_value);
927     oe_debug_pub.add('with record as precedence  '||l_QUALIFIERS_rec.qualifier_precedence);
929 
930 
931     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
932     (   p_api_version_number          => 1.0
933     ,   p_init_msg_list               => FND_API.G_TRUE
934     ,   x_return_status               => l_return_status
935     ,   x_msg_count                   => x_msg_count
936     ,   x_msg_data                    => x_msg_data
937     ,   p_control_rec                 => l_control_rec
938     ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
939     ,   p_old_QUALIFIERS_tbl          => l_old_QUALIFIERS_tbl
940     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
941     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
942     );
943 
944     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
945         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
946     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
947         RAISE FND_API.G_EXC_ERROR;
948     END IF;
949 
950 
951     --  Load OUT parameters.
952 
953     l_x_QUALIFIERS_rec := l_x_QUALIFIERS_tbl(1);
954 
955     x_creation_date                := l_x_QUALIFIERS_rec.creation_date;
956     x_created_by                   := l_x_QUALIFIERS_rec.created_by;
957     x_last_update_date             := l_x_QUALIFIERS_rec.last_update_date;
958     x_last_updated_by              := l_x_QUALIFIERS_rec.last_updated_by;
959     x_last_update_login            := l_x_QUALIFIERS_rec.last_update_login;
960 
961     --  Clear QUALIFIERS record cache
962 
963     Clear_QUALIFIERS;
964 
965     --  Keep track of performed operations.
966 
967     l_old_QUALIFIERS_rec.operation := l_QUALIFIERS_rec.operation;
968 
969 
970     --  Set return status.
971 
972     x_return_status := FND_API.G_RET_STS_SUCCESS;
973 
974     --  Get message count and data
975 
976     OE_MSG_PUB.Count_And_Get
977     (   p_count                       => x_msg_count
978     ,   p_data                        => x_msg_data
979     );
980 
981 
982 EXCEPTION
983 
984     WHEN FND_API.G_EXC_ERROR THEN
985 
986         x_return_status := FND_API.G_RET_STS_ERROR;
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     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
996 
997         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
998 
999         --  Get message count and data
1000 
1001         OE_MSG_PUB.Count_And_Get
1002         (   p_count                       => x_msg_count
1003         ,   p_data                        => x_msg_data
1004         );
1005 
1006     WHEN OTHERS THEN
1007 
1008         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1009 
1010         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1011         THEN
1012             OE_MSG_PUB.Add_Exc_Msg
1013             (   G_PKG_NAME
1014             ,   'Validate_And_Write'
1015             );
1016         END IF;
1017 
1018         --  Get message count and data
1019 
1020         OE_MSG_PUB.Count_And_Get
1021         (   p_count                       => x_msg_count
1022         ,   p_data                        => x_msg_data
1023         );
1024 
1025 END Validate_And_Write;
1026 
1027 --  Procedure       Delete_Row
1028 --
1029 
1030 PROCEDURE Delete_Row
1031 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1032 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1033 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1034 ,   p_qualifier_id                  IN  NUMBER
1035 )
1036 IS
1037 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1038 l_QUALIFIERS_tbl              QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1039 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1040 l_return_status               VARCHAR2(1);
1041 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
1042 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1043 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1044 BEGIN
1045 
1046     --  Set control flags.
1047 
1048     l_control_rec.controlled_operation := TRUE;
1049     l_control_rec.validate_entity      := TRUE;
1050     l_control_rec.write_to_DB          := TRUE;
1051 
1052     l_control_rec.default_attributes   := FALSE;
1053     l_control_rec.change_attributes    := FALSE;
1054     l_control_rec.process              := FALSE;
1055 
1056     --  Instruct API to retain its caches
1057 
1058     l_control_rec.clear_api_cache      := FALSE;
1059     l_control_rec.clear_api_requests   := FALSE;
1060 
1061     --  Read DB record from cache
1062 
1063     l_QUALIFIERS_rec := Get_QUALIFIERS
1064     (   p_db_record                   => TRUE
1065     ,   p_qualifier_id                => p_qualifier_id
1066     );
1067 
1068     --  Set Operation.
1069 
1070     l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_DELETE;
1071 
1075 
1072     --  Populate QUALIFIERS table
1073 
1074     l_QUALIFIERS_tbl(1) := l_QUALIFIERS_rec;
1076     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
1077 
1078     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
1079     (   p_api_version_number          => 1.0
1080     ,   p_init_msg_list               => FND_API.G_TRUE
1081     ,   x_return_status               => l_return_status
1082     ,   x_msg_count                   => x_msg_count
1083     ,   x_msg_data                    => x_msg_data
1084     ,   p_control_rec                 => l_control_rec
1085     ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
1086     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
1087     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1088     );
1089 
1090     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1091         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1092     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1093         RAISE FND_API.G_EXC_ERROR;
1094     END IF;
1095 
1096 
1097     --  Clear QUALIFIERS record cache
1098 
1099     Clear_QUALIFIERS;
1100 
1101     --  Set return status.
1102 
1103     x_return_status := FND_API.G_RET_STS_SUCCESS;
1104 
1105     --  Get message count and data
1106 
1107     OE_MSG_PUB.Count_And_Get
1108     (   p_count                       => x_msg_count
1109     ,   p_data                        => x_msg_data
1110     );
1111 
1112 
1113 EXCEPTION
1114 
1115     WHEN FND_API.G_EXC_ERROR THEN
1116 
1117         x_return_status := FND_API.G_RET_STS_ERROR;
1118 
1119         --  Get message count and data
1120 
1121         OE_MSG_PUB.Count_And_Get
1122         (   p_count                       => x_msg_count
1123         ,   p_data                        => x_msg_data
1124         );
1125 
1126     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1127 
1128         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1129 
1130         --  Get message count and data
1131 
1132         OE_MSG_PUB.Count_And_Get
1133         (   p_count                       => x_msg_count
1134         ,   p_data                        => x_msg_data
1135         );
1136 
1137     WHEN OTHERS THEN
1138 
1139         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1140 
1141         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1142         THEN
1143             OE_MSG_PUB.Add_Exc_Msg
1144             (   G_PKG_NAME
1145             ,   'Delete_Row'
1146             );
1147         END IF;
1148 
1149         --  Get message count and data
1150 
1151         OE_MSG_PUB.Count_And_Get
1152         (   p_count                       => x_msg_count
1153         ,   p_data                        => x_msg_data
1154         );
1155 
1156 END Delete_Row;
1157 
1158 --  Procedure       Process_Entity
1159 --
1160 
1161 PROCEDURE Process_Entity
1162 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1163 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1164 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1165 )
1166 IS
1167 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
1168 l_return_status               VARCHAR2(1);
1169 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
1170 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1171 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1172 BEGIN
1173 
1174     --  Set control flags.
1175 
1176     l_control_rec.controlled_operation := TRUE;
1177     l_control_rec.process              := TRUE;
1178     l_control_rec.process_entity       := QP_GLOBALS.G_ENTITY_QUALIFIERS;
1179 
1180     l_control_rec.default_attributes   := FALSE;
1181     l_control_rec.change_attributes    := FALSE;
1182     l_control_rec.validate_entity      := FALSE;
1183     l_control_rec.write_to_DB          := FALSE;
1184 
1185     --  Instruct API to clear its request table
1186 
1187     l_control_rec.clear_api_cache      := FALSE;
1188     l_control_rec.clear_api_requests   := FALSE;
1189 
1190     --  Call QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
1191 
1192     QP_Qualifier_Rules_PVT.Process_QUALIFIER_RULES
1193     (   p_api_version_number          => 1.0
1194     ,   p_init_msg_list               => FND_API.G_TRUE
1195     ,   x_return_status               => l_return_status
1196     ,   x_msg_count                   => x_msg_count
1197     ,   x_msg_data                    => x_msg_data
1198     ,   p_control_rec                 => l_control_rec
1199     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
1200     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1201     );
1202 
1203     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1204         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1205     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1206         RAISE FND_API.G_EXC_ERROR;
1207     END IF;
1208 
1209 
1210     --  Set return status.
1211 
1212     x_return_status := FND_API.G_RET_STS_SUCCESS;
1213 
1214     --  Get message count and data
1215 
1216     OE_MSG_PUB.Count_And_Get
1217     (   p_count                       => x_msg_count
1221 
1218     ,   p_data                        => x_msg_data
1219     );
1220 
1222 EXCEPTION
1223 
1224     WHEN FND_API.G_EXC_ERROR THEN
1225 
1226         x_return_status := FND_API.G_RET_STS_ERROR;
1227 
1228         --  Get message count and data
1229 
1230         OE_MSG_PUB.Count_And_Get
1231         (   p_count                       => x_msg_count
1232         ,   p_data                        => x_msg_data
1233         );
1234 
1235     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1236 
1237         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1238 
1239         --  Get message count and data
1240 
1241         OE_MSG_PUB.Count_And_Get
1242         (   p_count                       => x_msg_count
1243         ,   p_data                        => x_msg_data
1244         );
1245 
1246     WHEN OTHERS THEN
1247 
1248         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1249 
1250         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1251         THEN
1252             OE_MSG_PUB.Add_Exc_Msg
1253             (   G_PKG_NAME
1254             ,   'Process_Entity'
1255             );
1256         END IF;
1257 
1258         --  Get message count and data
1259 
1260         OE_MSG_PUB.Count_And_Get
1261         (   p_count                       => x_msg_count
1262         ,   p_data                        => x_msg_data
1263         );
1264 
1265 END Process_Entity;
1266 
1267 --  Procedure       lock_Row
1268 --
1269 
1270 PROCEDURE Lock_Row
1271 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1272 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1273 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1274 ,   p_attribute1                    IN  VARCHAR2
1275 ,   p_attribute10                   IN  VARCHAR2
1276 ,   p_attribute11                   IN  VARCHAR2
1277 ,   p_attribute12                   IN  VARCHAR2
1278 ,   p_attribute13                   IN  VARCHAR2
1279 ,   p_attribute14                   IN  VARCHAR2
1280 ,   p_attribute15                   IN  VARCHAR2
1281 ,   p_attribute2                    IN  VARCHAR2
1282 ,   p_attribute3                    IN  VARCHAR2
1283 ,   p_attribute4                    IN  VARCHAR2
1284 ,   p_attribute5                    IN  VARCHAR2
1285 ,   p_attribute6                    IN  VARCHAR2
1286 ,   p_attribute7                    IN  VARCHAR2
1287 ,   p_attribute8                    IN  VARCHAR2
1288 ,   p_attribute9                    IN  VARCHAR2
1289 ,   p_comparison_operator_code      IN  VARCHAR2
1290 ,   p_context                       IN  VARCHAR2
1291 ,   p_created_by                    IN  NUMBER
1292 ,   p_created_from_rule_id          IN  NUMBER
1293 ,   p_creation_date                 IN  DATE
1294 ,   p_end_date_active               IN  DATE
1295 ,   p_excluder_flag                 IN  VARCHAR2
1296 ,   p_last_updated_by               IN  NUMBER
1297 ,   p_last_update_date              IN  DATE
1298 ,   p_last_update_login             IN  NUMBER
1299 ,   p_list_header_id                IN  NUMBER
1300 ,   p_list_line_id                  IN  NUMBER
1301 ,   p_program_application_id        IN  NUMBER
1302 ,   p_program_id                    IN  NUMBER
1303 ,   p_program_update_date           IN  DATE
1304 ,   p_qualifier_attribute           IN  VARCHAR2
1305 ,   p_qualifier_attr_value          IN  VARCHAR2
1306 ,   p_qualifier_attr_value_to       IN  VARCHAR2
1307 ,   p_qualifier_context             IN  VARCHAR2
1308 ,   p_qualifier_datatype            IN  VARCHAR2
1309 --,   p_qualifier_date_format         IN  VARCHAR2
1310 ,   p_qualifier_grouping_no         IN  NUMBER
1311 ,   p_qualifier_id                  IN  NUMBER
1312 --,   p_qualifier_number_format       IN  VARCHAR2
1313 ,   p_qualifier_precedence          IN  NUMBER
1314 ,   p_qualifier_rule_id             IN  NUMBER
1315 ,   p_request_id                    IN  NUMBER
1316 ,   p_start_date_active             IN  DATE
1317 )
1318 IS
1319 l_return_status               VARCHAR2(1);
1320 l_QUALIFIERS_rec              QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1321 l_QUALIFIERS_tbl              QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1322 l_x_QUALIFIER_RULES_rec       QP_Qualifier_Rules_PUB.Qualifier_Rules_Rec_Type;
1323 l_x_QUALIFIERS_rec            QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type;
1324 l_x_QUALIFIERS_tbl            QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type;
1325 BEGIN
1326 
1327     --  Load QUALIFIERS record
1328 
1329     l_QUALIFIERS_rec.attribute1    := p_attribute1;
1330     l_QUALIFIERS_rec.attribute10   := p_attribute10;
1331     l_QUALIFIERS_rec.attribute11   := p_attribute11;
1332     l_QUALIFIERS_rec.attribute12   := p_attribute12;
1333     l_QUALIFIERS_rec.attribute13   := p_attribute13;
1334     l_QUALIFIERS_rec.attribute14   := p_attribute14;
1335     l_QUALIFIERS_rec.attribute15   := p_attribute15;
1336     l_QUALIFIERS_rec.attribute2    := p_attribute2;
1337     l_QUALIFIERS_rec.attribute3    := p_attribute3;
1338     l_QUALIFIERS_rec.attribute4    := p_attribute4;
1339     l_QUALIFIERS_rec.attribute5    := p_attribute5;
1340     l_QUALIFIERS_rec.attribute6    := p_attribute6;
1341     l_QUALIFIERS_rec.attribute7    := p_attribute7;
1342     l_QUALIFIERS_rec.attribute8    := p_attribute8;
1343     l_QUALIFIERS_rec.attribute9    := p_attribute9;
1344     l_QUALIFIERS_rec.comparison_operator_code := p_comparison_operator_code;
1345     l_QUALIFIERS_rec.context       := p_context;
1349     l_QUALIFIERS_rec.end_date_active := p_end_date_active;
1346     l_QUALIFIERS_rec.created_by    := p_created_by;
1347     l_QUALIFIERS_rec.created_from_rule_id := p_created_from_rule_id;
1348     l_QUALIFIERS_rec.creation_date := p_creation_date;
1350     l_QUALIFIERS_rec.excluder_flag := p_excluder_flag;
1351     l_QUALIFIERS_rec.last_updated_by := p_last_updated_by;
1352     l_QUALIFIERS_rec.last_update_date := p_last_update_date;
1353     l_QUALIFIERS_rec.last_update_login := p_last_update_login;
1354     l_QUALIFIERS_rec.list_header_id := p_list_header_id;
1355     l_QUALIFIERS_rec.list_line_id  := p_list_line_id;
1356     l_QUALIFIERS_rec.program_application_id := p_program_application_id;
1357     l_QUALIFIERS_rec.program_id    := p_program_id;
1358     l_QUALIFIERS_rec.program_update_date := p_program_update_date;
1359     l_QUALIFIERS_rec.qualifier_attribute := p_qualifier_attribute;
1360     l_QUALIFIERS_rec.qualifier_attr_value := p_qualifier_attr_value;
1361     l_QUALIFIERS_rec.qualifier_attr_value_to := p_qualifier_attr_value_to;
1362     l_QUALIFIERS_rec.qualifier_context := p_qualifier_context;
1363     l_QUALIFIERS_rec.qualifier_datatype := p_qualifier_datatype;
1364     --l_QUALIFIERS_rec.qualifier_date_format := p_qualifier_date_format;
1365     l_QUALIFIERS_rec.qualifier_grouping_no := p_qualifier_grouping_no;
1366     l_QUALIFIERS_rec.qualifier_id  := p_qualifier_id;
1367     --l_QUALIFIERS_rec.qualifier_number_format := p_qualifier_number_format;
1368     l_QUALIFIERS_rec.qualifier_precedence := p_qualifier_precedence;
1369     l_QUALIFIERS_rec.qualifier_rule_id := p_qualifier_rule_id;
1370     l_QUALIFIERS_rec.request_id    := p_request_id;
1371     l_QUALIFIERS_rec.start_date_active := p_start_date_active;
1372 
1373     --  Populate QUALIFIERS table
1374 
1375     l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_LOCK;
1376     l_QUALIFIERS_tbl(1) := l_QUALIFIERS_rec;
1377 
1378     --  Call QP_Qualifier_Rules_PVT.Lock_QUALIFIER_RULES
1379 
1380 
1381     --l_QUALIFIERS_rec.operation := QP_GLOBALS.G_OPR_LOCK;
1382 
1383     oe_debug_pub.add('calling privates lock row from QPXFQPQB.pls');
1384 
1385     QP_Qualifier_Rules_PVT.Lock_QUALIFIER_RULES
1386     (   p_api_version_number          => 1.0
1387     ,   p_init_msg_list               => FND_API.G_TRUE
1388     ,   x_return_status               => l_return_status
1389     ,   x_msg_count                   => x_msg_count
1390     ,   x_msg_data                    => x_msg_data
1391     ,   p_QUALIFIERS_tbl              => l_QUALIFIERS_tbl
1392     ,   x_QUALIFIER_RULES_rec         => l_x_QUALIFIER_RULES_rec
1393     ,   x_QUALIFIERS_tbl              => l_x_QUALIFIERS_tbl
1394     );
1395 
1396     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1397 
1398         --  Set DB flag and write record to cache.
1399 
1400         l_x_QUALIFIERS_rec.db_flag := FND_API.G_TRUE;
1401 
1402         Write_QUALIFIERS
1403         (   p_QUALIFIERS_rec              => l_x_QUALIFIERS_rec
1404         ,   p_db_record                   => TRUE
1405         );
1406 
1407     END IF;
1408 
1409     --  Set return status.
1410 
1411     x_return_status := l_return_status;
1412 
1413     --  Get message count and data
1414 
1415     OE_MSG_PUB.Count_And_Get
1416     (   p_count                       => x_msg_count
1417     ,   p_data                        => x_msg_data
1418     );
1419 
1420 
1421 EXCEPTION
1422 
1423     WHEN OTHERS THEN
1424 
1425         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1426         THEN
1427             OE_MSG_PUB.Add_Exc_Msg
1428             (   G_PKG_NAME
1429             ,   'Lock_Row'
1430             );
1431         END IF;
1432 
1433         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1434 
1435         --  Get message count and data
1436 
1437         OE_MSG_PUB.Count_And_Get
1438         (   p_count                       => x_msg_count
1439         ,   p_data                        => x_msg_data
1440         );
1441 
1442 
1443 
1444 END Lock_Row;
1445 
1446 --  Procedures maintaining QUALIFIERS record cache.
1447 
1448 PROCEDURE Write_QUALIFIERS
1449 (   p_QUALIFIERS_rec                IN  QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
1450 ,   p_db_record                     IN  BOOLEAN := FALSE
1451 )
1452 IS
1453 BEGIN
1454 
1455     g_QUALIFIERS_rec := p_QUALIFIERS_rec;
1456 
1457     IF p_db_record THEN
1458 
1459         g_db_QUALIFIERS_rec := p_QUALIFIERS_rec;
1460 
1461     END IF;
1462 
1463 END Write_Qualifiers;
1464 
1465 FUNCTION Get_QUALIFIERS
1466 (   p_db_record                     IN  BOOLEAN := FALSE
1467 ,   p_qualifier_id                  IN  NUMBER
1468 )
1469 RETURN QP_Qualifier_Rules_PUB.Qualifiers_Rec_Type
1470 IS
1471 BEGIN
1472 
1473     OE_DEBUG_PUB.ADD('in Get qualifiers');
1474 
1475     IF  p_qualifier_id <> g_QUALIFIERS_rec.qualifier_id
1476     THEN
1477 
1478         --  Query row from DB
1479 
1480         g_QUALIFIERS_rec := QP_Qualifiers_Util.Query_Row
1481         (   p_qualifier_id                => p_qualifier_id
1482         );
1483 
1484         g_QUALIFIERS_rec.db_flag       := FND_API.G_TRUE;
1485 
1486         --  Load DB record
1487 
1488         g_db_QUALIFIERS_rec            := g_QUALIFIERS_rec;
1489 
1490     END IF;
1491 
1492     IF p_db_record THEN
1493 
1494         RETURN g_db_QUALIFIERS_rec;
1495         OE_DEBUG_PUB.ADD('leaving  Get qualifiers');
1496 
1497     ELSE
1498 
1499         RETURN g_QUALIFIERS_rec;
1500         OE_DEBUG_PUB.ADD('leaving  Get qualifiers');
1501 
1502     END IF;
1503 
1504 
1505 
1506 
1507 END Get_Qualifiers;
1508 
1509 PROCEDURE Clear_Qualifiers
1510 IS
1511 BEGIN
1512 
1513     g_QUALIFIERS_rec               := QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_REC;
1514     g_db_QUALIFIERS_rec            := QP_Qualifier_Rules_PUB.G_MISS_QUALIFIERS_REC;
1515 
1516 END Clear_Qualifiers;
1517 
1518 
1519 
1520 -- This procedure will be called from the client when the user
1521 -- clears a record
1522 Procedure Clear_Record
1523 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1524 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1525 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1526 ,   p_qualifier_id                  IN  NUMBER
1527 )
1528 IS
1529 l_return_status                     Varchar2(30);
1530 BEGIN
1531      OE_MSG_PUB.initialize;
1532  	x_return_status := FND_API.G_RET_STS_SUCCESS;
1533        QP_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
1534 					p_entity_code  => QP_GLOBALS.G_ENTITY_QUALIFIERS
1535 					,p_entity_id    => p_qualifier_id
1536 				     ,x_return_status => l_return_status);
1537 
1538         OE_MSG_PUB.Count_And_Get
1539         (   p_count                       => x_msg_count
1540         ,   p_data                        => x_msg_data
1541         );
1542 
1543 -- Clear the controller cache
1544 	Clear_qualifiers;
1545 
1546 EXCEPTION
1547     WHEN OTHERS THEN
1548         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1549         THEN
1550             OE_MSG_PUB.Add_Exc_Msg
1551             (   G_PKG_NAME
1552             ,   'Clear_Record'
1553             );
1554         END IF;
1555         --  Get message count and data
1556         OE_MSG_PUB.Count_And_Get
1557         (   p_count                       => x_msg_count
1558         ,   p_data                        => x_msg_data
1559         );
1560         x_return_status := FND_API.G_RET_STS_ERROR;
1561 
1562 END Clear_Record;
1563 
1564 
1565 -- This procedure will be called from the client when the user
1566 -- clears a block or Form
1567 Procedure Delete_All_Requests
1568 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1569 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1570 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1571 )
1572 IS
1573 l_return_status                     Varchar2(30);
1574 BEGIN
1575      OE_MSG_PUB.initialize;
1576  	x_return_status := FND_API.G_RET_STS_SUCCESS;
1577        QP_DELAYED_REQUESTS_PVT.Clear_Request(
1578 				     x_return_status => l_return_status);
1579 
1580 EXCEPTION
1581     WHEN OTHERS THEN
1582         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1583         THEN
1584             OE_MSG_PUB.Add_Exc_Msg
1585             (   G_PKG_NAME
1586             ,   'Delete_All_Requests'
1587             );
1588         END IF;
1589         --  Get message count and data
1590         OE_MSG_PUB.Count_And_Get
1591         (   p_count                       => x_msg_count
1592         ,   p_data                        => x_msg_data
1593         );
1594         x_return_status := FND_API.G_RET_STS_ERROR;
1595 
1596 END Delete_All_Requests;
1597 
1598 
1599 
1600 END QP_QP_Form_Qualifiers;