DBA Data[Home] [Help]

PACKAGE BODY: APPS.AR_ARXSOC_XMLP_PKG

Source


1 PACKAGE BODY AR_ARXSOC_XMLP_PKG AS
2 /* $Header: ARXSOCB.pls 120.0 2007/12/27 14:09:11 abraghun noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     RETURN (TRUE);
6   END BEFOREREPORT;
7   FUNCTION AFTERREPORT RETURN BOOLEAN IS
8   BEGIN
9     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
10     RETURN (TRUE);
11   END AFTERREPORT;
12   FUNCTION REPORT_NAMEFORMULA(COMPANY_NAME IN VARCHAR2) RETURN VARCHAR2 IS
13   BEGIN
14     DECLARE
15       L_REPORT_NAME VARCHAR2(80);
16       L_DATE_LOW VARCHAR2(11);
17       L_DATE_HIGH VARCHAR2(11);
18     BEGIN
19       IF P_DATE_LOW IS NULL THEN
20         L_DATE_LOW := '   ';
21       ELSE
22         L_DATE_LOW := TO_CHAR(P_DATE_LOW
23                              ,'DD-MON-YYYY');
24       END IF;
25       IF P_DATE_HIGH IS NULL THEN
26         L_DATE_HIGH := '   ';
27       ELSE
28         L_DATE_HIGH := TO_CHAR(P_DATE_HIGH
29                               ,'DD-MON-YYYY');
30       END IF;
31       RP_DATE_RANGE := ARP_STANDARD.FND_MESSAGE('ARXSOC_DEPOSIT_DATE_RANGE'
32                                                ,'FROM_DATE'
33                                                ,L_DATE_LOW
34                                                ,'TO_DATE'
35                                                ,L_DATE_HIGH);
36       RP_COMPANY_NAME := COMPANY_NAME;
37       SELECT
38         SUBSTR(CP.USER_CONCURRENT_PROGRAM_NAME
39               ,1
40               ,80)
41       INTO L_REPORT_NAME
42       FROM
43         FND_CONCURRENT_PROGRAMS_VL CP,
44         FND_CONCURRENT_REQUESTS CR
45       WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
46         AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
47         AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
48       RP_REPORT_NAME := L_REPORT_NAME;
49       RETURN (L_REPORT_NAME);
50     EXCEPTION
51       WHEN NO_DATA_FOUND THEN
52         RP_REPORT_NAME := NULL;
53         RETURN (NULL);
54     END;
55     RETURN NULL;
56   END REPORT_NAMEFORMULA;
57   FUNCTION C_DIFFERENCE_AMOUNTFORMULA(C_RCPT_CONTROL_AMOUNT IN NUMBER
58                                      ,C_ACTUAL_AMOUNT IN NUMBER) RETURN NUMBER IS
59   BEGIN
60     /*SRW.REFERENCE(C_RCPT_CONTROL_AMOUNT)*/NULL;
61     /*SRW.REFERENCE(C_ACTUAL_AMOUNT)*/NULL;
62     RETURN (NVL(C_RCPT_CONTROL_AMOUNT
63               ,0) - NVL(C_ACTUAL_AMOUNT
64               ,0));
65   END C_DIFFERENCE_AMOUNTFORMULA;
66   FUNCTION C_SUMMARY_LABELFORMULA(CURRENCY_A IN VARCHAR2) RETURN VARCHAR2 IS
67   BEGIN
68     RETURN (RTRIM(RPAD(CURRENCY_A
69                      ,3)));
70   END C_SUMMARY_LABELFORMULA;
71   FUNCTION CA_DIFFERENCE_AMOUNTFORMULA(C_RCPT_CONTROL_AMOUNT_B IN NUMBER
72                                       ,CA_ACTUAL_AMOUNT IN NUMBER) RETURN NUMBER IS
73   BEGIN
74     /*SRW.REFERENCE(C_RCPT_CONTROL_AMOUNT_B)*/NULL;
75     /*SRW.REFERENCE(CA_ACTUAL_AMOUNT)*/NULL;
76     RETURN (NVL(C_RCPT_CONTROL_AMOUNT_B
77               ,0) - NVL(CA_ACTUAL_AMOUNT
78               ,0));
79   END CA_DIFFERENCE_AMOUNTFORMULA;
80   FUNCTION CA_SUMMARY_LABELFORMULA(CURRENCY_B IN VARCHAR2) RETURN VARCHAR2 IS
81   BEGIN
82     RETURN (RTRIM(RPAD(CURRENCY_B
83                      ,3)));
84   END CA_SUMMARY_LABELFORMULA;
85   FUNCTION CF_DATA_NOT_FOUNDFORMULA(BANK_ACCOUNT_NAME_C IN VARCHAR2) RETURN NUMBER IS
86   BEGIN
87     RP_DATA_FOUND3 := BANK_ACCOUNT_NAME_C;
88     RETURN (0);
89   END CF_DATA_NOT_FOUNDFORMULA;
90   FUNCTION CR_DATA_FOUNDFORMULA(CURRENCY_B IN VARCHAR2) RETURN NUMBER IS
91   BEGIN
92     RP_DATA_FOUND2 := CURRENCY_B;
93     RETURN (0);
94   END CR_DATA_FOUNDFORMULA;
95   FUNCTION CM_DATA_NOT_FOUNDFORMULA(CURRENCY_A IN VARCHAR2) RETURN NUMBER IS
96   BEGIN
97     RP_DATA_FOUND1 := CURRENCY_A;
98     RETURN (0);
99   END CM_DATA_NOT_FOUNDFORMULA;
100   FUNCTION AFTERPFORM RETURN BOOLEAN IS
101   BEGIN
102     DECLARE
103       L_BANK_COUNT NUMBER(10);
104     BEGIN
105       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
106       P_DATE_LOW1 := to_char(P_DATE_LOW,'dd-mon-yy');
107             P_DATE_HIGH1 := to_char(P_DATE_HIGH,'dd-mon-yy');
108       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
109       PH_ORDER_BY := P_ORDER_BY;
110       IF UPPER(SUBSTR(P_ORDER_BY
111                   ,1
112                   ,1)) = 'B' THEN
113         P_ORDER_BY_1 := 'Bank';
114       ELSE
115         P_ORDER_BY_1 := 'Currency';
116       END IF;
117       IF P_DATE_LOW IS NOT NULL THEN
118         LP_DATE_LOW := ' and deposit_date >= :p_date_low ';
119       END IF;
120       IF P_DATE_HIGH IS NOT NULL THEN
121         LP_DATE_HIGH := ' and deposit_date  <= :p_date_high ';
122       END IF;
123       IF P_BANK_ACCOUNT_NAME_LOW IS NOT NULL THEN
124         LP_BANK_ACCOUNT_NAME_LOW := 'and cba.bank_account_name >= :p_bank_account_name_low';
125       END IF;
126       IF P_BANK_ACCOUNT_NAME_HIGH IS NOT NULL THEN
127         LP_BANK_ACCOUNT_NAME_HIGH := 'and cba.bank_account_name <= :p_bank_account_name_high';
128       END IF;
129       SELECT
130         count(*)
131       INTO L_BANK_COUNT
132       FROM
133         CE_BANK_ACCT_USES BA,
134         CE_BANK_ACCOUNTS CBA,
135         CE_BANK_BRANCHES_V BB
136       WHERE BA.BANK_ACCT_USE_ID in (
137         SELECT
138           DISTINCT
139           REMIT_BANK_ACCT_USE_ID
140         FROM
141           AR_CASH_RECEIPTS )
142         AND CBA.BANK_BRANCH_ID = BB.BRANCH_PARTY_ID
143         AND CBA.BANK_ACCOUNT_ID = BA.BANK_ACCOUNT_ID
144         AND CBA.BANK_ACCOUNT_NAME between DECODE(P_BANK_ACCOUNT_NAME_LOW
145             ,NULL
146             ,CBA.BANK_ACCOUNT_NAME
147             ,P_BANK_ACCOUNT_NAME_LOW)
148         AND DECODE(P_BANK_ACCOUNT_NAME_HIGH
149             ,NULL
150             ,CBA.BANK_ACCOUNT_NAME
151             ,P_BANK_ACCOUNT_NAME_HIGH);
152       P_BANK_COUNT := L_BANK_COUNT;
153     END;
154     RETURN (TRUE);
155   END AFTERPFORM;
156   FUNCTION F_AMOUNTSFORMULA(AMOUNT IN NUMBER
157                            ,CR_STATUS IN VARCHAR2
158                            ,CR_TYPE IN VARCHAR2
159                            ,REVERSAL_CATEGORY IN VARCHAR2
160                            ,CASH_RECEIPT_ID IN NUMBER) RETURN NUMBER IS
161   BEGIN
162     DECLARE
163       L_ACTUAL_AMOUNT NUMBER := 0;
164       L_UNIDENTIFIED_AMOUNT NUMBER := 0;
165       L_MISC_AMOUNT NUMBER := 0;
166       L_NSF_AMOUNT NUMBER := 0;
167       L_ON_ACCOUNT_AMOUNT NUMBER := 0;
168       L_APPLIED_COUNT NUMBER(10) := 1;
169       L_UNAPPLIED_COUNT NUMBER(10) := 0;
170       L_UNIDENTIFIED_COUNT NUMBER(10) := 0;
171       L_MISC_COUNT NUMBER(10) := 0;
172     BEGIN
173       /*SRW.REFERENCE(AMOUNT)*/NULL;
174       /*SRW.REFERENCE(CR_STATUS)*/NULL;
175       /*SRW.REFERENCE(CR_TYPE)*/NULL;
176       /*SRW.REFERENCE(REVERSAL_CATEGORY)*/NULL;
177       SELECT
178         DECODE(CR_STATUS
179               ,'REV'
180               ,0
181               ,AMOUNT),
182         DECODE(CR_STATUS
183               ,'UNID'
184               ,AMOUNT
185               ,0),
186         DECODE(CR_TYPE
187               ,'MISC'
188               ,DECODE(CR_STATUS
189                     ,'APP'
190                     ,AMOUNT
191                     ,0)
192               ,0),
193         DECODE(CR_STATUS
194               ,REVERSAL_CATEGORY
195               ,DECODE(CR_STATUS
196                     ,'NSF'
197                     ,AMOUNT
198                     ,'STOP'
199                     ,AMOUNT
200                     ,0)
201               ,0),
202         DECODE(CR_STATUS
203               ,'APP'
204               ,1
205               ,''),
206         DECODE(CR_STATUS
207               ,'UNAPP'
208               ,1
209               ,0),
210         DECODE(CR_STATUS
211               ,'UNID'
212               ,1
213               ,0),
214         DECODE(CR_TYPE
215               ,'MISC'
216               ,1
217               ,0)
218       INTO L_ACTUAL_AMOUNT,L_UNIDENTIFIED_AMOUNT,L_MISC_AMOUNT,L_NSF_AMOUNT,L_APPLIED_COUNT,L_UNAPPLIED_COUNT,L_UNIDENTIFIED_COUNT,L_MISC_COUNT
219       FROM
220         DUAL;
221       IF CR_STATUS = 'APP' THEN
222         SELECT
223           SUM(AMOUNT_APPLIED)
224         INTO L_ON_ACCOUNT_AMOUNT
225         FROM
226           AR_RECEIVABLE_APPLICATIONS
227         WHERE CASH_RECEIPT_ID = F_AMOUNTSFORMULA.CASH_RECEIPT_ID
228           AND STATUS = 'ACC';
229         IF NVL(L_ON_ACCOUNT_AMOUNT
230            ,0) <> 0 THEN
231           L_APPLIED_COUNT := L_APPLIED_COUNT - 1;
232         END IF;
233       END IF;
234       P_ACTUAL_AMOUNT := L_ACTUAL_AMOUNT;
235       P_UNIDENTIFIED_AMOUNT := L_UNIDENTIFIED_AMOUNT;
236       P_MISC_AMOUNT := L_MISC_AMOUNT;
237       P_NSF_AMOUNT := L_NSF_AMOUNT;
238       P_APPLIED_COUNT := L_APPLIED_COUNT;
239       P_UNAPPLIED_COUNT := L_UNAPPLIED_COUNT;
240       P_UNIDENTIFIED_COUNT := L_UNIDENTIFIED_COUNT;
241       P_MISC_COUNT := L_MISC_COUNT;
242       RETURN (1);
243     END;
244     RETURN NULL;
245   END F_AMOUNTSFORMULA;
246   FUNCTION F_ALL_AMOUNTSFORMULA(AMOUNT_B IN NUMBER
247                                ,CR_STATUS_BB IN VARCHAR2
248                                ,CR_TYPE_B IN VARCHAR2
249                                ,REVERSAL_CATEGORY_B IN VARCHAR2
250                                ,CASH_RECEIPT_ID_B IN NUMBER) RETURN NUMBER IS
251   BEGIN
252     DECLARE
253       L_ACTUAL_AMOUNT NUMBER := 0;
254       L_UNIDENTIFIED_AMOUNT NUMBER := 0;
255       L_MISC_AMOUNT NUMBER := 0;
256       L_NSF_AMOUNT NUMBER := 0;
257       L_ON_ACCOUNT_AMOUNT NUMBER := 0;
258       L_APPLIED_COUNT NUMBER(10) := 0;
259       L_UNAPPLIED_COUNT NUMBER(10) := 0;
260       L_UNIDENTIFIED_COUNT NUMBER(10) := 0;
261       L_MISC_COUNT NUMBER(10) := 0;
262     BEGIN
263       /*SRW.REFERENCE(AMOUNT_B)*/NULL;
264       /*SRW.REFERENCE(CR_STATUS_BB)*/NULL;
265       /*SRW.REFERENCE(CR_TYPE_B)*/NULL;
266       /*SRW.REFERENCE(REVERSAL_CATEGORY_B)*/NULL;
267       SELECT
268         DECODE(CR_STATUS_BB
269               ,'REV'
270               ,0
271               ,AMOUNT_B),
272         DECODE(CR_STATUS_BB
273               ,'UNID'
274               ,AMOUNT_B
275               ,0),
276         DECODE(CR_TYPE_B
277               ,'MISC'
278               ,DECODE(CR_STATUS_BB
279                     ,'APP'
280                     ,AMOUNT_B
281                     ,0)
282               ,0),
283         DECODE(CR_STATUS_BB
284               ,REVERSAL_CATEGORY_B
285               ,DECODE(CR_STATUS_BB
286                     ,'NSF'
287                     ,AMOUNT_B
288                     ,'STOP'
289                     ,AMOUNT_B
290                     ,0)
291               ,0),
292         DECODE(CR_STATUS_BB
293               ,'APP'
294               ,1
295               ,''),
296         DECODE(CR_STATUS_BB
297               ,'UNAPP'
298               ,1
299               ,0),
300         DECODE(CR_STATUS_BB
301               ,'UNID'
302               ,1
303               ,0),
304         DECODE(CR_TYPE_B
305               ,'MISC'
306               ,1
307               ,0)
308       INTO L_ACTUAL_AMOUNT,L_UNIDENTIFIED_AMOUNT,L_MISC_AMOUNT,L_NSF_AMOUNT,L_APPLIED_COUNT,L_UNAPPLIED_COUNT,L_UNIDENTIFIED_COUNT,L_MISC_COUNT
309       FROM
310         DUAL;
311       IF CR_STATUS_BB = 'APP' THEN
312         SELECT
313           SUM(AMOUNT_APPLIED)
314         INTO L_ON_ACCOUNT_AMOUNT
315         FROM
316           AR_RECEIVABLE_APPLICATIONS
317         WHERE CASH_RECEIPT_ID = CASH_RECEIPT_ID_B
318           AND STATUS = 'ACC';
319         IF NVL(L_ON_ACCOUNT_AMOUNT
320            ,0) <> 0 THEN
321           L_APPLIED_COUNT := L_APPLIED_COUNT - 1;
322         END IF;
323       END IF;
324       PA_ACTUAL_AMOUNT := L_ACTUAL_AMOUNT;
325       PA_UNIDENTIFIED_AMOUNT := L_UNIDENTIFIED_AMOUNT;
326       PA_MISC_AMOUNT := L_MISC_AMOUNT;
327       PA_NSF_AMOUNT := L_NSF_AMOUNT;
328       PA_APPLIED_COUNT := L_APPLIED_COUNT;
329       PA_UNAPPLIED_COUNT := L_UNAPPLIED_COUNT;
330       PA_UNIDENTIFIED_COUNT := L_UNIDENTIFIED_COUNT;
331       PA_MISC_COUNT := L_MISC_COUNT;
332       RETURN (1);
333     END;
334     RETURN NULL;
335   END F_ALL_AMOUNTSFORMULA;
336   FUNCTION C_APPLIED_AMOUNTFORMULA(C_APPLIED_AMOUNT_A IN NUMBER
337                                   ,C_MISC_AMOUNT IN NUMBER) RETURN NUMBER IS
338   BEGIN
339     /*SRW.REFERENCE(C_APPLIED_AMOUNT_A)*/NULL;
340     /*SRW.REFERENCE(C_MISC_AMOUNT)*/NULL;
341     RETURN (NVL(C_APPLIED_AMOUNT_A
342               ,0) + NVL(C_MISC_AMOUNT
343               ,0));
344   END C_APPLIED_AMOUNTFORMULA;
345   FUNCTION CA_APPLIED_AMOUNTFORMULA(CA_APPLIED_AMOUNT_B IN NUMBER
346                                    ,CA_MISC_AMOUNT IN NUMBER) RETURN NUMBER IS
347   BEGIN
348     /*SRW.REFERENCE(CA_APPLIED_AMOUNT_B)*/NULL;
349     /*SRW.REFERENCE(CA_MISC_AMOUNT)*/NULL;
350     RETURN (NVL(CA_APPLIED_AMOUNT_B
351               ,0) + NVL(CA_MISC_AMOUNT
352               ,0));
353   END CA_APPLIED_AMOUNTFORMULA;
354   FUNCTION ORDER_BY_MEANINGFORMULA RETURN VARCHAR2 IS
355   BEGIN
356     DECLARE
357       L_ORDER_BY VARCHAR2(80);
358     BEGIN
359       SELECT
360         MEANING
361       INTO L_ORDER_BY
362       FROM
363         AR_LOOKUPS
364       WHERE LOOKUP_TYPE = 'SORT_BY_ARXSOC'
365         AND LOOKUP_CODE = PH_ORDER_BY;
366       RP_ORDER_BY := L_ORDER_BY;
367       RETURN (L_ORDER_BY);
368     EXCEPTION
369       WHEN NO_DATA_FOUND THEN
370         RETURN (' ');
371     END;
372     RETURN NULL;
373   END ORDER_BY_MEANINGFORMULA;
374   FUNCTION P_ACTUAL_AMOUNT_P RETURN NUMBER IS
375   BEGIN
376     RETURN P_ACTUAL_AMOUNT;
377   END P_ACTUAL_AMOUNT_P;
378   FUNCTION P_UNIDENTIFIED_AMOUNT_P RETURN NUMBER IS
379   BEGIN
380     RETURN P_UNIDENTIFIED_AMOUNT;
381   END P_UNIDENTIFIED_AMOUNT_P;
382   FUNCTION P_MISC_AMOUNT_P RETURN NUMBER IS
383   BEGIN
384     RETURN P_MISC_AMOUNT;
385   END P_MISC_AMOUNT_P;
386   FUNCTION P_NSF_AMOUNT_P RETURN NUMBER IS
387   BEGIN
388     RETURN P_NSF_AMOUNT;
389   END P_NSF_AMOUNT_P;
390   FUNCTION P_APPLIED_COUNT_P RETURN NUMBER IS
391   BEGIN
392     RETURN P_APPLIED_COUNT;
393   END P_APPLIED_COUNT_P;
394   FUNCTION P_UNAPPLIED_COUNT_P RETURN NUMBER IS
395   BEGIN
396     RETURN P_UNAPPLIED_COUNT;
397   END P_UNAPPLIED_COUNT_P;
398   FUNCTION P_UNIDENTIFIED_COUNT_P RETURN NUMBER IS
399   BEGIN
400     RETURN P_UNIDENTIFIED_COUNT;
401   END P_UNIDENTIFIED_COUNT_P;
402   FUNCTION P_MISC_COUNT_P RETURN NUMBER IS
403   BEGIN
404     RETURN P_MISC_COUNT;
405   END P_MISC_COUNT_P;
406   FUNCTION PA_ACTUAL_AMOUNT_P RETURN NUMBER IS
407   BEGIN
408     RETURN PA_ACTUAL_AMOUNT;
409   END PA_ACTUAL_AMOUNT_P;
410   FUNCTION PA_UNIDENTIFIED_AMOUNT_P RETURN NUMBER IS
411   BEGIN
412     RETURN PA_UNIDENTIFIED_AMOUNT;
413   END PA_UNIDENTIFIED_AMOUNT_P;
414   FUNCTION PA_MISC_AMOUNT_P RETURN NUMBER IS
415   BEGIN
416     RETURN PA_MISC_AMOUNT;
417   END PA_MISC_AMOUNT_P;
418   FUNCTION PA_NSF_AMOUNT_P RETURN NUMBER IS
419   BEGIN
420     RETURN PA_NSF_AMOUNT;
421   END PA_NSF_AMOUNT_P;
422   FUNCTION PA_APPLIED_COUNT_P RETURN NUMBER IS
423   BEGIN
424     RETURN PA_APPLIED_COUNT;
425   END PA_APPLIED_COUNT_P;
426   FUNCTION PA_UNAPPLIED_COUNT_P RETURN NUMBER IS
427   BEGIN
428     RETURN PA_UNAPPLIED_COUNT;
429   END PA_UNAPPLIED_COUNT_P;
430   FUNCTION PA_UNIDENTIFIED_COUNT_P RETURN NUMBER IS
431   BEGIN
432     RETURN PA_UNIDENTIFIED_COUNT;
433   END PA_UNIDENTIFIED_COUNT_P;
434   FUNCTION PA_MISC_COUNT_P RETURN NUMBER IS
435   BEGIN
436     RETURN PA_MISC_COUNT;
437   END PA_MISC_COUNT_P;
438   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
439   BEGIN
440     RETURN RP_COMPANY_NAME;
441   END RP_COMPANY_NAME_P;
442   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
443   BEGIN
444     RETURN RP_REPORT_NAME;
445   END RP_REPORT_NAME_P;
446   FUNCTION RP_DATA_FOUND3_P RETURN VARCHAR2 IS
447   BEGIN
448     RETURN RP_DATA_FOUND3;
449   END RP_DATA_FOUND3_P;
450   FUNCTION RP_DATE_RANGE_P RETURN VARCHAR2 IS
451   BEGIN
452     RETURN RP_DATE_RANGE;
453   END RP_DATE_RANGE_P;
454   FUNCTION RP_DATA_FOUND1_P RETURN VARCHAR2 IS
455   BEGIN
456     RETURN RP_DATA_FOUND1;
457   END RP_DATA_FOUND1_P;
458   FUNCTION RP_DATA_FOUND2_P RETURN VARCHAR2 IS
459   BEGIN
460     RETURN RP_DATA_FOUND2;
461   END RP_DATA_FOUND2_P;
462   FUNCTION RP_ORDER_BY_P RETURN VARCHAR2 IS
463   BEGIN
464     RETURN RP_ORDER_BY;
465   END RP_ORDER_BY_P;
466 END AR_ARXSOC_XMLP_PKG;
467