DBA Data[Home] [Help]
Skip to content

PACKAGE BODY: APPS.OKC_REP_UDA_FUNCTIONS

Source


1 PACKAGE BODY OKC_REP_UDA_FUNCTIONS AS
2 /* $Header: OKCVRUDAFB.pls 120.0.12020000.3 2013/04/10 12:39:31 aksgoyal noship $ */
3 
4   FUNCTION getPoLineAmount(p_po_header_id NUMBER,
5                            p_po_line_id NUMBER,
6                            p_po_draft_id NUMBER) RETURN NUMBER
7   IS
8 
9   l_proc_name CONSTANT VARCHAR2(50) := 'sbcr_source_doc_default';
10   l_api_name CONSTANT VARCHAR2(100):=  g_pkg_name ||'.'||l_proc_name;
11 
12   l_line_amount NUMBER := 0;
13   l_currency_code po_headers_draft_all.currency_code%type;
14   l_precision gl_currencies.precision%TYPE;
15   l_ext_precision gl_currencies.extended_precision%TYPE;
16   l_min_unit gl_currencies.minimum_accountable_unit%TYPE;
17 
18   BEGIN
19 
20     IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
21       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Entered OKC_REP_UDA_FUNCTIONS.getPoLineAmount procedure');
22       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter p_po_header_id: ' || p_po_header_id);
23       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter p_po_line_id: ' || p_po_line_id);
24       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter p_po_draft_id: ' || p_po_draft_id);
25     END IF;
26 
27     SELECT currency_code INTO l_currency_code
28     FROM po_headers_draft_all
29     WHERE po_header_id  = p_po_header_id AND draft_id = p_po_draft_id;
30 
31     fnd_currency.get_info(l_currency_code, l_precision, l_ext_precision, l_min_unit);
32 
33     IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
34       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'l_currency_code: ' || l_currency_code);
35       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'l_precision: ' || l_precision);
36       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'l_ext_precision: ' || l_ext_precision);
37       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'l_min_unit: ' || l_min_unit);
38     END IF;
39 
40     SELECT DECODE(matching_basis, 'AMOUNT', amount, nvl2(l_min_unit, round(quantity*unit_price/l_min_unit) * l_min_unit, round((quantity*unit_price),l_precision)) ) -- Bug# 5378134
41     INTO l_line_amount
42     FROM po_lines_merge_v
43     WHERE po_line_id = p_po_line_id AND draft_id = p_po_draft_id;
44 
45     IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
46       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'l_line_amount: ' || l_line_amount);
47     END IF;
48 
49     IF(l_line_amount IS NULL ) THEN
50       l_line_amount := 0;
51     END IF;
52 
53     RETURN l_line_amount;
54   EXCEPTION
55   WHEN OTHERS THEN
56     IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
57       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while getting po line amount. Error:' || sqlerrm);
58     END IF;
59     RETURN -1;
60   END getPoLineAmount;
61 
62 	PROCEDURE sbcr_source_doc_default(p_contract_id IN NUMBER
63                                     ,p_source_doc_id IN VARCHAR2
64                                     ,p_source_doc_type IN VARCHAR2
65                                     ,x_buyer_name IN OUT NOCOPY VARCHAR2
66                                     ,x_issuing_off_symbol IN OUT NOCOPY VARCHAR2
67                                     ,x_total_amount IN OUT NOCOPY NUMBER
71                                     ,x_fsc_svc_code IN OUT NOCOPY VARCHAR2
68                                     ,x_currency IN OUT NOCOPY VARCHAR2
69                                     ,x_naics_code IN OUT NOCOPY VARCHAR2
70                                     ,x_size_standard IN OUT NOCOPY VARCHAR2
72                                     ,x_item_long_desc IN OUT NOCOPY VARCHAR2
73                                     ,x_return_status OUT NOCOPY VARCHAR2
74                                     ,x_errorcode OUT NOCOPY VARCHAR2
75                                     ,x_msg_count OUT NOCOPY VARCHAR2
76                                     ,x_msg_data	OUT NOCOPY VARCHAR2)
77   IS
78 
79   l_proc_name CONSTANT VARCHAR2(50) := 'sbcr_source_doc_default';
80   l_api_name CONSTANT VARCHAR2(100):=  g_pkg_name ||'.'||l_proc_name;
81 
82   l_auc_line_num pon_auction_item_prices_all.line_number%TYPE;
83   l_po_line_id po_lines_all.po_line_id%TYPE;
84   l_fsc_svc_codes PO_TBL_VARCHAR4000;  --for IDV wihtout lines document fsc svc is a multi row attribute. For fetching them we will be using this variable
85 
86   BEGIN
87 
88     IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
89       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Entered OKC_REP_UDA_FUNCTIONS.sbcr_source_doc_default procedure');
90       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter p_contract_id: ' || p_contract_id);
91       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter p_source_doc_id: ' || p_source_doc_id);
92       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter p_source_doc_type: ' || p_source_doc_type);
93       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter x_buyer_name: ' || x_buyer_name);
94       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter x_issuing_off_symbol: ' || x_issuing_off_symbol);
95       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter x_total_amount: ' || x_total_amount);
96       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter x_currency: ' || x_currency);
97       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter x_naics_code: ' || x_naics_code);
98       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter x_size_standard: ' || x_size_standard);
99       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter x_fsc_svc_code: ' || x_fsc_svc_code);
100       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Input Parameter x_item_long_desc: ' || x_item_long_desc);
101     END IF;
102 
103     IF p_source_doc_id IS NULL OR p_source_doc_type IS NULL THEN
104       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
105         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Leaving the procedure as the source documents are not filled properly');
106       END IF;
107 
108       RETURN;   --returning if source document details are not found
109     END IF;
110 
111     --storing the lineinformation which has maximum amount value.
112     --For the values which will be coming at line level, the line which has maiximum amount willbe taken and defaulted
113     BEGIN
114       IF p_source_doc_type = 'SOLICITATION' THEN
115         SELECT line_number INTO l_auc_line_num
116         FROM (SELECT line_number FROM pon_auction_item_prices_all WHERE auction_header_id = p_source_doc_id
117               ORDER BY clm_amount DESC, item_description ASC)
118         WHERE rownum = 1;
119 
120       ELSIF p_source_doc_type = 'PO_STANDARD_MOD' OR p_source_doc_type = 'PA_BLANKET_MOD' THEN
121       --for doc types PO_STANDARD_MOD, PA_BLANKET_MOD (PA_CONTRACT_MOD doesn't have lines)
122         SELECT po_line_id INTO l_po_line_id
123         FROM (SELECT po_line_id FROM po_lines_draft_all WHERE draft_id = p_source_doc_id
124               ORDER BY getPoLineAmount(po_header_id, po_line_id, draft_id) DESC, item_description ASC)
125         WHERE rownum = 1;
126       END IF;
127     EXCEPTION
128       WHEN OTHERS THEN
129         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
130 	      x_errorcode	    := '-3';
131 	      x_msg_count     := '1';
132 	      x_msg_data      := 'Exception in getting line details with maximum amount';
133         fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
134 
135         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
136           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while getting line details with maximum amount. Error:' || sqlerrm);
137         END IF;
138     END;
139 
140     /*
141     --BUYER NAME DEFAULTING
142     */
143    -- IF x_buyer_name IS NULL THEN
144       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
145         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulting Buyer Name from source document ');
146       END IF;
147       BEGIN
148         IF p_source_doc_type = 'SOLICITATION' THEN
149           SELECT PO_UDA_PUB.get_address_attr_value(uda_template_id, NULL, auction_header_id, NULL, NULL, NULL, NULL, NULL, 'addresses', NULL, 'contact', 'ISSUING_OFFICE', 'DISPLAY_VALUE')
150           INTO x_buyer_name
151           FROM pon_auction_headers_all
152           WHERE auction_header_id = p_source_doc_id;
153         ELSE  --for doc types PO_STANDARD_MOD, PA_BLANKET_MOD, PA_CONTRACT_MOD
154           SELECT PO_UDA_PUB.get_address_attr_value(uda_template_id, NULL, po_header_id, draft_id, NULL, NULL, NULL, NULL, 'addresses', NULL, 'contact', 'ISSUING_OFFICE', 'DISPLAY_VALUE')
155           INTO x_buyer_name
156           FROM po_headers_draft_all
157           WHERE draft_id = p_source_doc_id;
158         END IF;
159 
160         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
161           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulted buyer name value to :' || x_buyer_name);
162         END IF;
163       EXCEPTION
164         WHEN OTHERS THEN
168 	        x_msg_data      := 'Exception in defaulting buyer name';
165           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
166 	        x_errorcode	    := '-4';
167 	        x_msg_count     := '1';
169           fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
170 
171           IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
172             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while defaulting buyer name. Error:' || sqlerrm);
173           END IF;
174       END;
175    -- END IF;
176 
177     /*
178     --OFFICE SYMBOL DEFAULTING
179     */
180    -- IF x_issuing_off_symbol IS NULL THEN
181       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
182         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulting Issuing Office Symbol from source document ');
183       END IF;
184 
185       BEGIN
186         IF p_source_doc_type = 'SOLICITATION' THEN
187           SELECT PO_UDA_PUB.get_address_attr_value(uda_template_id, NULL, auction_header_id, NULL, NULL, NULL, NULL, NULL, 'addresses', NULL, 'addresscode', 'ISSUING_OFFICE', 'DISPLAY_VALUE')
188           INTO x_issuing_off_symbol
189           FROM pon_auction_headers_all
190           WHERE auction_header_id = p_source_doc_id;
191         ELSE    --for doc types PO_STANDARD_MOD, PA_BLANKET_MOD, PA_CONTRACT_MOD
192           SELECT PO_UDA_PUB.get_address_attr_value(uda_template_id, NULL, po_header_id, draft_id, NULL, NULL, NULL, NULL, 'addresses', NULL, 'addresscode', 'ISSUING_OFFICE', 'DISPLAY_VALUE')
193           INTO x_issuing_off_symbol
194           FROM po_headers_draft_all
195           WHERE draft_id = p_source_doc_id;
196         END IF;
197 
198         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
199           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulted issuing office symbol value to :' || x_issuing_off_symbol);
200         END IF;
201       EXCEPTION
202         WHEN OTHERS THEN
203           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
204 	        x_errorcode	    := '-5';
205 	        x_msg_count     := '1';
206 	        x_msg_data      := 'Exception in defaulting issuing office symbol';
207           fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
208 
209           IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
210             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while defaulting issuing office symbol. Error:' || sqlerrm);
211           END IF;
212       END;
213    -- END IF;
214 
215     /*
216     --TOTAL ESTIMATED VALUE DEFAULTING
217     */
218    -- IF x_total_amount IS NULL THEN
219       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
220         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulting Total Estimated value from source document ');
221       END IF;
222 
223       BEGIN
224         IF p_source_doc_type = 'SOLICITATION' THEN
225           SELECT Sum(Nvl(clm_amount, 0)) INTO x_total_amount
226           FROM pon_auction_item_prices_all
227           WHERE auction_header_id = p_source_doc_id;
228         ELSE    --for doc types PO_STANDARD_MOD, PA_BLANKET_MOD, PA_CONTRACT_MOD
229           SELECT changed_amt INTO x_total_amount
230           FROM po_drafts
231           WHERE draft_id = p_source_doc_id;
232         END IF;
233 
234         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
235           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulted Total Estimated value to :' || x_total_amount);
236         END IF;
237       EXCEPTION
238         WHEN OTHERS THEN
239           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
240 	        x_errorcode	    := '-6';
241 	        x_msg_count     := '1';
242 	        x_msg_data      := 'Exception in defaulting Total Estimated value';
243           fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
244 
245           IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
246             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while defaulting Total Estimated value. Error:' || sqlerrm);
247           END IF;
248       END;
249    -- END IF;
250 
251     /*
252     --CURRENCY DEFAULTING
253     */
254   --  IF x_currency IS NULL THEN
255       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
256         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulting currency from source document ');
257       END IF;
258 
259       BEGIN
260         IF p_source_doc_type = 'SOLICITATION' THEN
261           SELECT currency_code INTO x_currency
262           FROM pon_auction_headers_all
263           WHERE auction_header_id = p_source_doc_id;
264         ELSE     --for doc types PO_STANDARD_MOD, PA_BLANKET_MOD, PA_CONTRACT_MOD
265           SELECT currency_code INTO x_currency
266           FROM po_headers_draft_all
267           WHERE draft_id = p_source_doc_id;
268         END IF;
269 
270         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
271           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulted currency value to :' || x_currency);
272         END IF;
273       EXCEPTION
274         WHEN OTHERS THEN
275           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
276 	        x_errorcode	    := '-7';
277 	        x_msg_count     := '1';
278 	        x_msg_data      := 'Exception in defaulting currency';
279           fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
280 
281           IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
282             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while defaulting currency. Error:' || sqlerrm);
286 
283           END IF;
284       END;
285  --   END IF;
287     /*
288     -- NAICS CODE DEFAULTING
289     */
290   --  IF x_naics_code IS NULL THEN
291       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
292         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulting Naics code from source document ');
293       END IF;
294 
295       BEGIN
296         IF p_source_doc_type = 'SOLICITATION' THEN
297           x_naics_code := PO_UDA_PUB.get_single_attr_value(p_entity_code => 'PON_AUC_PRICES_EXT_ATTRS',
298                                                   	    pk1_value => p_source_doc_id,
299                                                   	    pk2_value => l_auc_line_num,
300                                                            p_attr_grp_int_name => 'FED_CUST_DESG',
301                                                    	    p_attr_int_name => 'NAICS');
302 
303         ELSIF p_source_doc_type = 'PA_CONTRACT_MOD' THEN
304           --for IDV without lines document, there will nto be lines, getting the value from header
305           SELECT PO_UDA_PUB.get_single_attr_value(uda_template_id, NULL, po_header_id, draft_id, NULL, NULL, NULL, NULL, 'SET_ASIDE_INFO', NULL, 'NAICS', 'INTERNAL_VALUE' )
306           INTO x_naics_code
307           FROM po_headers_draft_all
308           WHERE draft_id = p_source_doc_id;
309 
310         ELSE -- for doc types PO_STANDARD_MOD, PA_BLANKET_MOD
311           x_naics_code := PO_UDA_PUB.get_single_attr_value(p_entity_code => 'PO_LINE_EXT_ATTRS',
312                                                   	    pk1_value => l_po_line_id,
313 	                                                      pk2_value => p_source_doc_id,
314          	                                                 p_attr_grp_int_name => 'FED_CUST_DESG',
315                   		                                  p_attr_int_name => 'NAICS');
316         END IF;
317 
318         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
319           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulted Naics code value to :' || x_naics_code);
320         END IF;
321       EXCEPTION
322         WHEN OTHERS THEN
323           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
324 	        x_errorcode	    := '-8';
325 	        x_msg_count     := '1';
326 	        x_msg_data      := 'Exception in defaulting Naics code';
327           fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
328 
329           IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
330             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while defaulting Naics code. Error:' || sqlerrm);
331           END IF;
332       END;
333   --  END IF;
334 
335     /*
336     -- SIZE STANDARD DEFAULTING
337     */
338  --   IF x_size_standard IS NULL THEN
339       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
340         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulting Size Standard from source document ');
341       END IF;
342 
343       BEGIN
344         IF p_source_doc_type = 'SOLICITATION' THEN
345           SELECT PO_UDA_PUB.get_single_attr_value(uda_template_id, NULL, auction_header_id, NULL, NULL, NULL, NULL, NULL, 'SET_ASIDE_INFO', NULL, 'SIZE_STANDARD', 'INTERNAL_VALUE')
346           INTO x_size_standard
347           FROM pon_auction_headers_all
348           WHERE auction_header_id = p_source_doc_id;
349         ELSE    --for doc types PO_STANDARD_MOD, PA_BLANKET_MOD, PA_CONTRACT_MOD
350           SELECT PO_UDA_PUB.get_single_attr_value(uda_template_id, NULL, po_header_id, draft_id, NULL, NULL, NULL, NULL, 'SET_ASIDE_INFO', NULL, 'SIZE_STANDARD', 'INTERNAL_VALUE')
351           INTO x_size_standard
352           FROM po_headers_draft_all
353           WHERE draft_id = p_source_doc_id;
354         END IF;
355 
356         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
357           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulted Size Standard value to :' || x_size_standard);
358         END IF;
359       EXCEPTION
360         WHEN OTHERS THEN
361           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
362 	        x_errorcode	    := '-9';
363 	        x_msg_count     := '1';
364 	        x_msg_data      := 'Exception in defaulting Size Standard';
365           fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
366 
367           IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
368             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while defaulting Size Standard. Error:' || sqlerrm);
369           END IF;
370       END;
371   --  END IF;
372 
373     /*
374     -- FSC/SVC CODE DEFAULTING
375     */
376   --  IF x_fsc_svc_code IS NULL THEN
377       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
378         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulting FSC/SVC Code from source document ');
379       END IF;
380 
381       BEGIN
382         IF p_source_doc_type = 'SOLICITATION' THEN
383           x_fsc_svc_code := PO_UDA_PUB.get_single_attr_value(p_entity_code => 'PON_AUC_PRICES_EXT_ATTRS',
384                            		                          pk1_value => p_source_doc_id,
385                                      		 	           pk2_value => l_auc_line_num,
386                                                   		 p_attr_grp_int_name => 'FED_CUST_DESG',
387 		                                                   p_attr_int_name => 'FSC_PSC');
388 
389         ELSIF p_source_doc_type = 'PA_CONTRACT_MOD' THEN
390           --for IDV without lines document, there will nto be lines, getting the value from header
394           WHERE draft_id = p_source_doc_id;
391           SELECT PO_UDA_PUB.get_multi_attr_value(uda_template_id, NULL, po_header_id, draft_id, NULL, NULL, NULL, NULL, 'FSC_PSC', NULL, 'FSC_PSC', NULL, 'INTERNAL_VALUE')
392           INTO l_fsc_svc_codes
393           FROM po_headers_draft_all
395 
396           IF l_fsc_svc_codes IS NOT NULL AND l_fsc_svc_codes.COUNT > 0 THEN
397             x_fsc_svc_code := l_fsc_svc_codes(1);
398           END IF;
399 
400         ELSE -- for doc types PO_STANDARD_MOD, PA_BLANKET_MOD
401           x_fsc_svc_code := PO_UDA_PUB.get_single_attr_value(p_entity_code => 'PO_LINE_EXT_ATTRS',
402                            		                          pk1_value => l_po_line_id,
403                                       			           pk2_value => p_source_doc_id,
404                                                   		 p_attr_grp_int_name => 'FED_CUST_DESG',
405 		                                                   p_attr_int_name => 'FSC_PSC');
406         END IF;
407 
408         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
409           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulted FSC/SVC Code value to :' || x_fsc_svc_code);
410         END IF;
411       EXCEPTION
412         WHEN OTHERS THEN
413           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
414 	        x_errorcode	    := '-10';
415 	        x_msg_count     := '1';
416 	        x_msg_data      := 'Exception in defaulting FSC/SVC Code';
417           fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
418 
419           IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
420             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while defaulting FSC/SVC Code. Error:' || sqlerrm);
421           END IF;
422       END;
423  --   END IF;
424 
425     /*
426     -- ITEM DESCRIPTION DEFAULTING
427     */
428  --   IF x_item_long_desc IS NULL THEN
429       IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
430         FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulting Item Description from source document ');
431       END IF;
432 
433       BEGIN
434         IF p_source_doc_type = 'SOLICITATION' THEN
435           x_item_long_desc := PO_UDA_PUB.get_single_attr_value(p_entity_code => 'PON_AUC_PRICES_EXT_ATTRS',
436                              			                       pk1_value => p_source_doc_id,
437                                           			        pk2_value => l_auc_line_num,
438 		                                                     p_attr_grp_int_name => 'ADD_ITEM_INFO',
439 		                                                     p_attr_int_name => 'EXTND_DESC');
440 
441         ELSIF p_source_doc_type = 'PO_STANDARD_MOD' OR p_source_doc_type = 'PA_BLANKET_MOD' THEN
442               --for doc types PO_STANDARD_MOD, PA_BLANKET_MOD (PA_CONTRACT_MOD doesn't have lines)
443           x_item_long_desc := PO_UDA_PUB.get_single_attr_value(p_entity_code => 'PO_LINE_EXT_ATTRS',
444                              			                       pk1_value => l_po_line_id,
445 		                                                     pk2_value => p_source_doc_id,
446              			                                      p_attr_grp_int_name => 'ADD_ITEM_INFO',
447                           		                            p_attr_int_name => 'EXTND_DESC');
448         END IF;
449 
450         IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
451           FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Defaulted Item long Description value to :' || x_item_long_desc);
452         END IF;
453       EXCEPTION
454         WHEN OTHERS THEN
455           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
456 	        x_errorcode	    := '-11';
457 	        x_msg_count     := '1';
458 	        x_msg_data      := 'Exception in defaulting Item Description';
459           fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
460 
461           IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
462             FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured while defaulting Item Description. Error:' || sqlerrm);
463           END IF;
464       END;
465   --  END IF;
466 
467     x_return_status := FND_API.G_RET_STS_SUCCESS;
468     x_errorcode	    := '0';
469     x_msg_count     := '1';
470     x_msg_data      := 'SUCCESS';
471 
472     IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
473       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Entered OKC_REP_UDA_FUNCTIONS.sbcr_source_doc_default procedure');
474       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_buyer_name: ' || x_buyer_name);
475       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_issuing_off_symbol: ' || x_issuing_off_symbol);
476       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_total_amount: ' || x_total_amount);
477       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_currency: ' || x_currency);
478       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_naics_code: ' || x_naics_code);
479       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_size_standard: ' || x_size_standard);
480       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_fsc_svc_code: ' || x_fsc_svc_code);
481       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_item_long_desc: ' || x_item_long_desc);
482       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_return_status: ' || x_return_status);
483       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_errorcode: ' || x_errorcode);
484       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_msg_count: ' || x_msg_count);
485       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_msg_data: ' || x_msg_data);
489   EXCEPTION
486       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Leaving OKC_REP_UDA_FUNCTIONS.sbcr_source_doc_default procedure.');
487     END IF;
488 
490 	WHEN OTHERS THEN
491    	x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
492 	  x_errorcode	    := '-2';
493 	  x_msg_count     := '1';
494 	  x_msg_data      := 'Exception occured in SBCR UDA defaulting function SBCR_SOURCE_DOC_DEFAULT';
495     fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_proc_name, x_msg_data);
496 
497     IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
498       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Exception occured in SBCR UDA defaulting function SBCR_SOURCE_DOC_DEFAULT:' || sqlerrm);
499       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Entered OKC_REP_UDA_FUNCTIONS.sbcr_source_doc_default procedure');
500       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_buyer_name: ' || x_buyer_name);
501       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_issuing_off_symbol: ' || x_issuing_off_symbol);
502       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_total_amount: ' || x_total_amount);
503       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_currency: ' || x_currency);
504       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_naics_code: ' || x_naics_code);
505       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_size_standard: ' || x_size_standard);
506       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_fsc_svc_code: ' || x_fsc_svc_code);
507       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_item_long_desc: ' || x_item_long_desc);
508       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_return_status: ' || x_return_status);
509       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_errorcode: ' || x_errorcode);
510       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_msg_count: ' || x_msg_count);
511       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Output Parameter x_msg_data: ' || x_msg_data);
512       FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT, l_api_name, 'Leaving OKC_REP_UDA_FUNCTIONS.sbcr_source_doc_default procedure.');
513     END IF;
514   END sbcr_source_doc_default;
515 
516 END OKC_REP_UDA_FUNCTIONS;