[Home] [Help]
PACKAGE BODY: APPS.JL_JLCOPCWT_XMLP_PKG
Source
1 PACKAGE BODY JL_JLCOPCWT_XMLP_PKG AS
2 /* $Header: JLCOPCWTB.pls 120.1 2007/12/25 16:51:29 dwkrishn noship $ */
3 FUNCTION GET_BASE_CURR_DATA RETURN BOOLEAN IS
4 BASE_CURR AP_SYSTEM_PARAMETERS.BASE_CURRENCY_CODE%TYPE;
5 PREC FND_CURRENCIES_VL.PRECISION%TYPE;
6 MIN_AU FND_CURRENCIES_VL.MINIMUM_ACCOUNTABLE_UNIT%TYPE;
7 DESCR FND_CURRENCIES_VL.DESCRIPTION%TYPE;
8 BEGIN
9 BASE_CURR := '';
10 PREC := 0;
11 MIN_AU := 0;
12 DESCR := '';
13 SELECT
14 P.BASE_CURRENCY_CODE,
15 C.PRECISION,
16 C.MINIMUM_ACCOUNTABLE_UNIT,
17 C.DESCRIPTION
18 INTO BASE_CURR,PREC,MIN_AU,DESCR
19 FROM
20 AP_SYSTEM_PARAMETERS P,
21 FND_CURRENCIES_VL C
22 WHERE P.BASE_CURRENCY_CODE = C.CURRENCY_CODE;
23 C_BASE_CURRENCY_CODE := BASE_CURR;
24 P_MIN_PRECISION := PREC;
25 C_BASE_MIN_ACCT_UNIT := MIN_AU;
26 C_BASE_DESCRIPTION := DESCR;
27 RETURN (TRUE);
28 RETURN NULL;
29 EXCEPTION
30 WHEN OTHERS THEN
31 RETURN (FALSE);
32 END GET_BASE_CURR_DATA;
33
34 FUNCTION GET_COVER_PAGE_VALUES RETURN BOOLEAN IS
35 BEGIN
36 RETURN (TRUE);
37 RETURN NULL;
38 EXCEPTION
39 WHEN OTHERS THEN
40 RETURN (FALSE);
41 END GET_COVER_PAGE_VALUES;
42
43 FUNCTION GET_NLS_STRINGS RETURN BOOLEAN IS
44 NLS_ALL AP_LOOKUP_CODES.DISPLAYED_FIELD%TYPE;
45 NLS_YES FND_LOOKUPS.MEANING%TYPE;
46 NLS_NO FND_LOOKUPS.MEANING%TYPE;
47 BEGIN
48 NLS_ALL := '';
49 NLS_YES := '';
50 NLS_NO := '';
51 SELECT
52 LY.MEANING,
53 LN.MEANING,
54 LA.DISPLAYED_FIELD
55 INTO NLS_YES,NLS_NO,NLS_ALL
56 FROM
57 FND_LOOKUPS LY,
58 FND_LOOKUPS LN,
59 AP_LOOKUP_CODES LA
60 WHERE LY.LOOKUP_TYPE = 'YES_NO'
61 AND LY.LOOKUP_CODE = 'Y'
62 AND LN.LOOKUP_TYPE = 'YES_NO'
63 AND LN.LOOKUP_CODE = 'N'
64 AND LA.LOOKUP_TYPE = 'NLS REPORT PARAMETER'
65 AND LA.LOOKUP_CODE = 'ALL';
66 C_NLS_YES := NLS_YES;
67 C_NLS_NO := NLS_NO;
68 C_NLS_ALL := NLS_ALL;
69 FND_MESSAGE.SET_NAME('SQLAP'
70 ,'AP_APPRVL_NO_DATA');
71 C_NLS_NO_DATA_EXISTS := FND_MESSAGE.GET;
72 C_NLS_NO_DATA_EXISTS := '*** ' || C_NLS_NO_DATA_EXISTS || ' ***';
73 FND_MESSAGE.SET_NAME('SQLAP'
74 ,'AP_ALL_END_OF_REPORT');
75 C_NLS_END_OF_REPORT := FND_MESSAGE.GET;
76 C_NLS_END_OF_REPORT := '*** ' || C_NLS_END_OF_REPORT || ' ***';
77 RETURN (TRUE);
78 RETURN NULL;
79 EXCEPTION
80 WHEN OTHERS THEN
81 RETURN (FALSE);
82 END GET_NLS_STRINGS;
83
84 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
85 BEGIN
86 DECLARE
87 CUANTOS NUMBER;
88 INIT_FAILURE EXCEPTION;
89 L_OU_ID NUMBER;
90 BEGIN
91 BEGIN
92 P_SUPPLIER_FROM_1:=P_SUPPLIER_FROM;
93 P_SUPPLIER_TO_1:= P_SUPPLIER_TO;
94 P_SUPP_NUM_FROM_1:= P_SUPP_NUM_FROM;
95 P_SUPP_NUM_TO_1:= P_SUPP_NUM_TO;
96 P_CONC_REQUEST_ID:= FND_GLOBAL.CONC_REQUEST_ID;
97 /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
98 IF (P_DEBUG_SWITCH = 'Y') THEN
99 /*SRW.MESSAGE('1'
100 ,'After SRWINIT')*/NULL;
101 END IF;
102 EXCEPTION
103 WHEN OTHERS THEN
104 /*SRW.MESSAGE(02
105 ,'ERROR unknown Location ID')*/NULL;
106 RAISE;
107 END;
108 BEGIN
109 FND_PROFILE.GET('org_id'
110 ,L_OU_ID);
111 C_PROFILE_COUNTRY_CODE := JG_ZZ_SHARED_PKG.GET_COUNTRY(L_OU_ID
112 ,NULL);
113 IF (P_DEBUG_SWITCH = 'Y') THEN
114 /*SRW.MESSAGE('1'
115 ,'After Get the Country Code: ' || C_PROFILE_COUNTRY_CODE)*/NULL;
116 END IF;
117 EXCEPTION
118 WHEN OTHERS THEN
119 /*SRW.MESSAGE(02
120 ,'ERROR unknown Country Code')*/NULL;
121 RAISE;
122 END;
123 IF (GET_NLS_STRINGS <> TRUE) THEN
124 RAISE INIT_FAILURE;
125 END IF;
126 IF (P_DEBUG_SWITCH = 'Y') THEN
127 /*SRW.MESSAGE('3'
128 ,'After Get_NLS_Strings')*/NULL;
129 END IF;
130 IF (GET_BASE_CURR_DATA <> TRUE) THEN
131 RAISE INIT_FAILURE;
132 END IF;
133 IF (P_DEBUG_SWITCH = 'Y') THEN
134 /*SRW.MESSAGE('4'
135 ,'After Get_Base_Curr_Data')*/NULL;
136 END IF;
137 IF (P_DEBUG_SWITCH = 'Y') THEN
138 /*SRW.BREAK*/NULL;
139 END IF;
140 RETURN (TRUE);
141 EXCEPTION
142 WHEN OTHERS THEN
143 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
144 END;
145 RETURN (TRUE);
146 END BEFOREREPORT;
147
148 FUNCTION AFTERREPORT RETURN BOOLEAN IS
149 BEGIN
150 BEGIN
151 /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
152 IF (P_DEBUG_SWITCH = 'Y') THEN
153 /*SRW.MESSAGE('20'
154 ,'After SRWEXIT')*/NULL;
155 END IF;
156 EXCEPTION
157 WHEN OTHERS THEN
158 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
159 END;
160 RETURN (TRUE);
161 END AFTERREPORT;
162
163 FUNCTION FSELECTEDSUPPLIERS RETURN VARCHAR2 IS
164 RET_TEXT VARCHAR2(2000):=' ';
165 BEGIN
166 IF (P_SUPPLIER_ID IS NOT NULL) THEN
167 RET_TEXT := 'and nvl(pv2.vendor_id,pv1.vendor_id) = :P_Supplier_Id';
168 ELSE
169 IF ((P_SUPPLIER_FROM IS NOT NULL) OR (P_SUPPLIER_TO IS NOT NULL)) THEN
170 RET_TEXT := 'and nvl(pv2.vendor_name,pv1.vendor_name) between nvl(:P_Supplier_From_1' ||
171 ' ,nvl(pv2.vendor_name,pv1.vendor_name))' ||
172 ' and nvl(:P_Supplier_To_1' ||
173 ' ,nvl(pv2.vendor_name,pv1.vendor_name))';
174 END IF;
175 IF ((P_SUPP_NUM_FROM IS NOT NULL) OR (P_SUPP_NUM_TO IS NOT NULL)) THEN
176 DECLARE
177 SUP_NUM VARCHAR2(2000) := 'nvl(pv2.segment1,pv1.segment1)';
178 NUM_FROM VARCHAR2(2000) := 'nvl(:P_Supp_Num_From_1, nvl(pv2.segment1,pv1.segment1))';
179 NUM_TO VARCHAR2(2000) := 'nvl(:P_Supp_Num_To_1, nvl(pv2.segment1,pv1.segment1))';
180 BEGIN
181 RET_TEXT := 'and ' || SUP_NUM || ' between ' || NUM_FROM || ' and ' || NUM_TO;
182 END;
183 END IF;
184 END IF;
185 RETURN (RET_TEXT);
186 END FSELECTEDSUPPLIERS;
187
188 FUNCTION ACCEPT_PARAMETER(PARAMETER_NAME IN VARCHAR2) RETURN BOOLEAN IS
189 BEGIN
190 IF (PARAMETER_NAME = 'P_Supplier_Id') THEN
191 IF (P_SUPPLIER_ID IS NOT NULL) THEN
192 P_SUPPLIER_FROM := NULL;
193 P_SUPPLIER_TO := NULL;
194 P_SUPP_NUM_FROM := NULL;
195 P_SUPP_NUM_TO := NULL;
196 END IF;
197 END IF;
198 RETURN (TRUE);
199 END ACCEPT_PARAMETER;
200
201 FUNCTION P_SUPPLIER_FROMVALIDTRIGGER RETURN BOOLEAN IS
202 BEGIN
203 RETURN (ACCEPT_PARAMETER('P_Supplier_From'));
204 RETURN (TRUE);
205 END P_SUPPLIER_FROMVALIDTRIGGER;
206
207 FUNCTION P_SUPPLIER_IDVALIDTRIGGER0116 RETURN BOOLEAN IS
208 BEGIN
209 RETURN (ACCEPT_PARAMETER('P_Supplier_Id'));
210 RETURN (TRUE);
211 END P_SUPPLIER_IDVALIDTRIGGER0116;
212
213 FUNCTION AFTERPFORM RETURN BOOLEAN IS
214 a boolean;
215 BEGIN
216 a:=P_SUPPLIER_IDVALIDTRIGGER0116;
217 P_SELECTED_SUPPLIERS := FSELECTEDSUPPLIERS;
218 P_SELECTED_DATES := FSELECTEDDATES;
219 IF P_REPORTING_LEVEL = '2000' THEN
220 LP_AP_INVOICE_DISTRIBUTIONS_WH := 'AND aid.legal_entity_id = ' || P_REPORTING_CONTEXT;
221 LP_AP_INVOICES_WH := 'AND inv1.legal_entity_id = ' || P_REPORTING_CONTEXT;
222 ELSE
223 FND_MO_REPORTING_API.INITIALIZE(P_REPORTING_LEVEL
224 ,P_REPORTING_CONTEXT
225 ,'AUTO');
226 LP_AP_INVOICE_DISTRIBUTIONS_WH := FND_MO_REPORTING_API.GET_PREDICATE('aid'
227 ,NULL
228 ,P_REPORTING_CONTEXT);
229 LP_AP_INVOICES_WH := FND_MO_REPORTING_API.GET_PREDICATE('INV1'
230 ,NULL
231 ,P_REPORTING_CONTEXT);
232 END IF;
233 IF P_AWT_TYPE IS NOT NULL THEN
234 P_AWT_TYPE_CODE := 'and jat.awt_type_code = :P_AWT_TYPE';
235 ELSE
236 P_AWT_TYPE_CODE := ' ';
237 END IF;
238 IF (P_DEBUG_SWITCH = 'Y') THEN
239 /*SRW.MESSAGE('1'
240 ,'Making Condition Where in After Form Trigger')*/NULL;
241 END IF;
242 RETURN (TRUE);
243 END AFTERPFORM;
244
245 FUNCTION CALCULATE_VAT_AMOUNT(P_TAX_NAME IN VARCHAR2
246 ,P_VENDOR_ID IN NUMBER
247 ,P_VENDOR_NUMBER IN VARCHAR2) RETURN NUMBER IS
248 V_VAT_AMOUNT NUMBER;
249 L_ORG_BOOLEAN BOOLEAN;
250 BEGIN
251 IF P_REPORTING_LEVEL in ('3000','2000') THEN
252 SELECT
253 ROUND(NVL(SUM((NVL(AID.BASE_AMOUNT
254 ,AID.AMOUNT) * ATC2.TAX_RATE) / 100)
255 ,0)
256 ,P_MIN_PRECISION) VAT_AMOUNT
257 INTO V_VAT_AMOUNT
258 FROM
259 AP_TAX_CODES_ALL ATC,
260 JL_ZZ_AP_SUP_AWT_CD_ALL JZSAC,
261 JL_ZZ_AP_INV_DIS_WH_ALL JZIDW,
262 AP_TAX_CODES_ALL ATC2,
263 AP_INVOICES_ALL AI,
264 AP_INVOICE_DISTRIBUTIONS_ALL AID
265 WHERE AI.LEGAL_ENTITY_ID = DECODE(P_REPORTING_LEVEL
266 ,'2000'
267 ,P_REPORTING_CONTEXT
268 ,AI.LEGAL_ENTITY_ID)
269 AND AI.ORG_ID = DECODE(P_REPORTING_LEVEL
270 ,'3000'
271 ,P_REPORTING_CONTEXT
272 ,AI.ORG_ID)
273 AND AID.ACCOUNTING_DATE >= NVL(TO_DATE(P_DATE_FROM
274 ,'RRRR/MM/DD HH24:MI:SS')
275 ,AID.ACCOUNTING_DATE)
276 AND AID.ACCOUNTING_DATE < NVL(TO_DATE(P_DATE_TO
277 ,'RRRR/MM/DD HH24:MI:SS') + 1
278 ,AID.ACCOUNTING_DATE + 1)
279 AND AID.MATCH_STATUS_FLAG = 'A'
280 AND AID.LINE_TYPE_LOOKUP_CODE <> 'AWT'
281 AND AID.LINE_TYPE_LOOKUP_CODE <> 'TAX'
282 AND JZIDW.INVOICE_ID = AID.INVOICE_ID
283 AND JZSAC.SUPP_AWT_CODE_ID = JZIDW.SUPP_AWT_CODE_ID
284 AND ATC.TAX_ID = JZSAC.TAX_ID
285 AND ATC.GLOBAL_ATTRIBUTE19 is not null
286 AND ATC.NAME = P_TAX_NAME
287 AND AID.TAX_CODE_ID is not null
288 AND ATC2.TAX_ID = AID.TAX_CODE_ID
289 AND AI.CANCELLED_DATE is null
290 AND ( ( AID.GLOBAL_ATTRIBUTE2 is null
291 AND AID.INVOICE_ID = AI.INVOICE_ID
292 AND AI.VENDOR_ID = P_VENDOR_ID )
293 OR ( AID.GLOBAL_ATTRIBUTE2 = P_VENDOR_NUMBER
294 AND AID.INVOICE_ID = AI.INVOICE_ID ) );
295 ELSE
296 P_ORGS := SUBSTR(LP_AP_INVOICES_WH
297 ,INSTR(LP_AP_INVOICES_WH
298 ,'INSTR'
299 ,1
300 ,1)
301 ,LENGTH(LP_AP_INVOICES_WH));
302 P_ORGS := SUBSTR(P_ORGS
303 ,1
304 ,LENGTH(P_ORGS) - 5);
305 SELECT
306 ROUND(SUM((NVL(AID.BASE_AMOUNT
307 ,AID.AMOUNT) * ATC2.TAX_RATE) / 100)
308 ,P_MIN_PRECISION) VAT_AMOUNT
309 INTO V_VAT_AMOUNT
310 FROM
311 AP_TAX_CODES_ALL ATC,
312 JL_ZZ_AP_SUP_AWT_CD_ALL JZSAC,
313 JL_ZZ_AP_INV_DIS_WH_ALL JZIDW,
314 AP_TAX_CODES_ALL ATC2,
315 AP_INVOICES_ALL AI,
316 AP_INVOICE_DISTRIBUTIONS_ALL AID
317 WHERE '0' NOT IN (
318 SELECT
319 P_ORGS
320 FROM
321 AP_INVOICES_ALL INV
322 WHERE AI.INVOICE_ID = INV.INVOICE_ID )
323 AND AID.ACCOUNTING_DATE >= NVL(TO_DATE(P_DATE_FROM
324 ,'RRRR/MM/DD HH24:MI:SS')
325 ,AID.ACCOUNTING_DATE)
326 AND AID.ACCOUNTING_DATE < NVL(TO_DATE(P_DATE_TO
327 ,'RRRR/MM/DD HH24:MI:SS') + 1
328 ,AID.ACCOUNTING_DATE + 1)
329 AND AID.MATCH_STATUS_FLAG = 'A'
330 AND AID.LINE_TYPE_LOOKUP_CODE <> 'AWT'
331 AND AID.LINE_TYPE_LOOKUP_CODE <> 'TAX'
332 AND JZIDW.INVOICE_ID = AID.INVOICE_ID
333 AND JZSAC.SUPP_AWT_CODE_ID = JZIDW.SUPP_AWT_CODE_ID
334 AND ATC.TAX_ID = JZSAC.TAX_ID
335 AND ATC.GLOBAL_ATTRIBUTE19 is not null
336 AND ATC.NAME = P_TAX_NAME
337 AND AID.TAX_CODE_ID is not null
338 AND ATC2.TAX_ID = AID.TAX_CODE_ID
339 AND AI.CANCELLED_DATE is null
340 AND ( ( AID.GLOBAL_ATTRIBUTE2 is null
341 AND AID.INVOICE_ID = AI.INVOICE_ID
342 AND AI.VENDOR_ID = P_VENDOR_ID )
343 OR ( AID.GLOBAL_ATTRIBUTE2 = P_VENDOR_NUMBER
344 AND AID.INVOICE_ID = AI.INVOICE_ID ) );
345 END IF;
346 RETURN (V_VAT_AMOUNT);
347 END CALCULATE_VAT_AMOUNT;
348
349 FUNCTION CF_VAT_AMOUNTFORMULA(CERTIFICATE_TYPE IN VARCHAR2
350 ,TAX_NAME IN VARCHAR2
351 ,VENDOR_ID IN NUMBER
352 ,VENDOR_NUMBER IN VARCHAR2) RETURN NUMBER IS
353 BEGIN
354 IF CERTIFICATE_TYPE = 'VAT' THEN
355 RETURN (CALCULATE_VAT_AMOUNT(TAX_NAME
356 ,VENDOR_ID
357 ,VENDOR_NUMBER));
358 ELSE
359 RETURN (0);
360 END IF;
361 RETURN NULL;
362 END CF_VAT_AMOUNTFORMULA;
363
364 FUNCTION CF_DATE_FROMFORMULA RETURN VARCHAR2 IS
365 L_DATE_FROM VARCHAR2(20);
366 BEGIN
367 SELECT
368 TO_CHAR(TO_DATE(P_DATE_FROM
369 ,'YYYY/MM/DD HH24:MI:SS')
370 ,'DD-MON-YYYY')
371 INTO L_DATE_FROM
372 FROM
373 DUAL;
374 RETURN (L_DATE_FROM);
375 END CF_DATE_FROMFORMULA;
376
377 FUNCTION CF_DATE_TOFORMULA RETURN VARCHAR2 IS
378 L_DATE_TO VARCHAR2(20);
379 BEGIN
380 SELECT
381 TO_CHAR(TO_DATE(P_DATE_TO
382 ,'YYYY/MM/DD HH24:MI:SS')
383 ,'DD-MON-YYYY')
384 INTO L_DATE_TO
385 FROM
386 DUAL;
387 RETURN (L_DATE_TO);
388 END CF_DATE_TOFORMULA;
389
390 FUNCTION FSELECTEDDATES RETURN VARCHAR2 IS
391 RET_TEXT VARCHAR2(1000) := NULL;
392
393 BEGIN
394 IF P_DATE_FROM IS NOT NULL THEN
395 RET_TEXT := 'aid.accounting_date >= to_date(:P_Date_from,''RRRR/MM/DD HH24:MI:SS'')';
396 END IF;
397 IF P_DATE_TO IS NOT NULL THEN
398 RET_TEXT := RET_TEXT || ' and ' || ' aid.accounting_date < to_date(:P_Date_to,''RRRR/MM/DD HH24:MI:SS'')+1';
399 END IF;
400 IF RET_TEXT IS NOT NULL THEN
401 RET_TEXT := RET_TEXT || ' and ';
402 END IF;
403 RETURN RET_TEXT;
404 END FSELECTEDDATES;
405
406 FUNCTION C_BASE_CURRENCY_CODE_P RETURN VARCHAR2 IS
407 BEGIN
408 RETURN C_BASE_CURRENCY_CODE;
409 END C_BASE_CURRENCY_CODE_P;
410
411 FUNCTION C_BASE_PRECISION_P RETURN NUMBER IS
412 BEGIN
413 RETURN C_BASE_PRECISION;
414 END C_BASE_PRECISION_P;
415
416 FUNCTION C_BASE_MIN_ACCT_UNIT_P RETURN NUMBER IS
417 BEGIN
418 RETURN C_BASE_MIN_ACCT_UNIT;
419 END C_BASE_MIN_ACCT_UNIT_P;
420
421 FUNCTION C_BASE_DESCRIPTION_P RETURN VARCHAR2 IS
422 BEGIN
423 RETURN C_BASE_DESCRIPTION;
424 END C_BASE_DESCRIPTION_P;
425
426 FUNCTION C_COMPANY_NAME_HEADER_P RETURN VARCHAR2 IS
427 BEGIN
428 RETURN C_COMPANY_NAME_HEADER;
429 END C_COMPANY_NAME_HEADER_P;
430
431 FUNCTION C_REPORT_START_DATE_P RETURN DATE IS
432 BEGIN
433 RETURN C_REPORT_START_DATE;
434 END C_REPORT_START_DATE_P;
435
436 FUNCTION C_NLS_YES_P RETURN VARCHAR2 IS
437 BEGIN
438 RETURN C_NLS_YES;
439 END C_NLS_YES_P;
440
441 FUNCTION C_NLS_NO_P RETURN VARCHAR2 IS
442 BEGIN
443 RETURN C_NLS_NO;
444 END C_NLS_NO_P;
445
446 FUNCTION C_NLS_ALL_P RETURN VARCHAR2 IS
447 BEGIN
448 RETURN C_NLS_ALL;
449 END C_NLS_ALL_P;
450
451 FUNCTION C_NLS_NO_DATA_EXISTS_P RETURN VARCHAR2 IS
452 BEGIN
453 RETURN C_NLS_NO_DATA_EXISTS;
454 END C_NLS_NO_DATA_EXISTS_P;
455
456 FUNCTION C_REPORT_RUN_TIME_P RETURN VARCHAR2 IS
457 BEGIN
458 RETURN C_REPORT_RUN_TIME;
459 END C_REPORT_RUN_TIME_P;
460
461 FUNCTION C_CHART_OF_ACCOUNTS_ID_P RETURN NUMBER IS
462 BEGIN
463 RETURN C_CHART_OF_ACCOUNTS_ID;
464 END C_CHART_OF_ACCOUNTS_ID_P;
465
466 FUNCTION C_LOCATION_ID_P RETURN NUMBER IS
467 BEGIN
468 RETURN C_LOCATION_ID;
469 END C_LOCATION_ID_P;
470
471 FUNCTION C_NLS_END_OF_REPORT_P RETURN VARCHAR2 IS
472 BEGIN
473 RETURN C_NLS_END_OF_REPORT;
474 END C_NLS_END_OF_REPORT_P;
475
476 FUNCTION C_PROFILE_COUNTRY_CODE_P RETURN VARCHAR2 IS
477 BEGIN
478 RETURN C_PROFILE_COUNTRY_CODE;
479 END C_PROFILE_COUNTRY_CODE_P;
480
481 END JL_JLCOPCWT_XMLP_PKG;
482
483
484