DBA Data[Home] [Help]

PACKAGE BODY: APPS.AP_APXHRUPD_XMLP_PKG

Source


1 PACKAGE BODY AP_APXHRUPD_XMLP_PKG AS
2 /* $Header: APXHRUPDB.pls 120.0 2007/12/27 07:42:04 vjaganat noship $ */
3   FUNCTION GET_BASE_CURR_DATA RETURN BOOLEAN IS
4     BASE_CURR AP_SYSTEM_PARAMETERS.BASE_CURRENCY_CODE%TYPE;
5     PREC FND_CURRENCIES.PRECISION%TYPE;
6     MIN_AU FND_CURRENCIES.MINIMUM_ACCOUNTABLE_UNIT%TYPE;
7     DESCR FND_CURRENCIES.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 C
22     WHERE P.BASE_CURRENCY_CODE = C.CURRENCY_CODE;
23     C_BASE_CURRENCY_CODE := BASE_CURR;
24     C_BASE_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 CUSTOM_INIT RETURN BOOLEAN IS
35   BEGIN
36     RETURN (TRUE);
37     RETURN NULL;
38   EXCEPTION
39     WHEN OTHERS THEN
40       RETURN (FALSE);
41   END CUSTOM_INIT;
42 
43   FUNCTION GET_COVER_PAGE_VALUES RETURN BOOLEAN IS
44   BEGIN
45     RETURN (TRUE);
46     RETURN NULL;
47   EXCEPTION
48     WHEN OTHERS THEN
49       RETURN (FALSE);
50   END GET_COVER_PAGE_VALUES;
51 
52   FUNCTION GET_NLS_STRINGS RETURN BOOLEAN IS
53     NLS_VOID AP_LOOKUP_CODES.DISPLAYED_FIELD%TYPE;
54     NLS_NA AP_LOOKUP_CODES.DISPLAYED_FIELD%TYPE;
55     NLS_ALL AP_LOOKUP_CODES.DISPLAYED_FIELD%TYPE;
56     NLS_YES FND_LOOKUPS.MEANING%TYPE;
57     NLS_NO FND_LOOKUPS.MEANING%TYPE;
58   BEGIN
59     SELECT
60       LY.MEANING,
61       LN.MEANING,
62       L1.DISPLAYED_FIELD,
63       L2.DISPLAYED_FIELD,
64       L3.DISPLAYED_FIELD
65     INTO NLS_YES,NLS_NO,NLS_ALL,NLS_VOID,NLS_NA
66     FROM
67       FND_LOOKUPS LY,
68       FND_LOOKUPS LN,
69       AP_LOOKUP_CODES L1,
70       AP_LOOKUP_CODES L2,
71       AP_LOOKUP_CODES L3
72     WHERE LY.LOOKUP_TYPE = 'YES_NO'
73       AND LY.LOOKUP_CODE = 'Y'
74       AND LN.LOOKUP_TYPE = 'YES_NO'
75       AND LN.LOOKUP_CODE = 'N'
76       AND L1.LOOKUP_TYPE = 'NLS REPORT PARAMETER'
77       AND L1.LOOKUP_CODE = 'ALL'
78       AND L2.LOOKUP_TYPE = 'NLS TRANSLATION'
79       AND L2.LOOKUP_CODE = 'VOID'
80       AND L3.LOOKUP_TYPE = 'NLS REPORT PARAMETER'
81       AND L3.LOOKUP_CODE = 'NA';
82     C_NLS_YES := NLS_YES;
83     C_NLS_NO := NLS_NO;
84     C_NLS_ALL := NLS_ALL;
85     C_NLS_VOID := NLS_VOID;
86     C_NLS_NA := NLS_NA;
87     FND_MESSAGE.SET_NAME('SQLAP'
88                         ,'AP_APPRVL_NO_DATA');
89     C_NLS_NO_DATA_EXISTS := FND_MESSAGE.GET;
90     FND_MESSAGE.SET_NAME('SQLAP'
91                         ,'AP_ALL_END_OF_REPORT');
92     C_NLS_END_OF_REPORT := FND_MESSAGE.GET;
93    -- C_NLS_NO_DATA_EXISTS := '*** ' || C_NLS_NO_DATA_EXISTS || ' ***';
94    -- C_NLS_END_OF_REPORT := '*** ' || C_NLS_END_OF_REPORT || ' ***';
95     RETURN (TRUE);
96     RETURN NULL;
97   EXCEPTION
98     WHEN OTHERS THEN
99       RETURN (FALSE);
100   END GET_NLS_STRINGS;
101 
102   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
103   BEGIN
104     DECLARE
105       INIT_FAILURE EXCEPTION;
106     BEGIN
107       C_REPORT_START_DATE := SYSDATE;
108       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
109       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
110       IF (P_DEBUG_SWITCH in ('y','Y')) THEN
111         /*SRW.MESSAGE('1'
112                    ,'After SRWINIT')*/NULL;
113       END IF;
114       IF (GET_LAST_RUN_DATE <> TRUE) THEN
115         RAISE INIT_FAILURE;
116       END IF;
117       IF (P_DEBUG_SWITCH in ('y','Y')) THEN
118         /*SRW.MESSAGE('3'
119                    ,'After Get_Last_Run_Date')*/NULL;
120       END IF;
121       IF (SET_SUPPLIER_WHERE <> TRUE) THEN
122         RAISE INIT_FAILURE;
123       END IF;
124       IF (P_DEBUG_SWITCH in ('y','Y')) THEN
125         /*SRW.MESSAGE('9'
126                    ,'After Set_Supplier_Where')*/NULL;
127       END IF;
128       IF (GET_COMPANY_NAME <> TRUE) THEN
129         RAISE INIT_FAILURE;
130       END IF;
131       IF (P_DEBUG_SWITCH in ('y','Y')) THEN
132         /*SRW.MESSAGE('11'
133                    ,'After Get_Company_Name')*/NULL;
134       END IF;
135       IF (GET_BASE_CURR_DATA <> TRUE) THEN
136         RAISE INIT_FAILURE;
137       END IF;
138       IF (P_DEBUG_SWITCH in ('y','Y')) THEN
139         /*SRW.MESSAGE('13'
140                    ,'After Get_Base_Curr_Data')*/NULL;
141       END IF;
142       IF (P_DEBUG_SWITCH in ('y','Y')) THEN
143         /*SRW.BREAK*/NULL;
144       END IF;
145       RETURN (TRUE);
146     EXCEPTION
147       WHEN OTHERS THEN
148         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
149     END;
150     RETURN (TRUE);
151   END BEFOREREPORT;
152 
153   FUNCTION AFTERREPORT RETURN BOOLEAN IS
154   BEGIN
155     DECLARE
156       INIT_FAILURE EXCEPTION;
157     BEGIN
158       IF (AP_EMPLOYEE_UPDATE_PKG.UPDATE_EMPLOYEE(C_UPDATE_DATE
159                                             ,P_FROM_SUPPLIER
160                                             ,P_TO_SUPPLIER
161                                             ,P_DEBUG_SWITCH
162                                             ,'After Report Trigger') <> TRUE) THEN
163         RAISE INIT_FAILURE;
164       END IF;
165       IF (P_DEBUG_SWITCH = 'Y') THEN
166         /*SRW.MESSAGE('21'
167                    ,'AP_EMPLOYEE_UPDATE_PKG.Update_Employee')*/NULL;
168       END IF;
169       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
170       IF (P_DEBUG_SWITCH = 'Y') THEN
171         /*SRW.MESSAGE('22'
172                    ,'After SRWEXIT')*/NULL;
173       END IF;
174     EXCEPTION
175       WHEN OTHERS THEN
176         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
177     END;
178     RETURN (TRUE);
179   END AFTERREPORT;
180 
181   FUNCTION GET_COMPANY_NAME RETURN BOOLEAN IS
182     L_CHART_OF_ACCOUNTS_ID GL_SETS_OF_BOOKS.CHART_OF_ACCOUNTS_ID%TYPE;
183     L_NAME GL_SETS_OF_BOOKS.NAME%TYPE;
184     L_SOB_ID NUMBER;
185     L_REPORT_START_DATE DATE;
186   BEGIN
187     L_REPORT_START_DATE := SYSDATE;
188     L_SOB_ID := P_SET_OF_BOOKS_ID;
189     /*SRW.MESSAGE('10'
190                ,'l_sob_id: ' || L_SOB_ID)*/NULL;
191     SELECT
192       NAME,
193       CHART_OF_ACCOUNTS_ID
194     INTO L_NAME,L_CHART_OF_ACCOUNTS_ID
195     FROM
196       GL_SETS_OF_BOOKS
197     WHERE SET_OF_BOOKS_ID = L_SOB_ID;
198     C_COMPANY_NAME_HEADER := L_NAME;
199     C_CHART_OF_ACCOUNTS_ID := L_CHART_OF_ACCOUNTS_ID;
200     C_REPORT_START_DATE := L_REPORT_START_DATE;
201     RETURN (TRUE);
202     RETURN NULL;
203   EXCEPTION
204     WHEN OTHERS THEN
205       RETURN (FALSE);
206   END GET_COMPANY_NAME;
207 
208   FUNCTION GET_LAST_RUN_DATE RETURN BOOLEAN IS
209     L_REQUESTED_START_DATE FND_CONCURRENT_REQUESTS.REQUESTED_START_DATE%TYPE;
210   BEGIN
211     SELECT
212       MAX(REQUESTED_START_DATE)
213     INTO L_REQUESTED_START_DATE
214     FROM
215       FND_CONCURRENT_PROGRAMS FCONC,
216       FND_CONCURRENT_REQUESTS FREQ
217     WHERE FCONC.APPLICATION_ID = FREQ.PROGRAM_APPLICATION_ID
218       AND FCONC.CONCURRENT_PROGRAM_ID = FREQ.CONCURRENT_PROGRAM_ID
219       AND FCONC.CONCURRENT_PROGRAM_NAME = 'APXHRUPD'
220       AND FREQ.STATUS_CODE = 'C';
221     IF (P_FROM_SUPPLIER IS NOT NULL AND P_TO_SUPPLIER IS NOT NULL) THEN
222       C_UPDATE_DATE := NULL;
223     ELSE
224       C_UPDATE_DATE := NVL(L_REQUESTED_START_DATE
225                           ,TO_DATE('01/01/1951'
226                                  ,'DD/MM/YYYY'));
227     END IF;
228     IF (P_DEBUG_SWITCH = 'Y') THEN
229       /*SRW.MESSAGE('2'
230                  ,'C_Update Date: ' || C_UPDATE_DATE)*/NULL;
231     END IF;
232     RETURN (TRUE);
233     RETURN NULL;
234   EXCEPTION
235     WHEN OTHERS THEN
236       RETURN (FALSE);
237   END GET_LAST_RUN_DATE;
238 
239   FUNCTION CALCULATE_RUN_TIME RETURN BOOLEAN IS
240     END_DATE DATE;
241     START_DATE DATE;
242   BEGIN
243     END_DATE := SYSDATE;
244     START_DATE := C_REPORT_START_DATE;
245     C_REPORT_RUN_TIME := TO_CHAR(TO_DATE('01/01/0001'
246                                         ,'DD/MM/YYYY') + ((END_DATE - START_DATE))
247                                 ,'HH24:MI:SS');
248     RETURN (TRUE);
249     RETURN NULL;
250   EXCEPTION
251     WHEN OTHERS THEN
252       /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
253   END CALCULATE_RUN_TIME;
254 
255   FUNCTION C_DUPLICATE_YES_NOFORMULA(UPDATED_VALUE IN VARCHAR2
256                                     ,UPDATED_TO IN VARCHAR2) RETURN VARCHAR2 IS
257     L_DUPLICATES VARCHAR2(1);
258     L_COUNT NUMBER;
259   BEGIN
260     /*SRW.REFERENCE(UPDATED_VALUE)*/NULL;
261     IF UPDATED_VALUE = 'Name' THEN
262       BEGIN
263         SELECT
264           'Y'
265         INTO L_DUPLICATES
266         FROM
267           DUAL
268         WHERE EXISTS (
269           SELECT
270             'Duplicates exist in Po_Vendors'
271           FROM
272             AP_SUPPLIERS
273           WHERE VENDOR_NAME = UPDATED_TO );
274         RETURN ('Y');
275       EXCEPTION
276         WHEN NO_DATA_FOUND THEN
277           SELECT
278             COUNT(PERSON_ID)
279           INTO L_COUNT
280           FROM
281             PER_ALL_PEOPLE_F PPF
282           WHERE TRUNC(SYSDATE) between PPF.EFFECTIVE_START_DATE
283             AND PPF.EFFECTIVE_END_DATE
284             AND DECODE(PPF.MIDDLE_NAMES
285                 ,NULL
286                 ,PPF.LAST_NAME || ', ' || PPF.FIRST_NAME
287                 ,PPF.LAST_NAME || ', ' || PPF.FIRST_NAME || ' ' || PPF.MIDDLE_NAMES) = UPDATED_TO;
288           IF L_COUNT > 1 THEN
289             RETURN ('Y');
290           ELSE
291             RETURN ('N');
292           END IF;
293       END;
294     ELSE
295       RETURN ('N');
296     END IF;
297   END C_DUPLICATE_YES_NOFORMULA;
298 
299   FUNCTION SET_SUPPLIER_WHERE RETURN BOOLEAN IS
300   BEGIN
301     IF (P_FROM_SUPPLIER IS NOT NULL AND P_TO_SUPPLIER IS NOT NULL) THEN
302       C_SUPPLIER_PREDICATE := ' and pv1.vendor_name between ' || '''' || P_FROM_SUPPLIER || ''' and ''' || P_TO_SUPPLIER || '''';
303       C_NAME_UPDATE_DATE := ' ';
304       C_INACTIVE_UPDATE_DATE := ' ';
305       C_HOME_UPDATE_DATE := ' ';
306       C_OFFICE_UPDATE_DATE := ' ';
307     ELSE
308       C_SUPPLIER_PREDICATE := ' ';
309       C_NAME_UPDATE_DATE := ' and ppf.last_update_date  > ' || '''' || C_UPDATE_DATE || '''';
310       C_INACTIVE_UPDATE_DATE := ' and ppos.last_update_date > ' || '''' || C_UPDATE_DATE || '''';
311       C_HOME_UPDATE_DATE := ' and pa1.last_update_date > ' || '''' || C_UPDATE_DATE || '''';
312       C_OFFICE_UPDATE_DATE := ' and (trunc(paf.last_update_date) >= ' || '''' || C_UPDATE_DATE || '''' || ' OR ' || 'trunc(locs.last_update_date) >= ' || '''' || C_UPDATE_DATE || '''' || ')';
313     END IF;
314     /*SRW.MESSAGE('4'
315                ,'C_supplier_predicate: ' || C_SUPPLIER_PREDICATE)*/NULL;
316     /*SRW.MESSAGE('5'
317                ,'C_name_update_date: ' || C_NAME_UPDATE_DATE)*/NULL;
318     /*SRW.MESSAGE('6'
319                ,'C_inactive_update_date: ' || C_INACTIVE_UPDATE_DATE)*/NULL;
320     /*SRW.MESSAGE('7'
321                ,'C_home_update_date: ' || C_HOME_UPDATE_DATE)*/NULL;
322     /*SRW.MESSAGE('8'
323                ,'C_office_update_date: ' || C_OFFICE_UPDATE_DATE)*/NULL;
324     RETURN (TRUE);
325     RETURN NULL;
326   EXCEPTION
327     WHEN OTHERS THEN
328       RETURN (FALSE);
329   END SET_SUPPLIER_WHERE;
330 
331   FUNCTION C_NLS_YES_P RETURN VARCHAR2 IS
332   BEGIN
333     RETURN C_NLS_YES;
334   END C_NLS_YES_P;
335 
336   FUNCTION C_NLS_NO_P RETURN VARCHAR2 IS
337   BEGIN
338     RETURN C_NLS_NO;
339   END C_NLS_NO_P;
340 
341   FUNCTION C_NLS_ALL_P RETURN VARCHAR2 IS
342   BEGIN
343     RETURN C_NLS_ALL;
344   END C_NLS_ALL_P;
345 
346   FUNCTION C_NLS_NO_DATA_EXISTS_P RETURN VARCHAR2 IS
347   BEGIN
348     RETURN C_NLS_NO_DATA_EXISTS;
349   END C_NLS_NO_DATA_EXISTS_P;
350 
351   FUNCTION C_NLS_VOID_P RETURN VARCHAR2 IS
352   BEGIN
353     RETURN C_NLS_VOID;
354   END C_NLS_VOID_P;
355 
356   FUNCTION C_NLS_NA_P RETURN VARCHAR2 IS
357   BEGIN
358     RETURN C_NLS_NA;
359   END C_NLS_NA_P;
360 
361   FUNCTION C_NLS_END_OF_REPORT_P RETURN VARCHAR2 IS
362   BEGIN
363     RETURN C_NLS_END_OF_REPORT;
364   END C_NLS_END_OF_REPORT_P;
365 
366   FUNCTION C_REPORT_START_DATE_P RETURN DATE IS
367   BEGIN
368     RETURN C_REPORT_START_DATE;
369   END C_REPORT_START_DATE_P;
370 
371   FUNCTION C_COMPANY_NAME_HEADER_P RETURN VARCHAR2 IS
372   BEGIN
373     RETURN C_COMPANY_NAME_HEADER;
374   END C_COMPANY_NAME_HEADER_P;
375 
376   FUNCTION C_BASE_CURRENCY_CODE_P RETURN VARCHAR2 IS
377   BEGIN
378     RETURN C_BASE_CURRENCY_CODE;
379   END C_BASE_CURRENCY_CODE_P;
380 
381   FUNCTION C_BASE_PRECISION_P RETURN NUMBER IS
382   BEGIN
383     RETURN C_BASE_PRECISION;
384   END C_BASE_PRECISION_P;
385 
386   FUNCTION C_BASE_MIN_ACCT_UNIT_P RETURN NUMBER IS
387   BEGIN
388     RETURN C_BASE_MIN_ACCT_UNIT;
389   END C_BASE_MIN_ACCT_UNIT_P;
390 
391   FUNCTION C_BASE_DESCRIPTION_P RETURN VARCHAR2 IS
392   BEGIN
393     RETURN C_BASE_DESCRIPTION;
394   END C_BASE_DESCRIPTION_P;
395 
396   FUNCTION C_CHART_OF_ACCOUNTS_ID_P RETURN NUMBER IS
397   BEGIN
398     RETURN C_CHART_OF_ACCOUNTS_ID;
399   END C_CHART_OF_ACCOUNTS_ID_P;
400 
401   FUNCTION C_REPORT_RUN_TIME_P RETURN VARCHAR2 IS
402   BEGIN
403     RETURN C_REPORT_RUN_TIME;
404   END C_REPORT_RUN_TIME_P;
405 
406   FUNCTION C_SUPPLIER_PREDICATE_P RETURN VARCHAR2 IS
407   BEGIN
408     RETURN C_SUPPLIER_PREDICATE;
409   END C_SUPPLIER_PREDICATE_P;
410 
411   FUNCTION C_NAME_UPDATE_DATE_P RETURN VARCHAR2 IS
412   BEGIN
413     RETURN C_NAME_UPDATE_DATE;
414   END C_NAME_UPDATE_DATE_P;
415 
416   FUNCTION C_INACTIVE_UPDATE_DATE_P RETURN VARCHAR2 IS
417   BEGIN
418     RETURN C_INACTIVE_UPDATE_DATE;
419   END C_INACTIVE_UPDATE_DATE_P;
420 
421   FUNCTION C_HOME_UPDATE_DATE_P RETURN VARCHAR2 IS
422   BEGIN
423     RETURN C_HOME_UPDATE_DATE;
424   END C_HOME_UPDATE_DATE_P;
425 
426   FUNCTION C_OFFICE_UPDATE_DATE_P RETURN VARCHAR2 IS
427   BEGIN
428     RETURN C_OFFICE_UPDATE_DATE;
429   END C_OFFICE_UPDATE_DATE_P;
430 
431 END AP_APXHRUPD_XMLP_PKG;
432 
433