[Home] [Help]
PACKAGE BODY: APPS.PON_DATATEMPLATE_PKG
Source
1 PACKAGE BODY PON_DATATEMPLATE_PKG AS
2 /* $Header: PON_DATATEMPLATE_PKG.plb 120.4 2011/02/17 09:23:13 nbingi ship $ */
3
4
5 FUNCTION GET_UDA_HEADER_XML RETURN XMLType IS
6 CURSOR C_ATTR_GRP IS
7 SELECT AG.DESCRIPTIVE_FLEX_CONTEXT_CODE ATTR_GROUP, AG.ATTR_GROUP_ID
8 ATTR_GROUP_ID,
9 AG.DESCRIPTIVE_FLEXFIELD_NAME DESC_FLEXFLD_NAME, AG.MULTI_ROW
10 MULTI_ROW
11 FROM EGO_FND_DSC_FLX_CTX_EXT AG, pon_auction_headers_all H,
12 PO_UDA_AG_TEMPLATES POT, PO_UDA_AG_TEMPLATE_USAGES POTU
13 WHERE H.auction_header_id = p_auction_header_id
14 AND H.UDA_TEMPLATE_ID = POT.TEMPLATE_ID
15 AND POT.TEMPLATE_ID = POTU.TEMPLATE_ID
16 AND AG.DESCRIPTIVE_FLEXFIELD_NAME = POT.ENTITY_CODE
17 AND AG.ATTR_GROUP_ID = POTU.ATTRIBUTE_GROUP_ID
18 and POTU.attribute_group_id in (select distinct attr_group_id from PON_AUCTION_HEADERS_EXT_B
19 where AUCTION_HEADER_ID = H.auction_header_id and attr_group_id = POTU.attribute_group_id)
20
21 ORDER BY POTU.ATTRIBUTE_GROUP_SEQUENCE;
22
23 CURSOR C_ATTR_MD(P_ATTR_GROUP VARCHAR2, P_DESC_FLEXFLD_NAME VARCHAR2) IS
24 SELECT EFDFCE.ATTR_ID ,
25 EFDFCE.APPLICATION_COLUMN_NAME ,
26 FCU.END_USER_COLUMN_NAME,
27 fcu.flex_value_set_id,
28 EFDFCE.data_type
29 FROM
30 EGO_FND_DF_COL_USGS_EXT EFDFCE
31 , FND_DESCR_FLEX_COLUMN_USAGES FCU
32 WHERE EFDFCE.DESCRIPTIVE_FLEXFIELD_NAME = P_DESC_FLEXFLD_NAME
33 AND EFDFCE.DESCRIPTIVE_FLEX_CONTEXT_CODE = P_ATTR_GROUP
34 AND FCU.DESCRIPTIVE_FLEX_CONTEXT_CODE =
35 EFDFCE.DESCRIPTIVE_FLEX_CONTEXT_CODE
36 AND FCU.DESCRIPTIVE_FLEXFIELD_NAME =
37 EFDFCE.DESCRIPTIVE_FLEXFIELD_NAME
38 AND FCU.APPLICATION_COLUMN_NAME = EFDFCE.APPLICATION_COLUMN_NAME
39 AND FCU.DISPLAY_FLAG <> 'H';
40
41 L_SQL VARCHAR2(32767);
42 L_OP VARCHAR2(32767);
43 L_ATTR_GRP NUMBER;
44 L_CTR NUMBER;
45 L_O_CTR NUMBER;
46 l_uda_xml XMLTYPE;
47
48 p_application_id number := 201;
49 p_attr_internal_str_value varchar2(100);
50
51 p_attr_internal_name varchar2(100);
52 p_attr_group_type varchar2(200) := 'PON_AUC_HDRS_EXT_ATTRS';
53 p_attr_group_int_name varchar2(200);
54
55 p_object_name varchar2(200) := 'PON_AUCTION_HEADERS_EXT_B';
56
57 p_pk1_column_name varchar2(200) := 'AUCTION_HEADER_ID';
58 p_pk1_value number := p_auction_header_id;
59
60
61 BEGIN
62
63 L_O_CTR := 0;
64 FOR REC IN C_ATTR_GRP LOOP
65 IF REC.MULTI_ROW = 'Y' THEN
66 IF L_O_CTR > 0 THEN
67 L_SQL := L_SQL || ',' || '(select XMLElement("' || REC.ATTR_GROUP
68 || '", XMLAgg(XMLForest(' ;
69 ELSE
70 L_SQL := '(select XMLElement("' || REC.ATTR_GROUP || '",
71 XMLAgg(XMLForest(';
72 END IF;
73 ELSE
74 IF L_O_CTR > 0 THEN
75 L_SQL := L_SQL || ',' || '(select XMLElement("' || REC.ATTR_GROUP
76 || '", XMLForest(' ;
77 ELSE
78 L_SQL := '(select XMLElement("' || REC.ATTR_GROUP || '", XMLForest(';
79 END IF;
80 END IF;
81 L_CTR := 0 ;
82 FOR R IN C_ATTR_MD(REC.ATTR_GROUP, REC.DESC_FLEXFLD_NAME) LOOP
83 IF L_CTR = 0 THEN
84 L_SQL := L_SQL || R.APPLICATION_COLUMN_NAME || ' as ' ||
85 R.END_USER_COLUMN_NAME;
86 ELSE
87 L_SQL := L_SQL || ',' || R.APPLICATION_COLUMN_NAME || ' as ' ||
88 R.END_USER_COLUMN_NAME;
89 END IF;
90
91 if r.flex_value_set_id is not null then
92 if (r.data_type = 'C' or r.data_type = 'A' ) then
93 l_sql := l_sql || ',' || ' EGO_USER_ATTRS_DATA_PVT.Get_Attr_Disp_Val_From_VSet ( ' ||
94 p_application_id || ',' || ' null, ' ||
95 R.APPLICATION_COLUMN_NAME || ', null , ''' ||
96 R.END_USER_COLUMN_NAME || ''',''' ||
97 p_attr_group_type || ''',''' ||
98 REC.ATTR_GROUP || ''',' ||
99 r.attr_id || ',''' ||
100 p_object_name || ''',''' ||
101 p_pk1_column_name || ''',' ||
102 p_pk1_value || ') as ' || R.end_user_column_name || '_DESC' ;
103 elsif r.data_type = 'N' then
104 l_sql := l_sql || ',' || ' EGO_USER_ATTRS_DATA_PVT.Get_Attr_Disp_Val_From_VSet ( ' ||
105 p_application_id || ',' || ' null, null, ' ||
106 R.APPLICATION_COLUMN_NAME || ', ''' ||
107 R.END_USER_COLUMN_NAME || ''',''' ||
108 p_attr_group_type || ''',''' ||
109 REC.ATTR_GROUP || ''',' ||
110 r.attr_id || ',''' ||
111 p_object_name || ''',''' ||
112 p_pk1_column_name || ''',' ||
113 p_pk1_value || ') as ' || R.end_user_column_name || '_DESC' ;
114 elsif (r.data_type = 'X' or r.data_type = 'Y') then
115 l_sql := l_sql || ',' || ' EGO_USER_ATTRS_DATA_PVT.Get_Attr_Disp_Val_From_VSet ( ' ||
116 p_application_id || ',' || R.APPLICATION_COLUMN_NAME ||
117 ' , null, null, ''' ||
118 R.END_USER_COLUMN_NAME || ''',''' ||
119 p_attr_group_type || ''',''' ||
120 REC.ATTR_GROUP || ''',' ||
121 r.attr_id || ',''' ||
122 p_object_name || ''',''' ||
123 p_pk1_column_name || ''',' ||
124 p_pk1_value || ') as ' || R.end_user_column_name || '_DESC' ;
125 end if;
126 end if;
127
128
129
130 L_CTR := L_CTR + 1;
131 END LOOP;
132 IF REC.MULTI_ROW = 'Y' THEN
133 L_SQL := L_SQL || ')))';
134 ELSE
135 L_SQL := L_SQL || ' ))';
136 END IF;
137 L_SQL := L_SQL || ' from PON_AUCTION_HEADERS_EXT_VL where
138 AUCTION_HEADER_ID = ' || p_auction_header_id || ' and attr_group_id = '
139 || REC.ATTR_GROUP_ID || ')' ;
140
141 L_O_CTR := L_O_CTR + 1;
142 END LOOP;
143
144 l_op := ' select XMLConcat(' || l_sql || ') from dual';
145 execute immediate l_op into l_uda_xml;
146
147 RETURN (l_uda_xml);
148 END;
149
150
151
152 FUNCTION GET_UDA_LINES_XML(p_line_id NUMBER) RETURN XMLTYPE IS
153 CURSOR C_ATTR_GRP IS
154 SELECT AG.DESCRIPTIVE_FLEX_CONTEXT_CODE ATTR_GROUP, AG.ATTR_GROUP_ID
155 ATTR_GROUP_ID,
156 AG.DESCRIPTIVE_FLEXFIELD_NAME DESC_FLEXFLD_NAME, AG.MULTI_ROW
157 MULTI_ROW
158 FROM EGO_FND_DSC_FLX_CTX_EXT AG, pon_auction_item_prices_all L,
159 PO_UDA_AG_TEMPLATES POT, PO_UDA_AG_TEMPLATE_USAGES POTU
160 WHERE L.auction_header_id = p_auction_header_id
161 AND L.LINE_NUMBER = p_line_id
162 AND L.UDA_TEMPLATE_ID = POT.TEMPLATE_ID
163 AND POT.TEMPLATE_ID = POTU.TEMPLATE_ID
164 AND AG.DESCRIPTIVE_FLEXFIELD_NAME = POT.ENTITY_CODE
165 AND AG.ATTR_GROUP_ID = POTU.ATTRIBUTE_GROUP_ID
166 and potu.attribute_group_id in (select distinct attr_group_id from PON_AUCTION_ITEM_PRICES_EXT_B
167 where AUCTION_HEADER_ID = L.auction_header_id and LINE_NUMBER=L.LINE_NUMBER and attr_group_id = potu.attribute_group_id)
168 ORDER BY POTU.ATTRIBUTE_GROUP_SEQUENCE;
169
170 CURSOR C_ATTR_MD(P_ATTR_GROUP VARCHAR2, P_DESC_FLEXFLD_NAME VARCHAR2) IS
171 SELECT EFDFCE.ATTR_ID ,
172 EFDFCE.APPLICATION_COLUMN_NAME ,
173 FCU.END_USER_COLUMN_NAME ,
174 fcu.flex_value_set_id,
175 EFDFCE.data_type
176
177 FROM
178 EGO_FND_DF_COL_USGS_EXT EFDFCE
179 , FND_DESCR_FLEX_COLUMN_USAGES FCU
180 WHERE EFDFCE.DESCRIPTIVE_FLEXFIELD_NAME = P_DESC_FLEXFLD_NAME
181 AND EFDFCE.DESCRIPTIVE_FLEX_CONTEXT_CODE = P_ATTR_GROUP
182 AND FCU.DESCRIPTIVE_FLEX_CONTEXT_CODE =
183 EFDFCE.DESCRIPTIVE_FLEX_CONTEXT_CODE
184 AND FCU.DESCRIPTIVE_FLEXFIELD_NAME =
185 EFDFCE.DESCRIPTIVE_FLEXFIELD_NAME
186 AND FCU.APPLICATION_COLUMN_NAME = EFDFCE.APPLICATION_COLUMN_NAME
187 AND FCU.DISPLAY_FLAG <> 'H';
188
189 L_SQL VARCHAR2(32767);
190 L_OP VARCHAR2(32767);
191 L_ATTR_GRP NUMBER;
192 L_CTR NUMBER;
193 L_O_CTR NUMBER;
194 l_uda_xml XMLTYPE;
195
196 p_application_id number := 201;
197 p_attr_internal_str_value varchar2(100);
198
199 p_attr_internal_name varchar2(100);
200 p_attr_group_type varchar2(200) := 'PON_AUC_PRICES_EXT_ATTRS';
201 p_attr_group_int_name varchar2(200);
202
203 p_object_name varchar2(200) := 'PON_AUCTION_ITEM_PRICES_EXT_B';
204
205 p_pk1_column_name varchar2(200) := 'AUCTION_HEADER_ID';
206 p_pk1_value number := p_auction_header_id;
207 p_pk2_column_name varchar2(200) := 'LINE_NUMBER';
208 p_pk2_value number := p_line_id;
209
210 BEGIN
211
212 L_O_CTR := 0;
213 FOR REC IN C_ATTR_GRP LOOP
214 IF REC.MULTI_ROW = 'Y' THEN
215 IF L_O_CTR > 0 THEN
216 L_SQL := L_SQL || ',' || '(select XMLElement("' || REC.ATTR_GROUP
217 || '", XMLAgg(XMLForest(' ;
218 ELSE
219 L_SQL := '(select XMLElement("' || REC.ATTR_GROUP || '",
220 XMLAgg(XMLForest(';
221 END IF;
222 ELSE
223 IF L_O_CTR > 0 THEN
224 L_SQL := L_SQL || ',' || '(select XMLElement("' || REC.ATTR_GROUP
225 || '", XMLForest(' ;
226 ELSE
227 L_SQL := '(select XMLElement("' || REC.ATTR_GROUP || '", XMLForest(';
228 END IF;
229 END IF;
230 L_CTR := 0 ;
231 FOR R IN C_ATTR_MD(REC.ATTR_GROUP, REC.DESC_FLEXFLD_NAME) LOOP
232 IF L_CTR = 0 THEN
233 L_SQL := L_SQL || R.APPLICATION_COLUMN_NAME || ' as ' ||
234 R.END_USER_COLUMN_NAME;
235 ELSE
236 L_SQL := L_SQL || ',' || R.APPLICATION_COLUMN_NAME || ' as ' ||
237 R.END_USER_COLUMN_NAME;
238 END IF;
239
240 if r.flex_value_set_id is not null then
241 if (r.data_type = 'C' or r.data_type = 'A' ) then
242 l_sql := l_sql || ',' || ' EGO_USER_ATTRS_DATA_PVT.Get_Attr_Disp_Val_From_VSet ( ' ||
243 p_application_id || ',' || ' null, ' ||
244 R.APPLICATION_COLUMN_NAME || ', null , ''' ||
245 R.END_USER_COLUMN_NAME || ''',''' ||
246 p_attr_group_type || ''',''' ||
247 REC.ATTR_GROUP || ''',' ||
248 r.attr_id || ',''' ||
249 p_object_name || ''',''' ||
250 p_pk1_column_name || ''',' ||
251 p_pk1_value || ',''' ||
252 p_pk2_column_name || ''',' ||
253 p_pk2_value || ') as ' || R.end_user_column_name || '_DESC' ;
254 elsif r.data_type = 'N' then
255 l_sql := l_sql || ',' || ' EGO_USER_ATTRS_DATA_PVT.Get_Attr_Disp_Val_From_VSet ( ' ||
256 p_application_id || ',' || ' null, null, ' ||
257 R.APPLICATION_COLUMN_NAME || ', ''' ||
258 R.END_USER_COLUMN_NAME || ''',''' ||
259 p_attr_group_type || ''',''' ||
260 REC.ATTR_GROUP || ''',' ||
261 r.attr_id || ',''' ||
262 p_object_name || ''',''' ||
263 p_pk1_column_name || ''',' ||
264 p_pk1_value || ',''' ||
265 p_pk2_column_name || ''',' ||
266 p_pk2_value || ') as ' || R.end_user_column_name || '_DESC' ;
267 elsif (r.data_type = 'X' or r.data_type = 'Y') then
268 l_sql := l_sql || ',' || ' EGO_USER_ATTRS_DATA_PVT.Get_Attr_Disp_Val_From_VSet ( ' ||
269 p_application_id || ',' || R.APPLICATION_COLUMN_NAME ||
270 ' , null, null, ''' ||
271 R.END_USER_COLUMN_NAME || ''',''' ||
272 p_attr_group_type || ''',''' ||
273 REC.ATTR_GROUP || ''',' ||
274 r.attr_id || ',''' ||
275 p_object_name || ''',''' ||
276 p_pk1_column_name || ''',' ||
277 p_pk1_value || ',''' ||
278 p_pk2_column_name || ''',' ||
279 p_pk2_value || ') as ' || R.end_user_column_name || '_DESC' ;
280 end if;
281 end if;
282
283
284 L_CTR := L_CTR + 1;
285 END LOOP;
286 IF REC.MULTI_ROW = 'Y' THEN
287 L_SQL := L_SQL || ')))';
288 ELSE
289 L_SQL := L_SQL || ' ))';
290 END IF;
291 L_SQL := L_SQL || ' from PON_AUCTION_ITEM_PRICES_EXT_VL where
292 AUCTION_HEADER_ID = '||p_auction_header_id||' and LINE_NUMBER = ' ||
293 p_line_id || ' and attr_group_id = ' || REC.ATTR_GROUP_ID || ')' ;
294
295 L_O_CTR := L_O_CTR + 1;
296 END LOOP;
297
298 l_op := ' select XMLConcat(' || l_sql || ') from dual';
299 execute immediate l_op into l_uda_xml;
300
301 RETURN (l_uda_xml);
302 END;
303
304 FUNCTION get_addressxml_pvt(p_header_id number) return CLOB as
305 l_where_sql varchar2(1000);
306 l_addr_sql varchar2(1000);
307 l_sql varchar2(4000);
308 l_col_name varchar2(50);
309 l_attr_grp_id number;
310 clob_addr CLOB;
311 c_addr SYS_REFCURSOR;
312 l_address varchar2(4000);
313 begin
314 l_where_sql := ' from PON_AUCTION_HEADERS_EXT_VL where AUCTION_HEADER_ID = :1';
315
316 begin
317 SELECT ag.attr_group_id,
318 efdfce.application_column_name
319 into l_attr_grp_id, l_col_name
320 FROM ego_fnd_dsc_flx_ctx_ext ag,
321 ego_fnd_df_col_usgs_ext efdfce,
322 fnd_descr_flex_column_usages fcu
323 WHERE efdfce.descriptive_flexfield_name = ag.descriptive_flexfield_name
324 and efdfce.descriptive_flex_context_code = ag.descriptive_flex_context_code
325 and fcu.descriptive_flex_context_code = efdfce.descriptive_flex_context_code
326 and fcu.descriptive_flexfield_name = efdfce.descriptive_flexfield_name
327 and fcu.application_column_name = efdfce.application_column_name
328 and ag.DESCRIPTIVE_FLEXFIELD_NAME = 'PON_AUC_HDRS_EXT_ATTRS'
329 and upper(ag.descriptive_flex_context_code) = upper('addresses')
330 and upper(fcu.end_user_column_name) = upper('addressdtlsxml');
331
332 l_where_sql := l_where_sql || ' and attr_group_id = :2 ' ;
333
334 l_addr_sql := 'select ' || l_col_name || ' as address ' ;
335
336 exception
337 when no_data_found then
338 l_addr_sql := '';
339 end;
340
341 if l_addr_sql is not null then
342 l_sql := l_addr_sql || l_where_sql;
343
344 dbms_lob.createtemporary(clob_addr, true);
345 dbms_lob.open(clob_addr, dbms_lob.lob_readwrite);
346 open c_addr for l_sql using p_header_id,l_attr_grp_id;
347 loop
348 fetch c_addr into l_address;
349 exit when c_addr%notfound;
350 if l_address is not null then
351 dbms_lob.writeappend(clob_addr, length(l_address), l_address);
352 end if;
353 end loop;
354 dbms_lob.close(clob_addr);
355 end if;
356 return(clob_addr);
357 end get_addressxml_pvt;
358
359 function get_contactsxml_pvt(p_header_id number) return CLOB as
360 l_cnt_sql varchar2(1000);
361 l_where_sql varchar2(1000);
362 l_sql varchar2(4000);
363 l_cnt varchar2(4000);
364 l_col_name varchar2(50);
365 l_attr_grp_id number;
366 c_cnt SYS_REFCURSOR;
367 clob_cnt CLOB;
368
369 begin
370 l_where_sql := ' from PON_AUCTION_HEADERS_EXT_VL where AUCTION_HEADER_ID = :1';
371
372 begin
373 SELECT ag.attr_group_id,
374 efdfce.application_column_name
375 into l_attr_grp_id, l_col_name
376 FROM ego_fnd_dsc_flx_ctx_ext ag,
377 ego_fnd_df_col_usgs_ext efdfce,
378 fnd_descr_flex_column_usages fcu
379 WHERE efdfce.descriptive_flexfield_name = ag.descriptive_flexfield_name
380 and efdfce.descriptive_flex_context_code = ag.descriptive_flex_context_code
381 and fcu.descriptive_flex_context_code = efdfce.descriptive_flex_context_code
382 and fcu.descriptive_flexfield_name = efdfce.descriptive_flexfield_name
383 and fcu.application_column_name = efdfce.application_column_name
384 and ag.DESCRIPTIVE_FLEXFIELD_NAME = 'PON_AUC_HDRS_EXT_ATTRS'
385 and upper(ag.descriptive_flex_context_code) = upper('addresses')
386 and upper(fcu.end_user_column_name) = upper('contactdtlsxml');
387
388 l_where_sql := l_where_sql || ' and attr_group_id = :2 ' ;
389
390 l_cnt_sql := 'select ' || l_col_name || ' as contacts ' ;
391
392 exception
393 when no_data_found then
394 l_cnt_sql := '';
395 end;
396
397 if l_cnt_sql is not null then
398 l_sql := l_cnt_sql || l_where_sql;
399
400 dbms_lob.createtemporary(clob_cnt, true);
401 dbms_lob.open(clob_cnt , dbms_lob.lob_readwrite);
402 open c_cnt for l_sql using p_header_id,l_attr_grp_id;
403 loop
404 fetch c_cnt into l_cnt;
405 exit when c_cnt%notfound;
406 if l_cnt is not null then
407 dbms_lob.writeappend(clob_cnt, length(l_cnt), l_cnt);
408 end if;
409 end loop;
410 dbms_lob.close(clob_cnt);
411 end if;
412 return(clob_cnt);
413 end get_contactsxml_pvt;
414
415
416 FUNCTION get_addressxml return clob as
417 BEGIN
418 return(get_addressxml_pvt(p_auction_header_id));
419 END;
420
421 function get_contactxml return clob as
422 begin
423 return(get_contactsxml_pvt(p_auction_header_id));
424 END;
425
426 function get_amd_addressxml return clob as
427 BEGIN
428 return(get_addressxml_pvt(p_auction_header_id));
429 END;
430
431 function get_amd_contactxml return clob as
432 begin
433 return(get_contactsxml_pvt(p_auction_header_id));
434 END;
435
436 FUNCTION get_shipaddressxml(p_line_id number) return CLOB as
437
438 l_where_sql varchar2(1000);
439 l_addr_sql varchar2(1000);
440 l_sql varchar2(4000);
441 l_col_name varchar2(50);
442 l_attr_grp_id number;
443 clob_addr CLOB;
444 c_addr SYS_REFCURSOR;
445 l_address varchar2(4000);
446
447 begin
448
449 l_where_sql := ' from PON_AUCTION_ITEM_PRICES_EXT_VL where AUCTION_HEADER_ID = :1 and LINE_NUMBER= :2';
450
451 begin
452 SELECT ag.attr_group_id,
453 efdfce.application_column_name
454 into l_attr_grp_id, l_col_name
455
456 FROM ego_fnd_dsc_flx_ctx_ext ag,
457 ego_fnd_df_col_usgs_ext efdfce,
458 fnd_descr_flex_column_usages fcu
459
460 WHERE efdfce.descriptive_flexfield_name = ag.descriptive_flexfield_name
461 and efdfce.descriptive_flex_context_code = ag.descriptive_flex_context_code
462 and fcu.descriptive_flex_context_code = efdfce.descriptive_flex_context_code
463 and fcu.descriptive_flexfield_name = efdfce.descriptive_flexfield_name
464 and fcu.application_column_name = efdfce.application_column_name
465 and ag.DESCRIPTIVE_FLEXFIELD_NAME = 'PON_AUC_PRICES_EXT_ATTRS'
466 and upper(ag.descriptive_flex_context_code) = upper('SHIP_INFO')
467 and upper(fcu.end_user_column_name) = upper('hiddShipAddXml');
468
469 l_where_sql := l_where_sql || ' and attr_group_id = :3 ' ;
470
471 l_addr_sql := 'select ' || l_col_name || ' as ship_address ' ;
472
473 exception
474 when no_data_found then
475 l_addr_sql := '';
476 end;
477
478 if l_addr_sql is not null then
479 l_sql := l_addr_sql || l_where_sql;
480
481
482 begin
483 execute immediate l_sql into clob_addr using p_auction_header_id,p_line_id,l_attr_grp_id ;
484 exception
485 when others then
486 select '' into clob_addr from dual;
487 end;
488 end if;
489 return(clob_addr);
490 end get_shipaddressxml;
491
492 FUNCTION get_FPFobCodeDes return VARCHAR2 IS
493 fob_db_col VARCHAR2(100);
494 l_attr_group_id NUMBER(10);
495 l_fobsql VARCHAR2(500);
496 l_countdest NUMBER(10);
497 Begin
498
499 select a.database_column, av.attr_group_id into fob_db_col, l_attr_group_id
500 from ego_attrs_v a, ego_attr_groups_v av
501 where a.attr_group_type like 'PON_AUC_PRICES_EXT_ATTRS'
502 and a.attr_group_name like 'SHIP_INFO'
503 and a.attr_name like 'FOB'
504 and av.attr_group_type = a.attr_group_type
505 and av.attr_group_name = a.attr_group_name;
506
507 l_fobsql := 'select count(extension_id) from pon_auction_item_prices_ext_b where auction_header_id =:1 and attr_group_id = :2 and nvl(' || fob_db_col || ', ''N'') <> ''DEST''';
508
509 execute immediate l_fobsql into l_countdest using p_auction_header_id,l_attr_group_id;
510
511 if (l_countdest = 0) then
512 return 'Destination';
513 else
514 return 'See Schedule';
515 end if;
516
517 exception
518 when others then
519 return NULL;
520
521 End get_FPFobCodeDes;
522
523 END;
524