[Home] [Help]
PACKAGE BODY: APPS.ONT_HEADER_PAYMENT_DEF_UTIL
Source
1 PACKAGE BODY ONT_HEADER_PAYMENT_Def_Util AS
2 /* $Header: OEXDFWKB.pls 115.0 13-AUG-13 23:23:31 appldev ship $ */
3
4 --
5 -- Copyright (c) 1996 Oracle Corporation, Redwood Shores, CA, USA
6 -- All rights reserved.
7 --
8 -- FILENAME
9 --
10 -- ONT_HEADER_PAYMENT_Def_Util
11 --
12 -- DESCRIPTION
13 --
14 -- Body of package ONT_HEADER_PAYMENT_Def_Util
15 --
16 -- NOTES
17 --
18 -- HISTORY
19 --
20 -- 13-AUG-13 Created
21 --
22
23 -- Global constant holding the package name
24 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ONT_HEADER_PAYMENT_Def_Util';
25
26
27 g_database_object_name varchar2(30) :='OE_AK_HEADER_PAYMENTS_V';
28
29 TYPE Condition_Rec_Type IS RECORD (
30 condition_id NUMBER,
31 group_number NUMBER,
32 attribute_code VARCHAR2(30),
33 value_op VARCHAR2(15),
34 value_string VARCHAR2(255));
35
36 TYPE Condition_Tbl_Type IS TABLE OF Condition_Rec_Type
37 INDEX BY BINARY_INTEGER;
38 g_conditions_tbl_cache Condition_Tbl_Type;
39
40 g_attr_condns_cache ONT_DEF_UTIL.Attr_Condn_Tbl_Type;
41
42
43 FUNCTION Get_Attr_Val_Varchar2
44 ( p_attr_code IN VARCHAR2
45 , p_record IN OE_AK_HEADER_PAYMENTS_V%ROWTYPE
46 ) RETURN VARCHAR2
47 IS
48 BEGIN
49
50 IF p_attr_code =('ATTRIBUTE1') THEN
51 IF NVL(p_record.ATTRIBUTE1, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
52 RETURN p_record.ATTRIBUTE1;
53 ELSE
54 RETURN NULL;
55 END IF;
56 ELSIF p_attr_code =('ATTRIBUTE10') THEN
57 IF NVL(p_record.ATTRIBUTE10, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
58 RETURN p_record.ATTRIBUTE10;
59 ELSE
60 RETURN NULL;
61 END IF;
62 ELSIF p_attr_code =('ATTRIBUTE11') THEN
63 IF NVL(p_record.ATTRIBUTE11, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
64 RETURN p_record.ATTRIBUTE11;
65 ELSE
66 RETURN NULL;
67 END IF;
68 ELSIF p_attr_code =('ATTRIBUTE12') THEN
69 IF NVL(p_record.ATTRIBUTE12, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
70 RETURN p_record.ATTRIBUTE12;
71 ELSE
72 RETURN NULL;
73 END IF;
74 ELSIF p_attr_code =('ATTRIBUTE13') THEN
75 IF NVL(p_record.ATTRIBUTE13, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
76 RETURN p_record.ATTRIBUTE13;
77 ELSE
78 RETURN NULL;
79 END IF;
80 ELSIF p_attr_code =('ATTRIBUTE14') THEN
81 IF NVL(p_record.ATTRIBUTE14, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
82 RETURN p_record.ATTRIBUTE14;
83 ELSE
84 RETURN NULL;
85 END IF;
86 ELSIF p_attr_code =('ATTRIBUTE15') THEN
87 IF NVL(p_record.ATTRIBUTE15, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
88 RETURN p_record.ATTRIBUTE15;
89 ELSE
90 RETURN NULL;
91 END IF;
92 ELSIF p_attr_code =('ATTRIBUTE2') THEN
93 IF NVL(p_record.ATTRIBUTE2, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
94 RETURN p_record.ATTRIBUTE2;
95 ELSE
96 RETURN NULL;
97 END IF;
98 ELSIF p_attr_code =('ATTRIBUTE3') THEN
99 IF NVL(p_record.ATTRIBUTE3, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
100 RETURN p_record.ATTRIBUTE3;
101 ELSE
102 RETURN NULL;
103 END IF;
104 ELSIF p_attr_code =('ATTRIBUTE4') THEN
105 IF NVL(p_record.ATTRIBUTE4, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
106 RETURN p_record.ATTRIBUTE4;
107 ELSE
108 RETURN NULL;
109 END IF;
110 ELSIF p_attr_code =('ATTRIBUTE5') THEN
111 IF NVL(p_record.ATTRIBUTE5, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
112 RETURN p_record.ATTRIBUTE5;
113 ELSE
114 RETURN NULL;
115 END IF;
116 ELSIF p_attr_code =('ATTRIBUTE6') THEN
117 IF NVL(p_record.ATTRIBUTE6, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
118 RETURN p_record.ATTRIBUTE6;
119 ELSE
120 RETURN NULL;
121 END IF;
122 ELSIF p_attr_code =('ATTRIBUTE7') THEN
123 IF NVL(p_record.ATTRIBUTE7, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
124 RETURN p_record.ATTRIBUTE7;
125 ELSE
126 RETURN NULL;
127 END IF;
128 ELSIF p_attr_code =('ATTRIBUTE8') THEN
129 IF NVL(p_record.ATTRIBUTE8, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
130 RETURN p_record.ATTRIBUTE8;
131 ELSE
132 RETURN NULL;
133 END IF;
134 ELSIF p_attr_code =('ATTRIBUTE9') THEN
135 IF NVL(p_record.ATTRIBUTE9, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
136 RETURN p_record.ATTRIBUTE9;
137 ELSE
138 RETURN NULL;
139 END IF;
140 ELSIF p_attr_code =('CHECK_NUMBER') THEN
141 IF NVL(p_record.CHECK_NUMBER, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
142 RETURN p_record.CHECK_NUMBER;
143 ELSE
144 RETURN NULL;
145 END IF;
146 ELSIF p_attr_code =('COMMITMENT_APPLIED_AMOUNT') THEN
147 IF NVL(p_record.COMMITMENT_APPLIED_AMOUNT, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
148 RETURN p_record.COMMITMENT_APPLIED_AMOUNT;
149 ELSE
150 RETURN NULL;
151 END IF;
152 ELSIF p_attr_code =('COMMITMENT_INTERFACED_AMOUNT') THEN
153 IF NVL(p_record.COMMITMENT_INTERFACED_AMOUNT, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
154 RETURN p_record.COMMITMENT_INTERFACED_AMOUNT;
155 ELSE
156 RETURN NULL;
157 END IF;
158 ELSIF p_attr_code =('CONTEXT') THEN
159 IF NVL(p_record.CONTEXT, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
160 RETURN p_record.CONTEXT;
161 ELSE
162 RETURN NULL;
163 END IF;
164 ELSIF p_attr_code =('CREATED_BY') THEN
165 IF NVL(p_record.CREATED_BY, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
166 RETURN p_record.CREATED_BY;
167 ELSE
168 RETURN NULL;
169 END IF;
170 ELSIF p_attr_code =('CREATION_DATE') THEN
171 IF NVL(p_record.CREATION_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
172 RETURN p_record.CREATION_DATE;
173 ELSE
174 RETURN NULL;
175 END IF;
176 ELSIF p_attr_code =('CREDIT_CARD_APPROVAL_CODE') THEN
177 IF NVL(p_record.CREDIT_CARD_APPROVAL_CODE, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
178 RETURN p_record.CREDIT_CARD_APPROVAL_CODE;
179 ELSE
180 RETURN NULL;
181 END IF;
182 ELSIF p_attr_code =('CREDIT_CARD_APPROVAL_DATE') THEN
183 IF NVL(p_record.CREDIT_CARD_APPROVAL_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
184 RETURN p_record.CREDIT_CARD_APPROVAL_DATE;
185 ELSE
186 RETURN NULL;
187 END IF;
188 ELSIF p_attr_code =('CREDIT_CARD_CODE') THEN
189 IF NVL(p_record.CREDIT_CARD_CODE, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
190 RETURN p_record.CREDIT_CARD_CODE;
191 ELSE
192 RETURN NULL;
193 END IF;
194 ELSIF p_attr_code =('CREDIT_CARD_EXPIRATION_DATE') THEN
195 IF NVL(p_record.CREDIT_CARD_EXPIRATION_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
196 RETURN p_record.CREDIT_CARD_EXPIRATION_DATE;
197 ELSE
198 RETURN NULL;
199 END IF;
200 ELSIF p_attr_code =('CREDIT_CARD_HOLDER_NAME') THEN
201 IF NVL(p_record.CREDIT_CARD_HOLDER_NAME, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
202 RETURN p_record.CREDIT_CARD_HOLDER_NAME;
203 ELSE
204 RETURN NULL;
205 END IF;
206 ELSIF p_attr_code =('CREDIT_CARD_NUMBER') THEN
207 IF NVL(p_record.CREDIT_CARD_NUMBER, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
208 RETURN p_record.CREDIT_CARD_NUMBER;
209 ELSE
210 RETURN NULL;
211 END IF;
212 ELSIF p_attr_code =('DB_FLAG') THEN
213 IF NVL(p_record.DB_FLAG, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
214 RETURN p_record.DB_FLAG;
215 ELSE
216 RETURN NULL;
217 END IF;
218 ELSIF p_attr_code =('HEADER_ID') THEN
219 IF NVL(p_record.HEADER_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
220 RETURN p_record.HEADER_ID;
221 ELSE
222 RETURN NULL;
223 END IF;
224 ELSIF p_attr_code =('LAST_UPDATED_BY') THEN
225 IF NVL(p_record.LAST_UPDATED_BY, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
226 RETURN p_record.LAST_UPDATED_BY;
227 ELSE
228 RETURN NULL;
229 END IF;
230 ELSIF p_attr_code =('LAST_UPDATE_DATE') THEN
231 IF NVL(p_record.LAST_UPDATE_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
232 RETURN p_record.LAST_UPDATE_DATE;
233 ELSE
234 RETURN NULL;
235 END IF;
236 ELSIF p_attr_code =('LAST_UPDATE_LOGIN') THEN
237 IF NVL(p_record.LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
238 RETURN p_record.LAST_UPDATE_LOGIN;
239 ELSE
240 RETURN NULL;
241 END IF;
242 ELSIF p_attr_code =('LINE_ID') THEN
243 IF NVL(p_record.LINE_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
244 RETURN p_record.LINE_ID;
245 ELSE
246 RETURN NULL;
247 END IF;
248 ELSIF p_attr_code =('OPERATION') THEN
249 IF NVL(p_record.OPERATION, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
250 RETURN p_record.OPERATION;
251 ELSE
252 RETURN NULL;
253 END IF;
254 ELSIF p_attr_code =('PAYMENT_AMOUNT') THEN
255 IF NVL(p_record.PAYMENT_AMOUNT, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
256 RETURN p_record.PAYMENT_AMOUNT;
257 ELSE
258 RETURN NULL;
259 END IF;
260 ELSIF p_attr_code =('PAYMENT_COLLECTION_EVENT') THEN
261 IF NVL(p_record.PAYMENT_COLLECTION_EVENT, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
262 RETURN p_record.PAYMENT_COLLECTION_EVENT;
263 ELSE
264 RETURN NULL;
265 END IF;
266 ELSIF p_attr_code =('PAYMENT_LEVEL_CODE') THEN
267 IF NVL(p_record.PAYMENT_LEVEL_CODE, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
268 RETURN p_record.PAYMENT_LEVEL_CODE;
269 ELSE
270 RETURN NULL;
271 END IF;
272 ELSIF p_attr_code =('PAYMENT_NUMBER') THEN
273 IF NVL(p_record.PAYMENT_NUMBER, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
274 RETURN p_record.PAYMENT_NUMBER;
275 ELSE
276 RETURN NULL;
277 END IF;
278 ELSIF p_attr_code =('PAYMENT_SET_ID') THEN
279 IF NVL(p_record.PAYMENT_SET_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
280 RETURN p_record.PAYMENT_SET_ID;
281 ELSE
282 RETURN NULL;
283 END IF;
284 ELSIF p_attr_code =('PAYMENT_TRX_ID') THEN
285 IF NVL(p_record.PAYMENT_TRX_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
286 RETURN p_record.PAYMENT_TRX_ID;
287 ELSE
288 RETURN NULL;
289 END IF;
290 ELSIF p_attr_code =('PAYMENT_TYPE_CODE') THEN
291 IF NVL(p_record.PAYMENT_TYPE_CODE, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
292 RETURN p_record.PAYMENT_TYPE_CODE;
293 ELSE
294 RETURN NULL;
295 END IF;
296 ELSIF p_attr_code =('PREPAID_AMOUNT') THEN
297 IF NVL(p_record.PREPAID_AMOUNT, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
298 RETURN p_record.PREPAID_AMOUNT;
299 ELSE
300 RETURN NULL;
301 END IF;
302 ELSIF p_attr_code =('PROGRAM_APPLICATION_ID') THEN
303 IF NVL(p_record.PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
304 RETURN p_record.PROGRAM_APPLICATION_ID;
305 ELSE
306 RETURN NULL;
307 END IF;
308 ELSIF p_attr_code =('PROGRAM_ID') THEN
309 IF NVL(p_record.PROGRAM_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
310 RETURN p_record.PROGRAM_ID;
311 ELSE
312 RETURN NULL;
313 END IF;
314 ELSIF p_attr_code =('PROGRAM_UPDATE_DATE') THEN
315 IF NVL(p_record.PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
316 RETURN p_record.PROGRAM_UPDATE_DATE;
317 ELSE
318 RETURN NULL;
319 END IF;
320 ELSIF p_attr_code =('RECEIPT_METHOD_ID') THEN
321 IF NVL(p_record.RECEIPT_METHOD_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
322 RETURN p_record.RECEIPT_METHOD_ID;
323 ELSE
324 RETURN NULL;
325 END IF;
326 ELSIF p_attr_code =('REQUEST_ID') THEN
327 IF NVL(p_record.REQUEST_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
328 RETURN p_record.REQUEST_ID;
329 ELSE
330 RETURN NULL;
331 END IF;
332 ELSIF p_attr_code =('RETURN_STATUS') THEN
333 IF NVL(p_record.RETURN_STATUS, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
334 RETURN p_record.RETURN_STATUS;
335 ELSE
336 RETURN NULL;
337 END IF;
338 ELSIF p_attr_code =('TANGIBLE_ID') THEN
339 IF NVL(p_record.TANGIBLE_ID, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
340 RETURN p_record.TANGIBLE_ID;
341 ELSE
342 RETURN NULL;
343 END IF;
344 ELSE
345 RETURN NULL;
346 END IF;
347 END Get_Attr_Val_Varchar2;
348
349
350 FUNCTION Get_Attr_Val_Date
351 ( p_attr_code IN VARCHAR2
352 , p_record IN OE_AK_HEADER_PAYMENTS_V%ROWTYPE
353 ) RETURN DATE
354 IS
355 BEGIN
356
357 IF p_attr_code =('CREATION_DATE') THEN
358 IF NVL(p_record.CREATION_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
359 RETURN p_record.CREATION_DATE;
360 ELSE
361 RETURN NULL;
362 END IF;
363 ELSIF p_attr_code =('CREDIT_CARD_APPROVAL_DATE') THEN
364 IF NVL(p_record.CREDIT_CARD_APPROVAL_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
365 RETURN p_record.CREDIT_CARD_APPROVAL_DATE;
366 ELSE
367 RETURN NULL;
368 END IF;
369 ELSIF p_attr_code =('CREDIT_CARD_EXPIRATION_DATE') THEN
370 IF NVL(p_record.CREDIT_CARD_EXPIRATION_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
371 RETURN p_record.CREDIT_CARD_EXPIRATION_DATE;
372 ELSE
373 RETURN NULL;
374 END IF;
375 ELSIF p_attr_code =('LAST_UPDATE_DATE') THEN
376 IF NVL(p_record.LAST_UPDATE_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
377 RETURN p_record.LAST_UPDATE_DATE;
378 ELSE
379 RETURN NULL;
380 END IF;
381 ELSIF p_attr_code =('PROGRAM_UPDATE_DATE') THEN
382 IF NVL(p_record.PROGRAM_UPDATE_DATE, FND_API.G_MISS_DATE) <> FND_API.G_MISS_DATE THEN
383 RETURN p_record.PROGRAM_UPDATE_DATE;
384 ELSE
385 RETURN NULL;
386 END IF;
387 ELSIF p_attr_code =('ATTRIBUTE1') THEN
388 IF NVL(p_record.ATTRIBUTE1, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
389 RETURN to_date(p_record.ATTRIBUTE1,'RRRR/MM/DD HH24:MI:SS');
390 ELSE
391 RETURN NULL;
392 END IF;
393 ELSIF p_attr_code =('ATTRIBUTE10') THEN
394 IF NVL(p_record.ATTRIBUTE10, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
395 RETURN to_date(p_record.ATTRIBUTE10,'RRRR/MM/DD HH24:MI:SS');
396 ELSE
397 RETURN NULL;
398 END IF;
399 ELSIF p_attr_code =('ATTRIBUTE11') THEN
400 IF NVL(p_record.ATTRIBUTE11, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
401 RETURN to_date(p_record.ATTRIBUTE11,'RRRR/MM/DD HH24:MI:SS');
402 ELSE
403 RETURN NULL;
404 END IF;
405 ELSIF p_attr_code =('ATTRIBUTE12') THEN
406 IF NVL(p_record.ATTRIBUTE12, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
407 RETURN to_date(p_record.ATTRIBUTE12,'RRRR/MM/DD HH24:MI:SS');
408 ELSE
409 RETURN NULL;
410 END IF;
411 ELSIF p_attr_code =('ATTRIBUTE13') THEN
412 IF NVL(p_record.ATTRIBUTE13, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
413 RETURN to_date(p_record.ATTRIBUTE13,'RRRR/MM/DD HH24:MI:SS');
414 ELSE
415 RETURN NULL;
416 END IF;
417 ELSIF p_attr_code =('ATTRIBUTE14') THEN
418 IF NVL(p_record.ATTRIBUTE14, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
419 RETURN to_date(p_record.ATTRIBUTE14,'RRRR/MM/DD HH24:MI:SS');
420 ELSE
421 RETURN NULL;
422 END IF;
423 ELSIF p_attr_code =('ATTRIBUTE15') THEN
424 IF NVL(p_record.ATTRIBUTE15, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
425 RETURN to_date(p_record.ATTRIBUTE15,'RRRR/MM/DD HH24:MI:SS');
426 ELSE
427 RETURN NULL;
428 END IF;
429 ELSIF p_attr_code =('ATTRIBUTE2') THEN
430 IF NVL(p_record.ATTRIBUTE2, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
431 RETURN to_date(p_record.ATTRIBUTE2,'RRRR/MM/DD HH24:MI:SS');
432 ELSE
433 RETURN NULL;
434 END IF;
435 ELSIF p_attr_code =('ATTRIBUTE3') THEN
436 IF NVL(p_record.ATTRIBUTE3, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
437 RETURN to_date(p_record.ATTRIBUTE3,'RRRR/MM/DD HH24:MI:SS');
438 ELSE
439 RETURN NULL;
440 END IF;
441 ELSIF p_attr_code =('ATTRIBUTE4') THEN
442 IF NVL(p_record.ATTRIBUTE4, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
443 RETURN to_date(p_record.ATTRIBUTE4,'RRRR/MM/DD HH24:MI:SS');
444 ELSE
445 RETURN NULL;
446 END IF;
447 ELSIF p_attr_code =('ATTRIBUTE5') THEN
448 IF NVL(p_record.ATTRIBUTE5, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
449 RETURN to_date(p_record.ATTRIBUTE5,'RRRR/MM/DD HH24:MI:SS');
450 ELSE
451 RETURN NULL;
452 END IF;
453 ELSIF p_attr_code =('ATTRIBUTE6') THEN
454 IF NVL(p_record.ATTRIBUTE6, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
455 RETURN to_date(p_record.ATTRIBUTE6,'RRRR/MM/DD HH24:MI:SS');
456 ELSE
457 RETURN NULL;
458 END IF;
459 ELSIF p_attr_code =('ATTRIBUTE7') THEN
460 IF NVL(p_record.ATTRIBUTE7, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
461 RETURN to_date(p_record.ATTRIBUTE7,'RRRR/MM/DD HH24:MI:SS');
462 ELSE
463 RETURN NULL;
464 END IF;
465 ELSIF p_attr_code =('ATTRIBUTE8') THEN
466 IF NVL(p_record.ATTRIBUTE8, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
467 RETURN to_date(p_record.ATTRIBUTE8,'RRRR/MM/DD HH24:MI:SS');
468 ELSE
469 RETURN NULL;
470 END IF;
471 ELSIF p_attr_code =('ATTRIBUTE9') THEN
472 IF NVL(p_record.ATTRIBUTE9, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
473 RETURN to_date(p_record.ATTRIBUTE9,'RRRR/MM/DD HH24:MI:SS');
474 ELSE
475 RETURN NULL;
476 END IF;
477 ELSIF p_attr_code =('CHECK_NUMBER') THEN
478 IF NVL(p_record.CHECK_NUMBER, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
479 RETURN to_date(p_record.CHECK_NUMBER,'RRRR/MM/DD HH24:MI:SS');
480 ELSE
481 RETURN NULL;
482 END IF;
483 ELSIF p_attr_code =('COMMITMENT_APPLIED_AMOUNT') THEN
484 IF NVL(p_record.COMMITMENT_APPLIED_AMOUNT, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
485 RETURN to_date(p_record.COMMITMENT_APPLIED_AMOUNT,'RRRR/MM/DD HH24:MI:SS');
486 ELSE
487 RETURN NULL;
488 END IF;
489 ELSIF p_attr_code =('COMMITMENT_INTERFACED_AMOUNT') THEN
490 IF NVL(p_record.COMMITMENT_INTERFACED_AMOUNT, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
491 RETURN to_date(p_record.COMMITMENT_INTERFACED_AMOUNT,'RRRR/MM/DD HH24:MI:SS');
492 ELSE
493 RETURN NULL;
494 END IF;
495 ELSIF p_attr_code =('CONTEXT') THEN
496 IF NVL(p_record.CONTEXT, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
497 RETURN to_date(p_record.CONTEXT,'RRRR/MM/DD HH24:MI:SS');
498 ELSE
499 RETURN NULL;
500 END IF;
501 ELSIF p_attr_code =('CREATED_BY') THEN
502 IF NVL(p_record.CREATED_BY, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
503 RETURN to_date(p_record.CREATED_BY,'RRRR/MM/DD HH24:MI:SS');
504 ELSE
505 RETURN NULL;
506 END IF;
507 ELSIF p_attr_code =('CREDIT_CARD_APPROVAL_CODE') THEN
508 IF NVL(p_record.CREDIT_CARD_APPROVAL_CODE, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
509 RETURN to_date(p_record.CREDIT_CARD_APPROVAL_CODE,'RRRR/MM/DD HH24:MI:SS');
510 ELSE
511 RETURN NULL;
512 END IF;
513 ELSIF p_attr_code =('CREDIT_CARD_CODE') THEN
514 IF NVL(p_record.CREDIT_CARD_CODE, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
515 RETURN to_date(p_record.CREDIT_CARD_CODE,'RRRR/MM/DD HH24:MI:SS');
516 ELSE
517 RETURN NULL;
518 END IF;
519 ELSIF p_attr_code =('CREDIT_CARD_HOLDER_NAME') THEN
520 IF NVL(p_record.CREDIT_CARD_HOLDER_NAME, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
521 RETURN to_date(p_record.CREDIT_CARD_HOLDER_NAME,'RRRR/MM/DD HH24:MI:SS');
522 ELSE
523 RETURN NULL;
524 END IF;
525 ELSIF p_attr_code =('CREDIT_CARD_NUMBER') THEN
526 IF NVL(p_record.CREDIT_CARD_NUMBER, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
527 RETURN to_date(p_record.CREDIT_CARD_NUMBER,'RRRR/MM/DD HH24:MI:SS');
528 ELSE
529 RETURN NULL;
530 END IF;
531 ELSIF p_attr_code =('DB_FLAG') THEN
532 IF NVL(p_record.DB_FLAG, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
533 RETURN to_date(p_record.DB_FLAG,'RRRR/MM/DD HH24:MI:SS');
534 ELSE
535 RETURN NULL;
536 END IF;
537 ELSIF p_attr_code =('HEADER_ID') THEN
538 IF NVL(p_record.HEADER_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
539 RETURN to_date(p_record.HEADER_ID,'RRRR/MM/DD HH24:MI:SS');
540 ELSE
541 RETURN NULL;
542 END IF;
543 ELSIF p_attr_code =('LAST_UPDATED_BY') THEN
544 IF NVL(p_record.LAST_UPDATED_BY, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
545 RETURN to_date(p_record.LAST_UPDATED_BY,'RRRR/MM/DD HH24:MI:SS');
546 ELSE
547 RETURN NULL;
548 END IF;
549 ELSIF p_attr_code =('LAST_UPDATE_LOGIN') THEN
550 IF NVL(p_record.LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
551 RETURN to_date(p_record.LAST_UPDATE_LOGIN,'RRRR/MM/DD HH24:MI:SS');
552 ELSE
553 RETURN NULL;
554 END IF;
555 ELSIF p_attr_code =('LINE_ID') THEN
556 IF NVL(p_record.LINE_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
557 RETURN to_date(p_record.LINE_ID,'RRRR/MM/DD HH24:MI:SS');
558 ELSE
559 RETURN NULL;
560 END IF;
561 ELSIF p_attr_code =('OPERATION') THEN
562 IF NVL(p_record.OPERATION, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
563 RETURN to_date(p_record.OPERATION,'RRRR/MM/DD HH24:MI:SS');
564 ELSE
565 RETURN NULL;
566 END IF;
567 ELSIF p_attr_code =('PAYMENT_AMOUNT') THEN
568 IF NVL(p_record.PAYMENT_AMOUNT, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
569 RETURN to_date(p_record.PAYMENT_AMOUNT,'RRRR/MM/DD HH24:MI:SS');
570 ELSE
571 RETURN NULL;
572 END IF;
573 ELSIF p_attr_code =('PAYMENT_COLLECTION_EVENT') THEN
574 IF NVL(p_record.PAYMENT_COLLECTION_EVENT, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
575 RETURN to_date(p_record.PAYMENT_COLLECTION_EVENT,'RRRR/MM/DD HH24:MI:SS');
576 ELSE
577 RETURN NULL;
578 END IF;
579 ELSIF p_attr_code =('PAYMENT_LEVEL_CODE') THEN
580 IF NVL(p_record.PAYMENT_LEVEL_CODE, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
581 RETURN to_date(p_record.PAYMENT_LEVEL_CODE,'RRRR/MM/DD HH24:MI:SS');
582 ELSE
583 RETURN NULL;
584 END IF;
585 ELSIF p_attr_code =('PAYMENT_NUMBER') THEN
586 IF NVL(p_record.PAYMENT_NUMBER, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
587 RETURN to_date(p_record.PAYMENT_NUMBER,'RRRR/MM/DD HH24:MI:SS');
588 ELSE
589 RETURN NULL;
590 END IF;
591 ELSIF p_attr_code =('PAYMENT_SET_ID') THEN
592 IF NVL(p_record.PAYMENT_SET_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
593 RETURN to_date(p_record.PAYMENT_SET_ID,'RRRR/MM/DD HH24:MI:SS');
594 ELSE
595 RETURN NULL;
596 END IF;
597 ELSIF p_attr_code =('PAYMENT_TRX_ID') THEN
598 IF NVL(p_record.PAYMENT_TRX_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
599 RETURN to_date(p_record.PAYMENT_TRX_ID,'RRRR/MM/DD HH24:MI:SS');
600 ELSE
601 RETURN NULL;
602 END IF;
603 ELSIF p_attr_code =('PAYMENT_TYPE_CODE') THEN
604 IF NVL(p_record.PAYMENT_TYPE_CODE, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
605 RETURN to_date(p_record.PAYMENT_TYPE_CODE,'RRRR/MM/DD HH24:MI:SS');
606 ELSE
607 RETURN NULL;
608 END IF;
609 ELSIF p_attr_code =('PREPAID_AMOUNT') THEN
610 IF NVL(p_record.PREPAID_AMOUNT, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
611 RETURN to_date(p_record.PREPAID_AMOUNT,'RRRR/MM/DD HH24:MI:SS');
612 ELSE
613 RETURN NULL;
614 END IF;
615 ELSIF p_attr_code =('PROGRAM_APPLICATION_ID') THEN
616 IF NVL(p_record.PROGRAM_APPLICATION_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
617 RETURN to_date(p_record.PROGRAM_APPLICATION_ID,'RRRR/MM/DD HH24:MI:SS');
618 ELSE
619 RETURN NULL;
620 END IF;
621 ELSIF p_attr_code =('PROGRAM_ID') THEN
622 IF NVL(p_record.PROGRAM_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
623 RETURN to_date(p_record.PROGRAM_ID,'RRRR/MM/DD HH24:MI:SS');
624 ELSE
625 RETURN NULL;
626 END IF;
627 ELSIF p_attr_code =('RECEIPT_METHOD_ID') THEN
628 IF NVL(p_record.RECEIPT_METHOD_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
629 RETURN to_date(p_record.RECEIPT_METHOD_ID,'RRRR/MM/DD HH24:MI:SS');
630 ELSE
631 RETURN NULL;
632 END IF;
633 ELSIF p_attr_code =('REQUEST_ID') THEN
634 IF NVL(p_record.REQUEST_ID, FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
635 RETURN to_date(p_record.REQUEST_ID,'RRRR/MM/DD HH24:MI:SS');
636 ELSE
637 RETURN NULL;
638 END IF;
639 ELSIF p_attr_code =('RETURN_STATUS') THEN
640 IF NVL(p_record.RETURN_STATUS, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
641 RETURN to_date(p_record.RETURN_STATUS,'RRRR/MM/DD HH24:MI:SS');
642 ELSE
643 RETURN NULL;
644 END IF;
645 ELSIF p_attr_code =('TANGIBLE_ID') THEN
646 IF NVL(p_record.TANGIBLE_ID, FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
647 RETURN to_date(p_record.TANGIBLE_ID,'RRRR/MM/DD HH24:MI:SS');
648 ELSE
649 RETURN NULL;
650 END IF;
651 ELSE
652 RETURN NULL;
653 END IF;
654
655 END Get_Attr_Val_Date;
656
657
658 PROCEDURE Clear_HEADER_PAYMENT_Cache
659 IS
660 BEGIN
661 g_cached_record.PAYMENT_NUMBER := null;
662 g_cached_record.HEADER_ID := null;
663 g_cached_record.LINE_ID := null;
664 END Clear_HEADER_PAYMENT_Cache;
665
666
667 FUNCTION Sync_HEADER_PAYMENT_Cache
668 ( p_PAYMENT_NUMBER IN NUMBER
669 , p_HEADER_ID IN NUMBER
670 , p_LINE_ID IN NUMBER
671
672
673 ) RETURN NUMBER
674 IS
675 CURSOR cache IS
676 SELECT * FROM OE_AK_HEADER_PAYMENTS_V
677 WHERE PAYMENT_NUMBER = p_PAYMENT_NUMBER
678 AND HEADER_ID = p_HEADER_ID
679 AND LINE_ID = p_LINE_ID
680 ;
681 BEGIN
682
683 IF (NVL(p_PAYMENT_NUMBER,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM)
684 OR (NVL(p_HEADER_ID,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM)
685 OR (NVL(p_LINE_ID,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM)
686 THEN
687 RETURN 0 ;
688 ELSIF (NVL(g_cached_record.PAYMENT_NUMBER,FND_API.G_MISS_NUM) <> p_PAYMENT_NUMBER)
689 OR (NVL(g_cached_record.HEADER_ID,FND_API.G_MISS_NUM) <> p_HEADER_ID)
690 OR (NVL(g_cached_record.LINE_ID,FND_API.G_MISS_NUM) <> p_LINE_ID)
691 THEN
692 Clear_HEADER_PAYMENT_Cache;
693 Open cache;
694 FETCH cache into g_cached_record;
695 IF cache%NOTFOUND THEN
696 RETURN 0;
697 END IF;
698 Close cache;
699 RETURN 1 ;
700 END IF;
701
702 RETURN 1 ;
703 EXCEPTION
704 WHEN OTHERS THEN
705 RETURN 0 ;
706 END Sync_HEADER_PAYMENT_Cache;
707
708
709 FUNCTION Get_Foreign_Attr_Val_Varchar2
710 ( p_foreign_attr_code IN VARCHAR2
711 , p_record IN OE_AK_HEADER_PAYMENTS_V%ROWTYPE
712 , p_foreign_database_object_name IN VARCHAR2
713 ) RETURN VARCHAR2
714
715 IS
716
717 BEGIN
718
719 IF (p_foreign_database_object_name = 'OE_AK_ORDER_HEADERS_V') THEN
720 IF NVL(p_record.HEADER_ID,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM THEN
721 RETURN NULL;
722 END IF;
723 IF ONT_HEADER_Def_Util.Sync_HEADER_Cache
724 (p_HEADER_ID => p_record.HEADER_ID) = 1 then
725 RETURN ONT_HEADER_Def_Util.Get_Attr_Val_Varchar2
726 (p_foreign_attr_code,ONT_HEADER_Def_Util.g_cached_record);
727 END IF;
728 END IF;
729
730 RETURN NULL;
731 END Get_Foreign_Attr_Val_Varchar2;
732
733 FUNCTION Get_Foreign_Attr_Val_Date
734 ( p_foreign_attr_code IN VARCHAR2
735 , p_record IN OE_AK_HEADER_PAYMENTS_V%ROWTYPE
736 , p_foreign_database_object_name IN VARCHAR2
737 ) RETURN DATE
738
739 IS
740 BEGIN
741
742 IF (p_foreign_database_object_name = 'OE_AK_ORDER_HEADERS_V') THEN
743 IF NVL(p_record.HEADER_ID,FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM THEN
744 RETURN NULL;
745 END IF;
746 IF ONT_HEADER_Def_Util.Sync_HEADER_Cache
747 (p_HEADER_ID => p_record.HEADER_ID) = 1 then
748 RETURN ONT_HEADER_Def_Util.Get_Attr_Val_Date(p_foreign_attr_code,ONT_HEADER_Def_Util.g_cached_record);
749 END IF;
750 END IF;
751
752 RETURN NULL;
753 END Get_Foreign_Attr_Val_Date;
754
755
756 FUNCTION Get_Condition_Index_In_Cache
757 ( p_condition_id IN NUMBER
758 ) RETURN NUMBER
759 IS
760 BEGIN
761
762 FOR i in 0..g_conditions_tbl_cache.COUNT -1 LOOP
763 if (g_conditions_tbl_cache(i).condition_id = p_condition_id ) then
764 RETURN i;
765 END IF;
766 END LOOP;
767 RETURN -1;
768 END Get_Condition_Index_In_Cache;
769 FUNCTION Validate_Defaulting_Condition
770 ( p_condition_id IN NUMBER
771 , p_header_payment_rec IN OE_AK_HEADER_PAYMENTS_V%ROWTYPE
772 ) RETURN BOOLEAN
773 IS
774 CURSOR CONDNS IS
775 SELECT condition_id,group_number,attribute_code,
776 value_op,value_string
777 FROM OE_DEF_CONDN_ELEMS
778 WHERE condition_id = p_condition_id
779 ORDER BY group_number;
780
781 I NUMBER;
782 l_column_value VARCHAR2(255);
783 l_start_index NUMBER;
784 l_stop_index NUMBER ;
785 l_curr_group NUMBER;
786 l_group_result BOOLEAN;
787 l_element_result BOOLEAN;
788 BEGIN
789
790 l_start_index := Get_Condition_Index_In_Cache(p_condition_id);
791 IF (l_start_index = -1) THEN
792 l_stop_index := g_conditions_tbl_cache.COUNT;
793 l_start_index := l_stop_index;
794 i := l_start_index;
795 FOR condns_rec IN CONDNS LOOP
796 g_conditions_tbl_cache(i).condition_id := condns_rec.condition_id;
797 g_conditions_tbl_cache(i).group_number := condns_rec.group_number;
798 g_conditions_tbl_cache(i).attribute_code := condns_rec.attribute_code;
799 g_conditions_tbl_cache(i).value_op := condns_rec.value_op;
800 g_conditions_tbl_cache(i).value_string := condns_rec.value_string;
801 i := i+1;
802 END LOOP;
803 IF (i = l_start_index) THEN
804 Return FALSE;
805 END IF;
806 END IF;
807
808
809 i := 0;
810 l_curr_group := g_conditions_tbl_cache(l_start_index).group_number;
811 l_group_result := TRUE;
812 l_element_result := FALSE;
813
814 IF g_conditions_tbl_cache.COUNT <> 0 then
815 FOR J in l_start_index ..g_conditions_tbl_cache.COUNT -1 LOOP
816 IF (g_conditions_tbl_cache(j).condition_id <> p_condition_id) THEN
817 EXIT;
818 END IF;
819
820 IF (l_curr_group <> g_conditions_tbl_cache(j).group_number) THEN
821 IF (l_group_result = TRUE) THEN
822 EXIT;
823 ELSE
824 l_group_result := TRUE;
825 END IF;
826 END IF;
827
828 l_element_result := ONT_Def_Util.Validate_Value(g_conditions_tbl_cache(j).value_string,
829 g_conditions_tbl_cache(j).value_op,Get_Attr_Val_Varchar2(g_conditions_tbl_cache(j).attribute_code,p_header_payment_rec ));
830 l_group_result := l_group_result AND l_element_result;
831 END LOOP;
832 ELSE
833 l_group_result := FALSE;
834 END IF;
835 RETURN l_group_result;
836 END Validate_Defaulting_Condition;
837
838
839 PROCEDURE Update_Attr_Rules_Cache
840 ( p_condn_index IN NUMBER
841 )
842 IS
843 l_index NUMBER := 0;
844 l_start_index NUMBER := 0;
845 l_attribute_code VARCHAR2(30);
846 l_condition_id NUMBER;
847 CURSOR DEFSRC IS SELECT
848 R.SEQUENCE_NO,
849 R.SRC_TYPE,
850 R.SRC_ATTRIBUTE_CODE,
851 R.SRC_DATABASE_OBJECT_NAME,
852 R.SRC_PARAMETER_NAME,
853 R.SRC_SYSTEM_VARIABLE_EXPR,
854 R.SRC_PROFILE_OPTION,
855 R.SRC_API_PKG||'.'||R.SRC_API_FN SRC_API_NAME,
856 R.SRC_CONSTANT_VALUE,
857 R.SRC_SEQUENCE_NAME
858 FROM OE_DEF_ATTR_DEF_RULES R, OE_DEF_ATTR_CONDNS C
859 WHERE R.database_object_name = g_database_object_name
860 AND R.attribute_code = l_attribute_code
861 AND C.database_object_name = g_database_object_name
862 AND C.attribute_code = l_attribute_code
863 AND R.attr_def_condition_id = C.attr_def_condition_id
864 AND C.CONDITION_ID = l_condition_id
865 AND C.ENABLED_FLAG = 'Y'
866 ORDER BY SEQUENCE_NO;
867 BEGIN
868
869 l_attribute_code := g_attr_condns_cache(p_condn_index).attribute_code;
870 l_condition_id := g_attr_condns_cache(p_condn_index).condition_id;
871 l_start_index := g_attr_rules_cache.COUNT + 1;
872
873 FOR DEFSRC_rec IN DEFSRC LOOP
874 l_index := g_attr_rules_cache.COUNT + 1;
875 g_attr_rules_cache(l_index).SRC_TYPE
876 := DEFSRC_rec.SRC_TYPE;
877 g_attr_rules_cache(l_index).SRC_ATTRIBUTE_CODE
878 := DEFSRC_rec.SRC_ATTRIBUTE_CODE;
879 g_attr_rules_cache(l_index).SRC_DATABASE_OBJECT_NAME
880 := DEFSRC_rec.SRC_DATABASE_OBJECT_NAME;
881 g_attr_rules_cache(l_index).SRC_PARAMETER_NAME
882 := DEFSRC_rec.SRC_PARAMETER_NAME;
883 g_attr_rules_cache(l_index).SRC_SYSTEM_VARIABLE_EXPR
884 := DEFSRC_rec.SRC_SYSTEM_VARIABLE_EXPR;
885 g_attr_rules_cache(l_index).SRC_PROFILE_OPTION
886 := DEFSRC_rec.SRC_PROFILE_OPTION;
887 g_attr_rules_cache(l_index).SRC_API_NAME
888 := DEFSRC_rec.SRC_API_NAME;
889 g_attr_rules_cache(l_index).SRC_CONSTANT_VALUE
890 := DEFSRC_rec.SRC_CONSTANT_VALUE;
891 g_attr_rules_cache(l_index).SRC_SEQUENCE_NAME
892 := DEFSRC_rec.SRC_SEQUENCE_NAME;
893 END LOOP;
894
895 IF l_index > 0 THEN
896 g_attr_condns_cache(p_condn_index).rules_start_index := l_start_index;
897 g_attr_condns_cache(p_condn_index).rules_stop_index := l_index;
898 ELSE
899 g_attr_condns_cache(p_condn_index).rules_start_index := -1;
900 END IF;
901
902 EXCEPTION
903 WHEN OTHERS THEN
904 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
905 THEN
906 OE_MSG_PUB.Add_Exc_Msg
907 ( G_PKG_NAME ,
908 'Update_Attr_Rules_Cache: '||l_attribute_code
909 );
910 END IF;
911 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
912 END Update_Attr_Rules_Cache;
913
914
915 PROCEDURE Get_Valid_Defaulting_Rules
916 ( p_attr_code IN VARCHAR2
917 , p_attr_id IN NUMBER
918 , p_header_payment_rec IN OE_AK_HEADER_PAYMENTS_V%ROWTYPE
919 , x_rules_start_index_tbl OUT OE_GLOBALS.NUMBER_TBL_Type
920 , x_rules_stop_index_tbl OUT OE_GLOBALS.NUMBER_TBL_Type
921 ) IS
922 l_condn_index NUMBER;
923 l_index NUMBER := 0;
924 l_valid_condn_index_tbl OE_GLOBALS.Number_TBL_Type;
925 condns_cached BOOLEAN := FALSE;
926 num_attr_condns NUMBER := 0;
927 CURSOR ATTRC IS
928 SELECT condition_id
929 FROM OE_DEF_ATTR_CONDNS
930 WHERE attribute_code = p_attr_code
931 AND database_object_name = g_database_object_name
932 AND enabled_flag = 'Y'
933 ORDER BY precedence;
934 BEGIN
935
936 l_condn_index := p_attr_id * ONT_Def_Util.G_MAX_ATTR_CONDNS;
937
938 -- Check in the cache
939 WHILE g_attr_condns_cache.EXISTS(l_condn_index) LOOP
940 condns_cached := TRUE;
941 IF g_attr_condns_cache(l_condn_index).conditions_defined = 'N' THEN
942 EXIT;
943 ELSE
944 IF (g_attr_condns_cache(l_condn_index).condition_id = 0 OR
945 Validate_Defaulting_Condition
946 (g_attr_condns_cache(l_condn_index).condition_id,p_header_payment_rec)= TRUE) THEN
947 l_index := l_index + 1;
948 l_valid_condn_index_tbl(l_index) := l_condn_index;
949 END IF;
950 END IF;
951 l_condn_index := l_condn_index + 1;
952 END LOOP;
953
954 -- If the conditions were cached for this attribute,
955 -- then return rules for valid conditions
956 IF condns_cached THEN
957
958 GOTO Return_Rules;
959
960 -- If the conditions were NOT cached for this attribute,
961 -- then cache them AND get the conditions that are valid
962 -- for the current record
963 ELSE
964 FOR c_rec IN ATTRC LOOP
965 -- Put it in the cache
966 g_attr_condns_cache(l_condn_index).attribute_code
967 := p_attr_code;
968 g_attr_condns_cache(l_condn_index).condition_id
969 := c_rec.condition_id;
970 g_attr_condns_cache(l_condn_index).conditions_defined
971 := 'Y';
972 IF (c_rec.condition_id = 0 OR
973 Validate_Defaulting_Condition
974 (c_rec.condition_id,p_header_payment_rec)= TRUE) THEN
975 l_index := l_index + 1;
976 l_valid_condn_index_tbl(l_index) := l_condn_index;
977 END IF;
978 l_condn_index := l_condn_index + 1;
979 num_attr_condns := num_attr_condns + 1;
980 END LOOP;
981
982 -- No defaulting conditions defined for this attribute,
983 -- insert a new record in the cache with conditions_defined = 'N'
984 IF num_attr_condns = 0 THEN
985 g_attr_condns_cache(l_condn_index).attribute_code
986 := p_attr_code;
987 g_attr_condns_cache(l_condn_index).conditions_defined
988 := 'N';
989 END IF;
990
991 END IF;
992
993 <<Return_Rules>>
994 FOR I IN 1..l_index LOOP
995 IF g_attr_condns_cache(l_valid_condn_index_tbl(I)).rules_start_index IS NULL THEN
996 Update_Attr_Rules_Cache(l_valid_condn_index_tbl(I));
997 END IF;
998 x_rules_start_index_tbl(I) := g_attr_condns_cache(l_valid_condn_index_tbl(I)).rules_start_index;
999 x_rules_stop_index_tbl(I) := g_attr_condns_cache(l_valid_condn_index_tbl(I)).rules_stop_index;
1000 END LOOP;
1001
1002 EXCEPTION
1003 WHEN OTHERS THEN
1004 IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1005 THEN
1006 OE_MSG_PUB.Add_Exc_Msg
1007 ( G_PKG_NAME ,
1008 'Get_Valid_Defaulting_Rules :'||p_attr_code
1009 );
1010 END IF;
1011 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1012 END Get_Valid_Defaulting_Rules;
1013
1014
1015 END ONT_HEADER_PAYMENT_Def_Util;