[Home] [Help]
PACKAGE BODY: APPS.PO_POXPOEDR_XMLP_PKG
Source
1 PACKAGE BODY PO_POXPOEDR_XMLP_PKG AS
2 /* $Header: POXPOEDRB.pls 120.1 2007/12/25 11:14:35 krreddy noship $ */
3
4 function BeforeReport return boolean is
5 begin
6
7 declare
8 l_po_type po_lookup_codes.displayed_field%type ;
9 begin
10 execute immediate 'Alter session set sql_trace TRUE';
11 QTY_PRECISION:= po_common_xmlp_pkg.get_precision(P_qty_precision);
12 if P_type is not null then
13
14 select displayed_field
15 into l_po_type
16 from po_lookup_codes
17 where lookup_code = P_type
18 and lookup_type = 'DOCUMENT TYPE';
19
20 P_type_displayed := l_po_type ;
21
22 else
23
24 P_type_displayed := '' ;
25
26 end if;
27
28
29
30 /*SRW.USER_EXIT('FND SRWINIT');*/null;
31
32 if (get_p_struct_num <> TRUE )
33 then /*SRW.MESSAGE('1','Init failed');*/null;
34
35 end if;
36 if (get_chart_of_accounts_id <> TRUE )
37 then /*SRW.MESSAGE('2','Init failed');*/null;
38
39 end if;
40
41 null;
42 IF (P_ACCOUNT_FROM IS NOT NULL) THEN
43 IF (P_ACCOUNT_TO IS NOT NULL) THEN
44 /*SRW.MESSAGE(1,'with_acc_params');*/null;
45
46
47 null;
48 ELSE
49 /*SRW.MESSAGE(1,'wout_acc_params');*/null;
50
51
52 null;
53 END IF;
54 ELSE
55 IF (P_ACCOUNT_TO IS NOT NULL) THEN
56 /*SRW.MESSAGE(1,'wout_acc_to');*/null;
57
58
59 null;
60 END IF;
61 END IF;
62
63
64 null;
65
66 RETURN TRUE;
67 END;
68 return (TRUE);
69 end;
70
71 procedure get_precision is
72 begin
73 /*srw.attr.mask := SRW.FORMATMASK_ATTR;*/null;
74
75 if P_qty_precision = 0 then /*srw.attr.formatmask := '-NNN,NNN,NNN,NN0';*/null;
76
77 else
78 if P_qty_precision = 1 then /*srw.attr.formatmask := '-NNN,NNN,NNN,NN0.0';*/null;
79
80 else
81 if P_qty_precision = 3 then /*srw.attr.formatmask := '-NN,NNN,NNN,NN0.000';*/null;
82
83 else
84 if P_qty_precision = 4 then /*srw.attr.formatmask := '-N,NNN,NNN,NN0.0000';*/null;
85
86 else
87 if P_qty_precision = 5 then /*srw.attr.formatmask := '-NNN,NNN,NN0.00000';*/null;
88
89 else
90 if P_qty_precision = 6 then /*srw.attr.formatmask := '-NN,NNN,NN0.000000';*/null;
91
92 else /*srw.attr.formatmask := '-NNN,NNN,NNN,NN0.00';*/null;
93
94 end if; end if; end if; end if; end if; end if;
95 /*srw.set_attr(0,srw.attr);*/null;
96
97 end;
98
99 function c_amount_chg_accformula(C_AMOUNT_REQ_SUBTOTAL in number, C_AMOUNT_PO_SUBTOTAL in number, C_AMOUNT_BPO_SUBTOTAL in number) return number is
100 begin
101
102 return (nvl(C_AMOUNT_REQ_SUBTOTAL,0)+nvl(C_AMOUNT_PO_SUBTOTAL,0)+nvl(C_AMOUNT_BPO_SUBTOTAL,0));
103 end;
104
105 function AfterReport return boolean is
106 begin
107
108 /*srw.do_sql('Alter session set sql_trace FALSE');*/null;
109
110
111 /*SRW.USER_EXIT('FND SRWEXIT');*/null;
112 return (TRUE);
113 end;
114
115 function cost_center(c_cost_center_s in varchar2) return character is
116 begin
117 if c_cost_center_s is null then
118 return('gcc.segment4');
119 end if;
120 return('gcc.'||c_cost_center_s);
121 end;
122
123 function get_p_struct_num return boolean is
124
125 l_p_struct_num number;
126
127 begin
128 select structure_id
129 into l_p_struct_num
130 from mtl_default_sets_view
131 where functional_area_id = 2 ;
132
133 P_STRUCT_NUM := l_p_struct_num ;
134
135 return(TRUE) ;
136
137 RETURN NULL; exception
138 when others then return(FALSE) ;
139 end;
140
141 function get_chart_of_accounts_id return boolean is
142
143 l_chart_of_accounts_id number;
144
145 begin
146 select gsob.chart_of_accounts_id
147 into l_chart_of_accounts_id
148 from gl_sets_of_books gsob,
149 financials_system_parameters fsp
150 where fsp.set_of_books_id = gsob.set_of_books_id ;
151
152 P_CHART_OF_ACCOUNTS := l_chart_of_accounts_id ;
153
154 return(TRUE) ;
155
156 RETURN NULL; exception
157 when others then return(FALSE) ;
158 end;
159
160 function c_amount_func_poformula(c_amount_base_po in number, c_currency_base1 in varchar2, c_currency_po in varchar2, rate in number, c_precision in number) return number is
161 l_precision NUMBER;
162 l_min_unit NUMBER;
163 begin
164
165 /*srw.reference(c_amount_base_po);*/null;
166
167 /*srw.reference(c_currency_base1);*/null;
168
169 /*srw.reference(c_currency_po);*/null;
170
171
172 IF (c_amount_base_po <> 0 ) THEN
173 if (c_currency_base1 <> c_currency_po) THEN
174
175 if (cp_old_po_cur <> c_currency_po) THEN
176
177 PO_CORE_S2.GET_CURRENCY_INFO(x_currency_code => C_CURRENCY_PO,
178 x_precision => l_precision,
179 x_min_unit => l_min_unit);
180
181 cp_precision_po := l_precision;
182 cp_old_po_cur := c_currency_po;
183 end if;
184 return(round(c_amount_base_po/rate,nvl(cp_precision_po,c_precision)));
185 else
186 return(c_amount_base_po);
187 end if;
188 else
189 return(0);
190
191 end if;
192
193
194 end;
195
196 function c_amount_base_poformula(PO_TYPE in varchar2, po_enc_amount_func in number, accrual_flag in varchar2, parent_join_id in number) return number is
197 l_amount_moved_to_Actual NUMBER := 0;
198 l_active_enc_amount NUMBER := 0;
199 l_po_enc_amount NUMBER := 0;
200 l_return_status VARCHAR2(1); l_msg_count NUMBER; l_msg_data VARCHAR2(2000);
201 begin
202
203 /*SRW.reference(parent_join_id);*/null;
204
205 /*SRW.reference(P_encumbrance_date_from);*/null;
206
207 /*SRW.reference(P_encumbrance_date_to);*/null;
208
209 /*SRW.reference(po_enc_amount_func);*/null;
210
211
212 IF (PO_TYPE <> 'PLANNED') THEN
213 l_po_enc_amount := nvl(po_enc_amount_func,0);
214
215 IF nvl(accrual_flag, 'N') = 'Y' then
216
217 l_amount_moved_to_actual := RCV_AccrualUtilities_GRP.Get_encumReversalAmt (
218 p_po_distribution_id => parent_join_id,
219 p_start_txn_date => P_encumbrance_date_from,
220 p_end_txn_date => P_encumbrance_date_to);
221
222
223 ELSE
224 PSA_AP_BC_GRP.get_po_reversed_encumb_amount(
225 p_api_version =>1.0,
226 p_init_msg_list=>'F',
227 x_return_status => l_return_status,
228 x_msg_count=>l_msg_count,
229 x_msg_data=>l_msg_data,
230 p_po_distribution_id => parent_join_id,
231 p_start_gl_date => P_encumbrance_date_from,
232 p_end_gl_date => P_encumbrance_date_to,
233 x_unencumbered_amount => l_amount_moved_to_actual);
234
235 END IF;
236 ELSE
237
238
239 l_po_enc_amount := nvl(po_enc_amount_func,0);
240 l_amount_moved_to_actual := 0;
241
242 END IF;
243
244
245
246 l_active_enc_amount := l_po_enc_amount -
247 nvl(l_amount_moved_to_actual, 0);
248
249 IF (po_enc_amount_func = 0) THEN
250
251 l_active_enc_amount := GREATEST(0, l_active_enc_amount);
252
253 END IF;
254
255 return(l_active_enc_amount);
256
257 end;
258
259 function adjusted_q_orderedformula(po_type in varchar2, p_po_header_id in number, p_po_line_id in number, Parent_join_id in number, quantity_ordered in number) return number is
260
261 quantity_released NUMBER;
262
263 BEGIN
264
265 quantity_released := 0;
266
267 IF po_type = 'PLANNED' THEN
268
269
270
271
272
273
274
275
276 SELECT sum(pod.quantity_ordered - pod.quantity_cancelled)
277 into quantity_released
278 FROM po_distributions pod,
279 po_line_locations poll
280 WHERE pod.po_release_id IS NOT NULL
281 AND pod.po_header_id = p_po_header_id
282 AND pod.po_line_id = p_po_line_id
283 AND pod.line_location_id = poll.line_location_id
284 AND poll.shipment_type = 'SCHEDULED'
285 AND pod.source_distribution_id = Parent_join_id AND ( nvl(pod.encumbered_flag , 'N' ) = 'Y'
286 OR ( nvl(pod.encumbered_flag, 'N') = 'N'
287 AND nvl(poll.cancel_flag, 'N') = 'Y')
288 OR (NVL(POLL.closed_code,'OPEN')= 'FINALLY CLOSED'))
289 AND pod.gl_encumbered_date
290 BETWEEN nvl(P_encumbrance_date_from, pod.gl_encumbered_date-1)
291 AND nvl(P_encumbrance_date_to, pod.gl_encumbered_date+1);
292
293
294 END IF;
295
296 RETURN ( quantity_ordered - nvl(quantity_released, 0));
297
298 END;
299
300 function c_func_amount_bpoformula(c_base_amount_bpo in number, c_currency_base1 in varchar2, c_currency_po1 in varchar2, rate1 in number, c_precision in number) return number is
301 l_precision NUMBER;
302 l_min_unit NUMBER;
303 begin
304
305
306 /*srw.reference(c_base_amount_bpo);*/null;
307
308 /*srw.reference(c_currency_base1);*/null;
309
310 /*srw.reference(c_currency_po1);*/null;
311
312 IF (c_base_amount_bpo <> 0 ) THEN
313 if (c_currency_base1 <> c_currency_po1) THEN
314
315 if (cp_old_bpo_cur <> c_currency_po1) THEN
316
317 PO_CORE_S2.GET_CURRENCY_INFO(x_currency_code => C_CURRENCY_PO1,
318 x_precision => l_precision,
319 x_min_unit => l_min_unit);
320
321 cp_precision_bpo := l_precision;
322 cp_old_bpo_cur := c_currency_po1;
323 end if;
324 return(round(c_base_amount_bpo/rate1,nvl(cp_precision_bpo,c_precision)));
325 else
326 return(c_base_amount_bpo);
327 end if;
328 else
329 return(0);
330
331 end if;
332
333
334 end;
335
336 --Functions to refer Oracle report placeholders--
337
338 Function CP_PRECISION_PO_p return number is
339 Begin
340 return CP_PRECISION_PO;
341 END;
342 Function CP_OLD_PO_CUR_p return varchar2 is
343 Begin
344 return CP_OLD_PO_CUR;
345 END;
346 Function CP_PRECISION_BPO_p return number is
347 Begin
348 return CP_PRECISION_BPO;
349 END;
350 Function CP_OLD_BPO_CUR_p return varchar2 is
351 Begin
352 return CP_OLD_BPO_CUR;
353 END;
354 END PO_POXPOEDR_XMLP_PKG ;
355