[Home] [Help]
PACKAGE BODY: APPS.ARRX_RC_UNAPP
Source
1 PACKAGE BODY ARRX_RC_UNAPP AS
2 /* $Header: ARRXUNAB.pls 120.4.12010000.2 2008/11/03 13:20:48 ankuagar ship $ */
3
4
5 /*========================================================================+
6 | PUBLIC PROCEDURE AR_UNAPP_REG |
7 | |
8 | DESCRIPTION |
9 | |
10 | This procedure is the inner procedure for the RXi report. It uses |
11 | the appropriate fa_rx_util_pkg routines to bild the report |
12 | |
13 | PSEUDO CODE/LOGIC |
14 | |
15 | PARAMETERS |
16 | |
17 | request_id IN Request id for the concurrent program |
18 | and the other input parameters of the report |
19 | |
20 | KNOWN ISSUES |
21 | |
22 | NOTES |
23 | |
24 | |
25 | MODIFICATION HISTORY |
26 | Date Author Description of Changes |
27 | 04-OCT-2004 rkader Created |
28 | 23-Jun-2006 ggadhams Made changes for Payment uptake|
29 | increased col sizes for Bug5244326|
30 *=======================================================================*/
31
32 PROCEDURE ar_unapp_reg(
33 request_id IN NUMBER,
34 p_reporting_level IN VARCHAR2,
35 p_reporting_entity_id IN NUMBER,
36 p_sob_id IN NUMBER,
37 p_coa_id IN NUMBER,
38 p_co_seg_low IN VARCHAR2,
39 p_co_seg_high IN VARCHAR2,
40 p_gl_date_from IN DATE,
41 p_gl_date_to IN DATE,
42 p_entered_currency IN VARCHAR2,
43 p_batch_name_low IN VARCHAR2,
44 p_batch_name_high IN VARCHAR2,
45 p_batch_src_low IN VARCHAR2,
46 p_batch_src_high IN VARCHAR2,
47 p_customer_name_low IN VARCHAR2,
48 p_customer_name_high IN VARCHAR2,
49 p_customer_number_low IN VARCHAR2,
50 p_customer_number_high IN VARCHAR2,
51 p_receipt_number_low IN VARCHAR2,
52 p_receipt_number_high IN VARCHAR2,
53 retcode OUT NOCOPY NUMBER,
54 errbuf OUT NOCOPY NUMBER) IS
55
56 l_profile_rsob_id NUMBER := NULL;
57 l_client_info_rsob_id NUMBER := NULL;
58 BEGIN
59
60 fa_rx_util_pkg.debug('arrx_rc_unapp.ar_unapp_reg()+');
61
62 /* Assign the parameters to the global variables
63 These will be used in the before_report trigger */
64 var.request_id := request_id ;
65 var.p_reporting_level := p_reporting_level;
66 var.p_reporting_entity_id := p_reporting_entity_id;
67 var.p_sob_id := p_sob_id ;
68 var.p_coa_id := p_coa_id ;
69 var.p_co_seg_low := p_co_seg_low ;
70 var.p_co_seg_high := p_co_seg_high ;
71 var.p_gl_date_from := p_gl_date_from ;
72 var.p_gl_date_to := p_gl_date_to ;
73 var.p_entered_currency := p_entered_currency;
74 var.p_batch_name_low := p_batch_name_low ;
75 var.p_batch_name_high := p_batch_name_high ;
76 var.p_batch_src_low := p_batch_src_low ;
77 var.p_batch_src_high := p_batch_src_high ;
78 var.p_customer_name_low := p_customer_name_low ;
79 var.p_customer_name_high := p_customer_name_high ;
80 var.p_customer_number_low := p_customer_number_low ;
81 var.p_customer_number_high := p_customer_number_high ;
82 var.p_receipt_number_low := p_receipt_number_low ;
83 var.p_receipt_number_high := p_receipt_number_high ;
84
85
86
87 fa_rx_util_pkg.debug('p_reporting_level = '||var.p_reporting_level);
88 fa_rx_util_pkg.debug('p_reporting_entity_id = '||var.p_reporting_entity_id);
89 fa_rx_util_pkg.debug('request_id = '||var.request_id);
90 fa_rx_util_pkg.debug('p_sob_id = '||var.p_sob_id);
91 fa_rx_util_pkg.debug('p_coa_id = '||var.p_coa_id);
92 fa_rx_util_pkg.debug('p_co_seg_low = '||var.p_co_seg_low);
93 fa_rx_util_pkg.debug('p_co_seg_high = '||var.p_co_seg_high);
94 fa_rx_util_pkg.debug('p_gl_date_from = '||var.p_gl_date_from);
95 fa_rx_util_pkg.debug('p_gl_date_to = '||var.p_gl_date_to);
96 fa_rx_util_pkg.debug('p_entered_currency = '||var.p_entered_currency);
97 fa_rx_util_pkg.debug('p_batch_name_low = '||var.p_batch_name_low);
98 fa_rx_util_pkg.debug('p_batch_name_high = '||var.p_batch_name_high);
99 fa_rx_util_pkg.debug('p_batch_src_low = '||var.p_batch_src_low);
100 fa_rx_util_pkg.debug('p_batch_src_high = '||var.p_batch_src_high);
101 fa_rx_util_pkg.debug('p_customer_name_low = '||var.p_customer_name_low);
102 fa_rx_util_pkg.debug('p_customer_name_high = '||var.p_customer_name_high);
103 fa_rx_util_pkg.debug('p_customer_number_low = '||var.p_customer_number_low);
104 fa_rx_util_pkg.debug('p_customer_number_high = '||var.p_customer_number_high);
105 fa_rx_util_pkg.debug('p_receipt_number_low = '||var.p_receipt_number_low);
106 fa_rx_util_pkg.debug('p_receipt_number_high = '||var.p_receipt_number_high);
107
108 /* Set the appropriate sob type into the global variable var.ca_sob_type */
109 select to_number(nvl(replace(substr(userenv('CLIENT_INFO'),45,10),' '),-99))
110 into l_client_info_rsob_id
111 from dual;
112
113 fnd_profile.get('MRC_REPORTING_SOB_ID', l_profile_rsob_id);
114 IF (l_client_info_rsob_id = NVL(l_profile_rsob_id,-1)) OR
115 (l_client_info_rsob_id = -99)
116 THEN
117 fa_rx_util_pkg.debug('Setting the sob type to P');
118 var.ca_sob_type := 'P';
119 ELSE
120 fa_rx_util_pkg.debug('Setting the sob type to R');
121 var.ca_sob_id := l_client_info_rsob_id;
122 var.ca_sob_type := 'R';
123 END IF;
124
125 /* Initialize the request */
126 fa_rx_util_pkg.debug('Initializing the request');
127 fa_rx_util_pkg.init_request('arrx_rc_unapp.ar_unapp_reg',request_id, 'AR_RECEIPTS_REP_ITF');
128
129 /* Assign the report triggers to this report.
130 NOTE:
131 before_report is assigned 'arrx_rc_unapp.before_report;'
132 bind is assigned 'arrx_rc_unapp.bind(:CURSOR_SELECT);'
133 after_fetch is assigned 'arrx_rc_unapp.after_fetch;'
134 Each trigger event is assigned with the full procedure name (including package name).
135 They end with a ';'.
136 The bind trigger requires one host variable ':CURSOR_SELECT'.
137 */
138 fa_rx_util_pkg.debug('Assigning the report triggers');
139 fa_rx_util_pkg.assign_report('AR UNAPPLIED',
140 true,
141 'arrx_rc_unapp.before_report;',
142 'arrx_rc_unapp.bind(:CURSOR_SELECT);',
143 'arrx_rc_unapp.after_fetch;',
144 null);
145
146 /* Run the report */
147 fa_rx_util_pkg.debug('Running the report');
148 fa_rx_util_pkg.run_report('arrx_rc_unapp.ar_unapp_reg',retcode, errbuf);
149
150 fa_rx_util_pkg.debug('arrx_rc_unapp.ar_unapp_reg()-');
151
152
153 EXCEPTION
154 WHEN OTHERS THEN
155 fa_rx_util_pkg.log(sqlcode);
156 fa_rx_util_pkg.log(sqlerrm);
157 fa_rx_util_pkg.debug(sqlcode);
158 fa_rx_util_pkg.debug(sqlerrm);
159 fa_rx_util_pkg.debug('arrx_rc_unapp.ar_unapp_reg(EXCEPTION)-');
160 END ar_unapp_reg;
161
162 PROCEDURE before_report IS
163 CO_SEG_WHERE VARCHAR2(4000);
164 GL_DATE_WHERE VARCHAR2(4000);
165 GL_DATE_CLOSED_WHERE VARCHAr2(4000);
166 CURRENCY_CODE_WHERE VARCHAR2(4000);
167 BATCH_NAME_WHERE VARCHAR2(4000);
168 BATCH_SRC_NAME_WHERE VARCHAR2(4000);
169 CUSTOMER_NAME_WHERE VARCHAR2(4000);
170 CUSTOMER_NUMBER_WHERE VARCHAR2(4000);
171 RECEIPT_NUMBER_WHERE VARCHAR2(4000);
172 CR_STATUS_DECODE VARCHAR2(4000);
173 CRH_STATUS_DECODE VARCHAR2(4000);
174 ON_ACC_AMT_DECODE VARCHAR2(4000);
175 UNAPP_AMT_DECODE VARCHAR2(4000);
176 CLAIM_AMT_DECODE VARCHAR2(4000);
177 PREPAY_AMT_DECODE VARCHAR2(4000);
178 TOTAL_UNRESOLVED_AMT_DECODE VARCHAR2(4000);
179 FORMAT_CURRENCY_DECODE VARCHAR2(4000);
180 L_CR_ORG_WHERE VARCHAR2(4000);
181 L_CRH_ORG_WHERE VARCHAR2(4000);
182 L_ABA_ORG_WHERE VARCHAR2(4000);
183 L_CRH_CURR_ORG_WHERE VARCHAR2(4000);
184 L_BAT_ORG_WHERE VARCHAR2(4000);
185 L_BS_ORG_WHERE VARCHAR2(4000);
186 L_RA_ORG_WHERE VARCHAR2(4000);
187 L_PS_ORG_WHERE VARCHAR2(4000);
188 BEGIN
189
190 fa_rx_util_pkg.debug('arrx_rc_unapp.before_report()+');
191
192 fa_rx_util_pkg.debug('Set of Books ID : '||var.p_sob_id);
193 fa_rx_util_pkg.debug('Get Chart of Accounts ID ');
194
195 select CHART_OF_ACCOUNTS_ID,CURRENCY_CODE,NAME
196 into var.p_coa_id,var.functional_currency_code,var.organization_name
197 from GL_SETS_OF_BOOKS
198 where SET_OF_BOOKS_ID = var.p_sob_id;
199
200 fa_rx_util_pkg.debug('Chart of Accounts ID : '||var.p_coa_id);
201 fa_rx_util_pkg.debug('Functional Currency : '||var.functional_currency_code);
202 fa_rx_util_pkg.debug('Organization Name : '||var.organization_name);
203
204 XLA_MO_REPORTING_API.Initialize(var.p_reporting_level, var.p_reporting_entity_id, 'AUTO');
205
206
207 L_CR_ORG_WHERE := XLA_MO_REPORTING_API.Get_Predicate('CR',NULL);
208 L_CRH_ORG_WHERE := XLA_MO_REPORTING_API.Get_Predicate('CRH',NULL);
209 -- L_ABA_ORG_WHERE := XLA_MO_REPORTING_API.Get_Predicate('ABA',NULL);
210 L_CRH_CURR_ORG_WHERE := XLA_MO_REPORTING_API.Get_Predicate('CRH_CURR',NULL);
211 L_BAT_ORG_WHERE := XLA_MO_REPORTING_API.Get_Predicate('BAT',NULL);
212 L_BS_ORG_WHERE := XLA_MO_REPORTING_API.Get_Predicate('BS',NULL);
213 L_RA_ORG_WHERE := XLA_MO_REPORTING_API.Get_Predicate('RA',NULL);
214 L_PS_ORG_WHERE := XLA_MO_REPORTING_API.Get_Predicate('PS',NULL);
215
216 fa_rx_util_pkg.debug('L_CR_ORG_WHERE : '||L_CR_ORG_WHERE);
217 fa_rx_util_pkg.debug('L_CRH_ORG_WHERE : '||L_CRH_ORG_WHERE);
218 fa_rx_util_pkg.debug('L_ABA_ORG_WHERE : '||L_ABA_ORG_WHERE);
219 fa_rx_util_pkg.debug('L_CRH_CURR_ORG_WHERE : '||L_CRH_CURR_ORG_WHERE);
220 fa_rx_util_pkg.debug('L_BAT_ORG_WHERE : '||L_BAT_ORG_WHERE);
221 fa_rx_util_pkg.debug('L_BS_ORG_WHERE : '||L_BS_ORG_WHERE);
222 fa_rx_util_pkg.debug('L_RA_ORG_WHERE : '||L_RA_ORG_WHERE);
223 fa_rx_util_pkg.debug('L_PS_ORG_WHERE : '||L_PS_ORG_WHERE);
224
225 fa_rx_util_pkg.debug('Building Company Segment Where');
226
227 IF var.p_co_seg_low IS NULL AND var.p_co_seg_high IS NULL THEN
228 CO_SEG_WHERE := NULL;
229 ELSIF var.p_co_seg_low IS NULL THEN
230 CO_SEG_WHERE := ' AND ' ||
231 FA_RX_FLEX_PKG.FLEX_SQL(p_application_id => 101,
232 p_id_flex_code => 'GL#',
233 p_id_flex_num => var.p_coa_id,
234 p_table_alias => 'GC',
235 p_mode => 'WHERE',
236 p_qualifier => 'GL_BALANCING',
237 p_function => '<=',
238 p_operand1 => var.p_co_seg_high);
239 ELSIF var.p_co_seg_high IS NULL THEN
240 CO_SEG_WHERE := ' AND ' ||
241 FA_RX_FLEX_PKG.FLEX_SQL(p_application_id => 101,
242 p_id_flex_code => 'GL#',
243 p_id_flex_num => var.p_coa_id,
244 p_table_alias => 'GC',
245 p_mode => 'WHERE',
246 p_qualifier => 'GL_BALANCING',
247 p_function => '>=',
248 p_operand1 => var.p_co_seg_low);
249 ELSE
250 CO_SEG_WHERE := ' AND ' ||
251 FA_RX_FLEX_PKG.FLEX_SQL(p_application_id => 101,
252 p_id_flex_code => 'GL#',
253 p_id_flex_num => var.p_coa_id,
254 p_table_alias => 'GC',
255 p_mode => 'WHERE',
256 p_qualifier => 'GL_BALANCING',
257 p_function => 'BETWEEN',
258 p_operand1 => var.p_co_seg_low,
259 p_operand2 => var.p_co_seg_high);
260 END IF;
261 fa_rx_util_pkg.debug('CO_SEG_WHERE = '||substr(CO_SEG_WHERE,1,100));
262
263 fa_rx_util_pkg.debug('Building GL Date Where ');
264
265 IF var.p_gl_date_from IS NULL and var.p_gl_date_to IS NULL THEN
266 GL_DATE_WHERE := NULL;
267 ELSIF var.p_gl_date_from IS NULL THEN
268 GL_DATE_WHERE :=' AND RA.GL_DATE <= :p_gl_date_to';
269 ELSIF var.p_gl_date_to IS NULL THEN
270 GL_DATE_WHERE :=' AND RA.GL_DATE >= :p_gl_date_from';
271 ELSE
272 GL_DATE_WHERE := ' AND RA.GL_DATE BETWEEN :p_gl_date_from AND :p_gl_date_to';
273 END IF;
274
275 fa_rx_util_pkg.debug('GL_DATE_WHERE = '||GL_DATE_WHERE);
276
277 fa_rx_util_pkg.debug('Building GL Date Closed Where ');
278
279 IF var.p_gl_date_from IS NULL and var.p_gl_date_to IS NULL THEN
280 GL_DATE_CLOSED_WHERE := 'AND PS.GL_DATE_CLOSED = TO_DATE(''31-12-4712'',''DD-MM-YYYY'')';
281 ELSIF var.p_gl_date_from IS NOT NULL THEN
282 GL_DATE_CLOSED_WHERE := 'AND PS.GL_DATE_CLOSED >= :p_gl_date_from ';
283 ELSIF var.p_gl_date_to IS NOT NULL THEN
284 GL_DATE_CLOSED_WHERE := 'AND PS.GL_DATE_CLOSED >= :p_gl_date_to';
285 END IF;
286
287 fa_rx_util_pkg.debug('GL_DATE_CLOSED_WHERE = '||GL_DATE_CLOSED_WHERE);
288
289 fa_rx_util_pkg.debug('Building Currency Code Where ');
293 CURRENCY_CODE_WHERE := ' AND CR.CURRENCY_CODE = :p_entered_currency';
290 IF var.p_entered_currency IS NULL THEN
291 CURRENCY_CODE_WHERE := NULL;
292 ELSE
294 END IF;
295
296 fa_rx_util_pkg.debug('Building Batch Name Where ');
297 IF var.p_batch_name_low IS NULL and var.p_batch_name_high IS NULL THEN
298 BATCH_NAME_WHERE := NULL;
299 ELSIF var.p_batch_name_low IS NULL THEN
300 BATCH_NAME_WHERE := ' AND BAT.NAME <= :p_batch_name_high';
301 ELSIF var.p_batch_name_high IS NULL THEN
302 BATCH_NAME_WHERE := ' AND BAT.NAME >= :p_batch_name_low';
303 ELSE
304 BATCH_NAME_WHERE := ' AND BAT.NAME BETWEEN :p_batch_name_low AND :p_batch_name_high';
305 END IF;
306
307 fa_rx_util_pkg.debug('Building Batch Source Name Where ');
308 IF var.p_batch_src_low IS NULL and var.p_batch_src_high IS NULL THEN
309 BATCH_SRC_NAME_WHERE := NULL;
310 ELSIF var.p_batch_src_low IS NULL THEN
311 BATCH_SRC_NAME_WHERE := ' AND BS.NAME <= :p_batch_src_high';
312 ELSIF var.p_batch_src_high IS NULL THEN
313 BATCH_SRC_NAME_WHERE := ' AND BS.NAME >= :p_batch_src_low';
314 ELSE
315 BATCH_SRC_NAME_WHERE := ' AND BS.NAME BETWEEN :p_batch_src_low AND :p_batch_src_high';
316 END IF;
317
318 fa_rx_util_pkg.debug('Building Customer Name Where');
319 IF var.p_customer_name_low IS NULL AND var.p_customer_name_high IS NULL THEN
320 CUSTOMER_NAME_WHERE := NULL;
321 ELSIF var.p_customer_name_low IS NULL THEN
322 CUSTOMER_NAME_WHERE := ' AND PARTY.PARTY_NAME <= :p_customer_name_high';
323 ELSIF var.p_customer_name_high IS NULL THEN
324 CUSTOMER_NAME_WHERE := ' AND PARTY.PARTY_NAME >= :p_customer_name_low';
325 ELSE
326 CUSTOMER_NAME_WHERE := ' AND PARTY.PARTY_NAME BETWEEN :p_customer_name_low AND :p_customer_name_high';
327 END IF;
328
329 fa_rx_util_pkg.debug('Building Customer Number Where');
330 IF var.p_customer_number_low IS NULL AND var.p_customer_number_high IS NULL THEN
331 CUSTOMER_NUMBER_WHERE := NULL;
332 ELSIF var.p_customer_number_low IS NULL THEN
333 CUSTOMER_NUMBER_WHERE := ' AND CUST.ACCOUNT_NUMBER <= :p_customer_number_high';
334 ELSIF var.p_customer_number_high IS NULL THEN
335 CUSTOMER_NUMBER_WHERE := ' AND CUST.ACCOUNT_NUMBER >= :p_customer_number_low';
336 ELSE
337 CUSTOMER_NUMBER_WHERE := ' AND CUST.ACCOUNT_NUMBER BETWEEN :p_customer_number_low AND :p_customer_number_high';
338 END IF;
339
340 fa_rx_util_pkg.debug('Building Receipt Number Where');
341 IF var.p_receipt_number_low IS NULL AND var.p_receipt_number_high IS NULL THEN
342 RECEIPT_NUMBER_WHERE := NULL;
343 ELSIF var.p_receipt_number_low IS NULL THEN
344 RECEIPT_NUMBER_WHERE := ' AND CR.RECEIPT_NUMBER <= :p_receipt_number_high';
345 ELSIF var.p_receipt_number_high IS NULL THEN
346 RECEIPT_NUMBER_WHERE := ' AND CR.RECEIPT_NUMBER >= :p_receipt_number_low';
347 ELSE
348 RECEIPT_NUMBER_WHERE := ' AND CR.RECEIPT_NUMBER BETWEEN :p_receipt_number_low AND :p_receipt_number_high';
349 END IF;
350
351 fa_rx_util_pkg.debug('Building the DECODE statements');
352
353 CR_STATUS_DECODE := 'DECODE(CR.STATUS,''APP'',:L_APP,''NSF'',:L_NSF,''REV'',:L_REV,''STOP'',:L_STOP,''UNAPP'',:L_UNAPP,''UNID'',:L_UNID)';
354 CRH_STATUS_DECODE := 'DECODE(CRH.STATUS,''APPROVED'',:L_APPROVED,''CLEARED'',:L_CLEARED,''CONFIRMED'',:L_CONFIRMED,''REMITTED'',:L_REMITTED,''REVERSED'',:L_REVERSED)';
355 ON_ACC_AMT_DECODE := 'SUM(DECODE(RA.STATUS,
356 ''ACC'',DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),0))';
357
358 UNAPP_AMT_DECODE := 'SUM(DECODE(RA.STATUS,
359 ''UNAPP'',DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),
360 ''UNID'',DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),0))';
361
362 CLAIM_AMT_DECODE := 'SUM(DECODE(RA.STATUS,
363 ''OTHER ACC'', DECODE(RA.APPLIED_PAYMENT_SCHEDULE_ID,-4,
364 DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),0),0))';
365
366 PREPAY_AMT_DECODE:= 'SUM(DECODE(RA.STATUS,
367 ''OTHER ACC'', DECODE(RA.APPLIED_PAYMENT_SCHEDULE_ID,-7,
368 DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),0),0))';
369
370 TOTAL_UNRESOLVED_AMT_DECODE := 'SUM(DECODE(RA.STATUS,
371 ''ACC'',DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),
372 ''UNAPP'',DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),
373 ''OTHER ACC'',DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),
374 ''UNID'',DECODE(:P_ENTERED_CURRENCY,NULL,RA.ACCTD_AMOUNT_APPLIED_FROM,RA.AMOUNT_APPLIED),0))';
375
376 FORMAT_CURRENCY_DECODE := 'DECODE(:P_ENTERED_CURRENCY,NULL,:P_FUNCTIONAL_CURRENCY,CR.CURRENCY_CODE)';
377
378 /* Assign the Select List */
379 fa_rx_util_pkg.debug('Assign Select List');
380
381 fa_rx_util_pkg.assign_column('10',null ,'ORGANIZATION_NAME'
382 ,'arrx_rc_unapp.var.organization_name' ,'VARCHAR2', 50);
383 fa_rx_util_pkg.assign_column('20',null ,'FUNCTIONAL_CURRENCY_CODE'
384 ,'arrx_rc_unapp.var.functional_currency_code' ,'VARCHAR2', 15);
385 fa_rx_util_pkg.assign_column('30','BAT.BATCH_ID' ,'BATCH_ID'
386 ,'arrx_rc_unapp.var.batch_id' ,'NUMBER');
387 fa_rx_util_pkg.assign_column('40','BAT.NAME' ,'BATCH_NAME'
391 fa_rx_util_pkg.assign_column('60','CR.RECEIPT_NUMBER' ,'RECEIPT_NUMBER'
388 ,'arrx_rc_unapp.var.batch_name' ,'VARCHAR2', 20);
389 fa_rx_util_pkg.assign_column('50 ','CR.CASH_RECEIPT_ID' ,'CASH_RECEIPT_ID'
390 ,'arrx_rc_unapp.var.cash_receipt_id' ,'NUMBER');
392 ,'arrx_rc_unapp.var.receipt_number' ,'VARCHAR2', 30);
393 fa_rx_util_pkg.assign_column('70','CR.CURRENCY_CODE' ,'RECEIPT_CURRENCY_CODE'
394 ,'arrx_rc_unapp.var.receipt_currency_code' ,'VARCHAR2', 15);
395 fa_rx_util_pkg.assign_column('80','CR.EXCHANGE_RATE' ,'EXCHANGE_RATE'
396 ,'arrx_rc_unapp.var.exchange_rate' ,'NUMBER');
397 fa_rx_util_pkg.assign_column('90','CR.EXCHANGE_DATE' ,'EXCHANGE_DATE'
398 ,'arrx_rc_unapp.var.exchange_date' ,'DATE');
399 fa_rx_util_pkg.assign_column('100','CR.EXCHANGE_RATE_TYPE' ,'EXCHANGE_TYPE'
400 ,'arrx_rc_unapp.var.exchange_type' ,'VARCHAR2',30);
401 fa_rx_util_pkg.assign_column('110','DOCSEQ.NAME' ,'DOC_SEQUENCE_NAME'
402 ,'arrx_rc_unapp.var.doc_sequence_name' ,'VARCHAR2',30);
403 fa_rx_util_pkg.assign_column('120','CR.DOC_SEQUENCE_VALUE' ,'DOC_SEQUENCE_VALUE'
404 ,'arrx_rc_unapp.var.doc_sequence_value' ,'NUMBER');
405 fa_rx_util_pkg.assign_column('130','CR.DEPOSIT_DATE' ,'DEPOSIT_DATE'
406 ,'arrx_rc_unapp.var.deposit_date' ,'DATE');
407 fa_rx_util_pkg.assign_column('140','CR.RECEIPT_DATE' ,'RECEIPT_DATE'
408 ,'arrx_rc_unapp.var.receipt_date' ,'DATE');
409 fa_rx_util_pkg.assign_column('150',CR_STATUS_DECODE ,'RECEIPT_STATUS'
410 ,'arrx_rc_unapp.var.receipt_status' ,'VARCHAR2',40);
411 fa_rx_util_pkg.assign_column('160','ABB.BANK_NAME' ,'BANK_NAME'
412 ,'arrx_rc_unapp.var.bank_name' ,'VARCHAR2',60);
413 fa_rx_util_pkg.assign_column('170','ABB.BANK_NAME_ALT' ,'BANK_NAME_ALT'
414 ,'arrx_rc_unapp.var.bank_name_alt' ,'VARCHAR2',320);
415 fa_rx_util_pkg.assign_column('180','ABB.BANK_BRANCH_NAME' ,'BANK_BRANCH_NAME'
416 ,'arrx_rc_unapp.var.bank_branch_name' ,'VARCHAR2',60);
417 fa_rx_util_pkg.assign_column('190','ABB.BANK_BRANCH_NAME_ALT' ,'BANK_BRANCH_NAME_ALT'
418 ,'arrx_rc_unapp.var.bank_name_alt' ,'VARCHAR2',320);
419 fa_rx_util_pkg.assign_column('200','ABB.BANK_NUMBER' ,'BANK_NUMBER'
420 ,'arrx_rc_unapp.var.bank_number' ,'VARCHAR2',30);
421 fa_rx_util_pkg.assign_column('210','ABB.BRANCH_NUMBER' ,'BANK_BRANCH_NUMBER'
422 ,'arrx_rc_unapp.var.bank_branch_number' ,'VARCHAR2',25);
423 fa_rx_util_pkg.assign_column('220','ABA.BANK_ACCOUNT_NAME' ,'BANK_ACCOUNT_NAME'
424 ,'arrx_rc_unapp.var.bank_account_name' ,'VARCHAR2', 80);
425 fa_rx_util_pkg.assign_column('230','ABA.BANK_ACCOUNT_NAME_ALT', 'BANK_ACCOUNT_NAME_ALT'
426 ,'arrx_rc_unapp.var.bank_account_name_alt' ,'VARCHAR2', 320);
427 fa_rx_util_pkg.assign_column('240','ABA.CURRENCY_CODE' ,'BANK_ACCOUNT_CURRENCY'
428 ,'arrx_rc_unapp.var.bank_account_currency' ,'VARCHAR2',15);
429 fa_rx_util_pkg.assign_column('250','ARM.NAME' ,'RECEIPT_METHOD'
430 ,'arrx_rc_unapp.var.receipt_method' ,'VARCHAR2',30);
431 fa_rx_util_pkg.assign_column('260','CRH.CASH_RECEIPT_HISTORY_ID','CASH_RECEIPT_HISTORY_ID'
432 ,'arrx_rc_unapp.var.cash_receipt_history_id' ,'NUMBER');
433 fa_rx_util_pkg.assign_column('270','MAX(RA.GL_DATE)' ,'GL_DATE'
434 ,'arrx_rc_unapp.var.gl_date' ,'DATE');
435 fa_rx_util_pkg.assign_column('280','CRH_CURR.AMOUNT' ,'RECEIPT_AMOUNT'
436 ,'arrx_rc_unapp.var.receipt_amount' ,'NUMBER');
437 fa_rx_util_pkg.assign_column('290','CRH_CURR.ACCTD_AMOUNT' ,'ACCTD_RECEIPT_AMOUNT'
438 ,'arrx_rc_unapp.var.acctd_receipt_amount' ,'NUMBER');
439 fa_rx_util_pkg.assign_column('300','CRH_CURR.FACTOR_DISCOUNT_AMOUNT','FACTOR_DISCOUNT_AMOUNT'
440 ,'arrx_rc_unapp.var.factor_discount_amount' ,'NUMBER');
441 fa_rx_util_pkg.assign_column('310','CRH_CURR.ACCTD_FACTOR_DISCOUNT_AMOUNT','ACCTD_FACTOR_DISCOUNT_AMOUNT'
442 ,'arrx_rc_unapp.var.acctd_factor_discount_amount' ,'NUMBER');
443 fa_rx_util_pkg.assign_column('320',CRH_STATUS_DECODE ,'RECEIPT_HISTORY_STATUS'
444 ,'arrx_rc_unapp.var.receipt_history_status' ,'VARCHAR2', 40);
445 fa_rx_util_pkg.assign_column('330','CUST.CUST_ACCOUNT_ID' ,'CUSTOMER_ID'
446 ,'arrx_rc_unapp.var.customer_id' ,'NUMBER');
447 fa_rx_util_pkg.assign_column('340','NVL(SUBSTRB(PARTY.PARTY_NAME,1,50),:L_UNID_CUST)', 'CUSTOMER_NAME'
448 ,'arrx_rc_unapp.var.customer_name' ,'VARCHAR2', 50);
449 fa_rx_util_pkg.assign_column('350','DECODE(PARTY.PARTY_TYPE, ''ORGANIZATION'',PARTY.ORGANIZATION_NAME_PHONETIC, NULL)' ,'CUSTOMER_NAME_ALT'
450 ,'arrx_rc_unapp.var.customer_name_alt' ,'VARCHAR2',320);
451 fa_rx_util_pkg.assign_column('360','CUST.ACCOUNT_NUMBER' ,'CUSTOMER_NUMBER'
452 ,'arrx_rc_unapp.var.customer_number' ,'VARCHAR2', 30);
453 fa_rx_util_pkg.assign_column('370','BS.NAME' ,'BATCH_SOURCE'
454 ,'arrx_rc_unapp.var.batch_source' ,'VARCHAR2',30);
458 ,'arrx_rc_unapp.var.unapp_amount' ,'NUMBER');
455 fa_rx_util_pkg.assign_column('380',ON_ACC_AMT_DECODE ,'ON_ACCOUNT_AMOUNT'
456 ,'arrx_rc_unapp.var.on_acc_amount' ,'NUMBER');
457 fa_rx_util_pkg.assign_column('390',UNAPP_AMT_DECODE ,'UNAPP_AMOUNT'
459 fa_rx_util_pkg.assign_column('400',CLAIM_AMT_DECODE ,'CLAIM_AMOUNT'
460 ,'arrx_rc_unapp.var.claim_amount' ,'NUMBER');
461 fa_rx_util_pkg.assign_column('410',PREPAY_AMT_DECODE ,'PREPAY_AMOUNT'
462 ,'arrx_rc_unapp.var.prepay_amount' ,'NUMBER');
463 fa_rx_util_pkg.assign_column('420',TOTAL_UNRESOLVED_AMT_DECODE,'TOTAL_UNRESOLVED_AMOUNT'
464 ,'arrx_rc_unapp.var.total_unresolved_amount' ,'NUMBER');
465 fa_rx_util_pkg.assign_column('430',FORMAT_CURRENCY_DECODE ,'FORMAT_CURRENCY_CODE'
466 ,'arrx_rc_unapp.var.format_currency_code' ,'VARCHAR2',15);
467 fa_rx_util_pkg.assign_column('440','GC.CODE_COMBINATION_ID' ,'ACCOUNT_CODE_COMBINATION_ID'
468 ,'arrx_rc_unapp.var.account_code_combination_id' ,'NUMBER');
469 fa_rx_util_pkg.assign_column('450',NULL ,'DEBIT_BALANCING'
470 ,'arrx_rc_unapp.var.debit_balancing' ,'VARCHAR2',240);
471
472
473 /* Assign the From Clause */
474 fa_rx_util_pkg.debug(' Assigning the FROM CLAUSE');
475
476 IF NVL(var.ca_sob_type,'P') = 'P' THEN
477 fa_rx_util_pkg.debug(' Report is run for Primary Set of Books');
478 fa_rx_util_pkg.From_Clause := '
479 AR_CASH_RECEIPTS_ALL CR,
480 FND_DOCUMENT_SEQUENCES DOCSEQ,
481 -- AP_BANK_ACCOUNTS_ALL ABA,
482 -- AP_BANK_BRANCHES ABB,
483 CE_BANK_ACCT_USES_OU_V USES,
484 CE_BANK_ACCOUNTS ABA,
485 CE_BANK_BRANCHES_V ABB,
486 AR_RECEIPT_METHODS ARM,
487 AR_CASH_RECEIPT_HISTORY_ALL CRH,
488 GL_CODE_COMBINATIONS GC,
489 HZ_CUST_ACCOUNTS CUST,
490 HZ_PARTIES PARTY,
491 AR_BATCHES_ALL BAT,
492 AR_CASH_RECEIPT_HISTORY_ALL CRH_CURR,
493 AR_BATCH_SOURCES_ALL BS,
494 AR_RECEIVABLE_APPLICATIONS_ALL RA,
495 AR_PAYMENT_SCHEDULES_ALL PS';
496 ELSE
497 fa_rx_util_pkg.debug(' Report is run for Reporting Set of Books');
498 fa_rx_util_pkg.From_Clause := '
499 AR_CASH_RECEIPTS_ALL_MRC_V CR,
500 FND_DOCUMENT_SEQUENCES DOCSEQ,
501 -- AP_BANK_ACCOUNTS_ALL ABA,
502 CE_BANK_ACCT_USES_OU_V USES,
503 CE_BANK_ACCOUNTS ABA,
504 CE_BANK_BRANCHES_V ABB,
505 AR_RECEIPT_METHODS ARM,
506 AR_CASH_RECEIPT_HIST_ALL_MRC_V CRH,
507 GL_CODE_COMBINATIONS GC,
508 HZ_CUST_ACCOUNTS CUST,
509 HZ_PARTIES PARTY,
510 AR_BATCHES_ALL_MRC_V BAT,
511 AR_CASH_RECEIPT_HIST_ALL_MRC_V CRH_CURR,
512 AR_BATCH_SOURCES_ALL BS,
513 AR_RECEIVABLE_APPS_ALL_MRC_V RA,
514 AR_PAYMENT_SCHEDULES_ALL_MRC_V PS';
515 END IF;
516
517 fa_rx_util_pkg.debug('Assigning the Where Clause ');
518 fa_rx_util_pkg.Where_Clause := '
519 NVL(RA.CONFIRMED_FLAG,''Y'') = ''Y''
520 AND RA.STATUS IN (''UNAPP'',''ACC'',''UNID'',''OTHER ACC'')
521 AND PS.CASH_RECEIPT_ID = RA.CASH_RECEIPT_ID
522 AND PS.CLASS = ''PMT''
523 '|| GL_DATE_CLOSED_WHERE ||'
524 AND CR.CASH_RECEIPT_ID = RA.CASH_RECEIPT_ID
525 AND NVL(CR.CONFIRMED_FLAG,''Y'') = ''Y''
526 AND CR.DOC_SEQUENCE_ID = DOCSEQ.DOC_SEQUENCE_ID(+)
527 AND CR.REMIT_BANK_ACCT_USE_ID = USES.BANK_ACCT_USE_ID
528
529 --Bug6214927, USES.BANK_ACCOUNT_ID should be matched with ABA.BANK_ACCOUNT_ID.
530 AND USES.BANK_ACCOUNT_ID = ABA.BANK_account_ID
531 -- AND CR.ORG_ID = ABA.ORG_ID
532 -- AND ABA.BANK_BRANCH_ID = ABB.BANK_BRANCH_ID
533 AND ABA.BANK_BRANCH_ID = ABB.BRANCH_PARTY_ID
534 AND CR.RECEIPT_METHOD_ID = ARM.RECEIPT_METHOD_ID
535 AND CRH.CASH_RECEIPT_ID = CR.CASH_RECEIPT_ID
536 AND CRH.FIRST_POSTED_RECORD_FLAG = ''Y''
537 AND CRH_CURR.CASH_RECEIPT_ID = CR.CASH_RECEIPT_ID
538 AND CRH_CURR.CURRENT_RECORD_FLAG = ''Y''
539 AND CRH.BATCH_ID = BAT.BATCH_ID(+)
540 AND GC.CODE_COMBINATION_ID = RA.CODE_COMBINATION_ID
541 AND BAT.BATCH_SOURCE_ID = BS.BATCH_SOURCE_ID(+)
542 AND BAT.ORG_ID = BS.ORG_ID(+)
543 AND CR.PAY_FROM_CUSTOMER = CUST.CUST_ACCOUNT_ID(+)
544 AND CUST.PARTY_ID = PARTY.PARTY_ID(+)
545 '||L_CR_ORG_WHERE||'
546 '||L_CRH_ORG_WHERE||'
547 '||L_ABA_ORG_WHERE||'
548 '||L_CRH_CURR_ORG_WHERE||'
549 '||L_BAT_ORG_WHERE||'
550 '||L_BS_ORG_WHERE||'
551 '||L_RA_ORG_WHERE||'
552 '||L_PS_ORG_WHERE||'
556 fa_rx_util_pkg.Group_By_Clause := '
553 '||CO_SEG_WHERE||' '||GL_DATE_WHERE||' '||CURRENCY_CODE_WHERE||' '||BATCH_NAME_WHERE||' '||BATCH_SRC_NAME_WHERE||' '||CUSTOMER_NAME_WHERE||' '||CUSTOMER_NUMBER_WHERE||' '||RECEIPT_NUMBER_WHERE;
554
555 fa_rx_util_pkg.debug('Assigning the Group By Clause ');
557 BAT.BATCH_ID,
558 BAT.NAME,
559 CR.CASH_RECEIPT_ID,
560 CR.RECEIPT_NUMBER,
561 CR.CURRENCY_CODE,
562 CR.EXCHANGE_RATE,
563 CR.EXCHANGE_DATE,
564 CR.EXCHANGE_RATE_TYPE,
565 DOCSEQ.NAME,
566 CR.DOC_SEQUENCE_VALUE,
567 CR.DEPOSIT_DATE,
568 CR.RECEIPT_DATE, '||
569 CR_STATUS_DECODE||','||'
570 ABB.BANK_NAME,
571 ABB.BANK_NAME_ALT,
572 ABB.BANK_BRANCH_NAME,
573 ABB.BANK_BRANCH_NAME_ALT,
574 ABB.BANK_NUMBER,
575 --ABB.BANK_NUM,
576 ABB.BRANCH_NUMBER,
577 ABA.BANK_ACCOUNT_NAME,
578 ABA.BANK_ACCOUNT_NAME_ALT,
579 ABA.CURRENCY_CODE,
580 ARM.NAME,
581 CRH.CASH_RECEIPT_HISTORY_ID,
582 CRH_CURR.AMOUNT,
583 CRH_CURR.ACCTD_AMOUNT,
584 CRH_CURR.FACTOR_DISCOUNT_AMOUNT,
585 CRH_CURR.ACCTD_FACTOR_DISCOUNT_AMOUNT,'||
586 CRH_STATUS_DECODE ||','||'
587 CUST.CUST_ACCOUNT_ID,
588 NVL(SUBSTRB(PARTY.PARTY_NAME,1,50),:L_UNID_CUST),
589 DECODE(PARTY.PARTY_TYPE, ''ORGANIZATION'',PARTY.ORGANIZATION_NAME_PHONETIC, NULL),
590 CUST.ACCOUNT_NUMBER,
591 BS.NAME,
592 GC.CODE_COMBINATION_ID , '||
593 FORMAT_CURRENCY_DECODE;
594
595 fa_rx_util_pkg.debug('Assigning the Having Clause ');
596 fa_rx_util_pkg.Having_Clause :=
597 ON_ACC_AMT_DECODE ||' <> 0
598 OR ' || UNAPP_AMT_DECODE ||' <> 0
599 OR ' || CLAIM_AMT_DECODE ||' <> 0
600 OR ' || PREPAY_AMT_DECODE||' <> 0 ';
601
602
603
604 fa_rx_util_pkg.debug('arrx_rc_unapp.before_report()-');
605
606
607 END before_report;
608
609 PROCEDURE bind(c IN INTEGER) IS
610 l_approved VARCHAR2(80);
611 l_cleared VARCHAR2(80);
612 l_confirmed VARCHAR2(80);
613 l_remitted VARCHAR2(80);
614 l_reversed VARCHAR2(80);
615 l_app VARCHAR2(80);
616 l_nsf VARCHAR2(80);
617 l_rev VARCHAR2(80);
618 l_stop VARCHAR2(80);
619 l_unapp VARCHAR2(80);
620 l_unid VARCHAR2(80);
621 l_unid_cust VARCHAR2(80);
622 begin
623 fa_rx_util_pkg.debug('arrx_rc_unapp.bind()+');
624
625 IF var.p_gl_date_from IS NOT NULL THEN
626 dbms_sql.bind_variable(c, 'p_gl_date_from', var.p_gl_date_from);
627 END IF;
628 IF var.p_gl_date_to IS NOT NULL THEN
629 dbms_sql.bind_variable(c, 'p_gl_date_to', var.p_gl_date_to);
630 END IF;
631
632 IF var.p_reporting_entity_id IS NOT NULL AND var.p_reporting_level = '3000' THEN
633 dbms_sql.bind_variable(c, 'p_reporting_entity_id', var.p_reporting_entity_id);
634 END IF;
635 IF var.p_batch_name_low IS NOT NULL THEN
636 dbms_sql.bind_variable(c, 'p_batch_name_low',var.p_batch_name_low);
637 END IF;
638 IF var.p_batch_name_high IS NOT NULL THEN
639 dbms_sql.bind_variable(c, 'p_batch_name_high',var.p_batch_name_high);
640 END IF;
641 IF var.p_batch_src_low IS NOT NULL THEN
642 dbms_sql.bind_variable(c, 'p_batch_src_low',var.p_batch_src_low);
643 END IF;
644 IF var.p_batch_src_high IS NOT NULL THEN
645 dbms_sql.bind_variable(c, 'p_batch_src_high',var.p_batch_src_high);
646 END IF;
647 IF var.p_customer_name_low IS NOT NULL THEN
648 dbms_sql.bind_variable(c, 'p_customer_name_low',var.p_customer_name_low);
649 END IF;
650 IF var.p_customer_name_high IS NOT NULL THEN
651 dbms_sql.bind_variable(c, 'p_customer_name_high',var.p_customer_name_high);
652 END IF;
653 IF var.p_customer_number_low IS NOT NULL THEN
654 dbms_sql.bind_variable(c, 'p_customer_number_low',var.p_customer_number_low);
655 END IF;
656 IF var.p_customer_number_high IS NOT NULL THEN
657 dbms_sql.bind_variable(c, 'p_customer_number_high',var.p_customer_number_high);
658 END IF;
659 IF var.p_receipt_number_low IS NOT NULL THEN
660 dbms_sql.bind_variable(c, 'p_receipt_number_low',var.p_receipt_number_low);
661 END IF;
662 IF var.p_receipt_number_high IS NOT NULL THEN
663 dbms_sql.bind_variable(c, 'p_receipt_number_high',var.p_receipt_number_high);
664 END IF;
665
666 dbms_sql.bind_variable(c, 'P_ENTERED_CURRENCY',var.p_entered_currency);
667 dbms_sql.bind_variable(c, 'P_FUNCTIONAL_CURRENCY',var.functional_currency_code);
668
669 select MEANING into l_app from ar_lookups
670 where lookup_type='CHECK_STATUS' and lookup_code='APP';
671 select MEANING into l_nsf from ar_lookups
672 where lookup_type='CHECK_STATUS' and lookup_code='NSF';
673 select MEANING into l_rev from ar_lookups
674 where lookup_type='CHECK_STATUS' and lookup_code='REV';
675 select MEANING into l_stop from ar_lookups
676 where lookup_type='CHECK_STATUS' and lookup_code='STOP';
677 select MEANING into l_unapp from ar_lookups
678 where lookup_type='CHECK_STATUS' and lookup_code='UNAPP';
679 select MEANING into l_unid from ar_lookups
680 where lookup_type='CHECK_STATUS' and lookup_code='UNID';
681 dbms_sql.bind_variable(c, 'L_APP' , l_app);
682 dbms_sql.bind_variable(c, 'L_NSF' , l_nsf);
683 dbms_sql.bind_variable(c, 'L_REV' , l_rev);
684 dbms_sql.bind_variable(c, 'L_STOP' , l_stop);
685 dbms_sql.bind_variable(c, 'L_UNAPP', l_unapp);
686 dbms_sql.bind_variable(c, 'L_UNID' , l_unid);
687
688 select substr(MEANING,1,44) into l_unid_cust from ar_lookups
689 where lookup_type = 'SPECIAL_TYPES' and lookup_code = 'UNIDENTIFIED';
690 l_unid_cust := ' **** '||l_unid_cust;
691 dbms_sql.bind_variable(c, 'L_UNID_CUST' , l_unid_cust);
692
693 select MEANING into L_APPROVED from ar_lookups
694 where lookup_type='RECEIPT_CREATION_STATUS' and lookup_code='APPROVED';
695 select MEANING into L_CLEARED from ar_lookups
696 where lookup_type='RECEIPT_CREATION_STATUS' and lookup_code='CLEARED';
697 select MEANING into L_CONFIRMED from ar_lookups
698 where lookup_type='RECEIPT_CREATION_STATUS' and lookup_code='CONFIRMED';
699 select MEANING into L_REMITTED from ar_lookups
700 where lookup_type='RECEIPT_CREATION_STATUS' and lookup_code='REMITTED';
701 select MEANING into L_REVERSED from ar_lookups
702 where lookup_type='RECEIPT_CREATION_STATUS' and lookup_code='REVERSED';
703 dbms_sql.bind_variable(c, 'L_APPROVED' , L_APPROVED);
704 dbms_sql.bind_variable(c, 'L_CLEARED' , L_CLEARED);
705 dbms_sql.bind_variable(c, 'L_CONFIRMED' , L_CONFIRMED);
706 dbms_sql.bind_variable(c, 'L_REMITTED' , L_REMITTED);
707 dbms_sql.bind_variable(c, 'L_REVERSED' , L_REVERSED);
708
709 fa_rx_util_pkg.debug('arrx_rc_unapp.bind()-');
710
711 END bind;
712 PROCEDURE after_fetch IS
713 begin
714 fa_rx_util_pkg.debug('arrx_rc_unapp.after_fetch()+');
715
716 var.debit_balancing := fa_rx_flex_pkg.get_value(
717 p_application_id => 101,
718 p_id_flex_code => 'GL#',
719 p_id_flex_num => var.p_coa_id,
720 p_qualifier => 'GL_BALANCING',
721 p_ccid => var.account_code_combination_id);
722
723 fa_rx_util_pkg.debug('arrx_rc_unapp.after_fetch()-');
724 end after_fetch;
725
726 END ARRX_RC_UNAPP;