DBA Data[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