DBA Data[Home] [Help]

PACKAGE BODY: APPS.AR_SUBMIT_LOCKBOX

Source


1 PACKAGE BODY AR_SUBMIT_LOCKBOX AS
2 /* $Header: ARSULBB.pls 120.0.12020000.5 2013/04/26 13:36:14 ashlkuma noship $ */
3    /*=======================================================================+
4     | FUNCTION                                                              |
8     |  If new Transmission, make sure that the not transmission exists with |
5     |   validate_transmission() - Validates the transmission information    |
6     | DESCRIPTION                                                           |
7     |  The procedure does the following:                                    |
9     | the provided name.                                                    |
10     |  Else, make sure that the transmission is not closed.                 |
11     |  Also store the Lockbox Number, Transmission Format and Original      |
12     | Request ID for an existing transmission                               |
13     |									                                                      |
14     | SCOPE -                                                               |
15     |									                                                      |
16     | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                               |
17     | ARGUMENTS  : IN:                     				                          |
18     |                 p_new_transmission - Flag that indicates if this is   |
19     |                       a new transmission.                             |
20     |                 p_transmission_name - Transmission Name               |
21     |                                                                       |
22     |              OUT:     None                                            |
23     | RETURNS    : NONE                    				                          |
24     |                                                                       |
25     | NOTES -                                                               |
26     |                                                                       |
27     | MODIFICATION HISTORY -  22/01/2013 - Created by ASHLESH	     	      |
28     +=======================================================================*/
29 
30     PG_DEBUG  VARCHAR2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
31     lb_sub    lb_sub_rec;
32 
33   FUNCTION validate_transmission( p_new_transmission  IN VARCHAR2,
34                                   p_transmission_name IN ar_transmissions.transmission_name%TYPE)
35   RETURN NUMBER IS
36     l_transmission_exists   VARCHAR2(1);
37     l_transmission_id       ar_transmissions.transmission_id%TYPE;
38     l_requested_lockbox_id  ar_transmissions.requested_lockbox_id%TYPE;
39     l_requested_format_id   ar_transmissions.requested_trans_format_id%TYPE;
40     l_status                ar_transmissions.status%TYPE;
41     l_orig_request_id       NUMBER;
42     l_msg_text		    fnd_new_messages.message_text%type;
43   BEGIN
44     IF PG_DEBUG IN ('Y', 'C') THEN
45       FND_FILE.put_line(FND_FILE.LOG, 'validate_transmission()+');
46     END IF;
47     IF p_transmission_name IS NULL THEN
48       FND_MESSAGE.SET_NAME('AR','AR_OPLB_TRANS_MUST');
49       l_msg_text := fnd_message.get;
50       FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
51       RETURN 1;
52     END IF;
53     l_transmission_exists := 'Y';
54 
55     BEGIN
56       SELECT  transmission_id,
57               requested_lockbox_id,
58               requested_trans_format_id,
59               transmission_request_id,
60               status
61       INTO    l_transmission_id,
62               l_requested_lockbox_id,
63               l_requested_format_id,
64               l_orig_request_id,
65               l_status
66       FROM    ar_transmissions
67       WHERE   transmission_name = p_transmission_name;
68     EXCEPTION
69       WHEN NO_DATA_FOUND THEN
70         l_transmission_exists := 'N';
71       WHEN OTHERS THEN
72         FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Error in fetching transmission Details');
73         FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Message : '||SQLERRM);
74         RETURN 1;
75     END;
76 
77     IF p_new_transmission = 'Y' AND l_transmission_exists = 'Y' THEN
78       FND_MESSAGE.SET_NAME('AR','AR_OPLB_TRANS_EXISTS');
79       FND_MESSAGE.SET_TOKEN('TRANSMISSION_NAME',p_transmission_name);
80       l_msg_text := fnd_message.get;
81       FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
82       RETURN 1;
83     END IF;
84 
85     IF p_new_transmission = 'N' THEN
86       IF l_transmission_exists = 'N' THEN
87         FND_MESSAGE.SET_NAME('AR','AR_OPLB_TRANS_NOT_EXITS');
88 	FND_MESSAGE.SET_TOKEN('TRANSMISSION_NAME',p_transmission_name);
89 	l_msg_text := fnd_message.get;
90 	FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
91 	RETURN 1;
92       END IF;
93       IF l_status = 'CL' THEN
94         FND_MESSAGE.SET_NAME('AR','AR_OPLB_TRANS_CLOSED');
95 	FND_MESSAGE.SET_TOKEN('TRANSMISSION_NAME',p_transmission_name);
96 	l_msg_text := fnd_message.get;
97 	FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
98 	RETURN 1;
99       END IF;
100     END IF;
101 
102     lb_sub.new_transmission := p_new_transmission;
103     lb_sub.transmission_name := p_transmission_name;
104     IF p_new_transmission = 'N' THEN
105       lb_sub.transmission_id := l_transmission_id;
106       lb_sub.orig_request_id := l_orig_request_id;
107       lb_sub.trans_format_id := l_requested_format_id; /* Only for existing transmissions */
108       lb_sub.lockbox_id := l_requested_lockbox_id; /* For existing transmissions, this will be used for defaulting, if not provided */
109     ELSE
110       lb_sub.transmission_id := NULL;
111       lb_sub.orig_request_id := NULL;
112     END IF;
113     RETURN 0;
114   EXCEPTION
115     WHEN OTHERS THEN
116       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Inside validate_transmission');
117       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Message : '||SQLERRM);
118       RETURN 1;
119   END validate_transmission;
120 
121   /*=======================================================================+
122   | FUNCTION                                                              |
123   |   validate_import() - Validates that necessary details are passed for |
127   | For an import, customer should pass transmission format, Control File |
124   |                       import.                                         |
125   | DESCRIPTION                                                           |
126   |  The procedure does the following:                                    |
128   | and Data File.                                                        |
129   | SCOPE -                                                               |
130   |									                                                      |
131   | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                               |
132   | ARGUMENTS  : IN:                     				                          |
133   |                 p_submit_import - Flag that indicates if import has to|
134   |                                   be submitted by this run            |
135   |                 p_transmission_format - Transmission Format Identifier|
136   |                 p_data_file - Path of the data file with extension    |
137   |                 p_control_file - Control File Name                    |
138   |                 p_alt_name_search - Alternate Name Search option      |
139   |                 p_ussgl_trx_code - USSGL Transaction Code             |
140   |                                                                       |
141   |              OUT:     None                                            |
142   | RETURNS    : NONE                    				                          |
143   |                                                                       |
144   | NOTES -                                                               |
145   |                                                                       |
146   | MODIFICATION HISTORY -  22/01/2013 - Created by ASHLESH     	      |
147   +=======================================================================*/
148   FUNCTION validate_import( p_submit_import       IN VARCHAR2,
149                             p_transmission_format IN ar_transmission_formats.transmission_format_id%TYPE,
150                             p_data_file           IN VARCHAR2,
151                             p_control_file        IN VARCHAR2,
152                             p_alt_name_search     IN VARCHAR2,
153                             p_ussgl_trx_code      IN  VARCHAR2)
154   RETURN NUMBER IS
155   l_msg_text          fnd_new_messages.message_text%type;
156   BEGIN
157     IF PG_DEBUG IN ('Y', 'C') THEN
158       FND_FILE.put_line(FND_FILE.LOG, 'validate_import()+');
159     END IF;
160     lb_sub.submit_import := p_submit_import;
161     IF p_submit_import = 'Y' THEN
162       IF p_transmission_format IS NULL THEN
163         FND_MESSAGE.SET_NAME('AR','AR_OPLB_TRANS_FORMAT_REQ');
164 	l_msg_text := fnd_message.get;
165 	FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
166         RETURN 1;
167       END IF;
168       IF p_data_file IS NULL THEN
169         FND_MESSAGE.SET_NAME('AR','AR_OPLB_DATAFILE_REQ');
170 	l_msg_text := fnd_message.get;
171 	FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
172         RETURN 1;
173       END IF;
174       IF p_control_file IS NULL THEN
175         FND_MESSAGE.SET_NAME('AR','AR_OPLB_CTLFILE_REQ');
176 	l_msg_text := fnd_message.get;
177 	FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
178         RETURN 1;
179       END IF;
180 
181       lb_sub.data_file_path := p_data_file;
182       lb_sub.control_file := p_control_file;
183       lb_sub.trans_format_id := p_transmission_format;
184       lb_sub.alt_name_search := p_alt_name_search;
185       lb_sub.ussgl_trans_code := p_ussgl_trx_code;
186     ELSIF p_submit_import = 'N' THEN
187       lb_sub.data_file_path := NULL;
188       lb_sub.control_file := NULL;
189       lb_sub.alt_name_search := 'N';
190       lb_sub.ussgl_trans_code := NULL;
191     END IF;
192     RETURN 0;
193   EXCEPTION
194     WHEN OTHERS THEN
195       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Inside validate_import');
196       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Message : '||SQLERRM);
197       RETURN 1;
198   END validate_import;
199 
200   /*=======================================================================+
201     | FUNCTION                                                              |
202     |   validate_validation() - Validates that necessary details are passed |
203     |                       for validation.                                 |
204     | DESCRIPTION                                                           |
205     |  The procedure does the following:                                    |
206     |  If running validation for the first time                             |
207     |   If Lockbox Number is provided in the data file, identified by checking
208     |   the presence of Lockbox Header/Trailer in the Transmission Format,  |
209     |   then ignore the Lockbox Number passed.                              |
210     |   Else make sure that a valid Lockbox Number is passed                |
211     |  Else Re Validation                                                   |
212     |   If Lockbox number is passed, use that                               |
213     |   Else default the Lockbox Number from earlier validation run         |
214     |  Verify GL Date Source from Lockbox Setup                             |
215     |  If GL_DATE_SOURCE = 'DEPOSIT DATE', make sure the transmission format|
216     |  contains Deposit Date. Ignore GL Date passed.                        |
217     |  If GL_DATE_SOURCE = 'IMPORT DATE', ignore GL Date passed.            |
218     |  If GL_DATE_SOURCE = 'CONSTANT DATE', make sure that GL Date is passed|
219     |                                                                       |
220     | SCOPE -                                                               |
221     |									                                                      |
222     | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                               |
223     | ARGUMENTS  : IN:                     				                          |
224     |                 p_submit_validation -Flag that indicates if validation|
228     |                 p_pay_unrelated_inv - Flag that indicates if Unrelated|
225     |                                   has to be submitted by this run     |
226     |                 p_lockbox_id - Lockbox Identifier                     |
227     |                 p_gl_date - Accounting Date                           |
229     |                                       invoices can be paid.           |
230     |                 p_complete_batches - Flag that indicates if only      |
231     |                                      complete batches can be imported |
232     |                 p_report_format - Output Report Format                |
233     |                 p_invalid_trxn_handling - Option that drives invalid  |
234     |                                   transaction number handling         |
235     |                                                                       |
236     |              OUT:     None                                            |
237     | RETURNS    : NONE                    				                          |
238     |                                                                       |
239     | NOTES -                                                               |
240     |                                                                       |
241     | MODIFICATION HISTORY -  22/01/2013 - Created by ASHLESH     	      |
242     +=======================================================================*/
243   FUNCTION validate_validation( p_submit_validation     IN  VARCHAR2,
244                                 p_lockbox_id            IN  ar_lockboxes.lockbox_id%TYPE,
245                                 p_gl_date               IN  DATE,
246                                 p_pay_unrelated_inv     IN  VARCHAR2,
247                                 p_complete_batches      IN  VARCHAR2,
248                                 p_report_format         IN  VARCHAR2,
249                                 p_invalid_trxn_handling IN  VARCHAR2)
250   RETURN NUMBER IS
251     l_trans_format_id   ar_transmission_formats.transmission_format_id%TYPE;
252     l_lb_num_exists     VARCHAR2(1);
253     l_pay_unrelated_inv VARCHAR2(1);
254     l_gl_date_source    VARCHAR2(30);
255     l_lockbox_id        ar_lockboxes.lockbox_id%TYPE;
256     l_dep_date_exists   VARCHAR2(1);
257     l_msg_text          fnd_new_messages.message_text%type;
258   BEGIN
259     IF PG_DEBUG IN ('Y', 'C') THEN
260       FND_FILE.put_line(FND_FILE.LOG, 'validate_validation()+');
261     END IF;
262     lb_sub.submit_validation := p_submit_validation;
263     IF p_submit_validation = 'Y' THEN
264       SELECT  pay_unrelated_invoices_flag
265       INTO    l_pay_unrelated_inv
266       FROM    ar_system_parameters
267       WHERE   rownum = 1 ;
268       IF l_pay_unrelated_inv = 'N' THEN
269         FND_MESSAGE.SET_NAME('AR','AR_OPLB_UNRELATE_PAY');
270 	l_msg_text := fnd_message.get;
271 	FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
272       ELSE
273         l_pay_unrelated_inv := p_pay_unrelated_inv;
274       END IF;
275 
276       l_trans_format_id := lb_sub.trans_format_id;
277 
278       BEGIN
279         SELECT 'Y'
280         INTO   l_lb_num_exists
281         FROM   ar_trans_field_formats fld,
282                ar_trans_record_formats rec
283         WHERE  rec.transmission_format_id = l_trans_format_id
284         AND    rec.record_type_lookup_code in ('LB HDR', 'LB TRL')
285         AND    rec.record_format_id = fld.record_format_id
286         AND    fld.field_type_lookup_code = 'LB NUM';
287         EXCEPTION
288           WHEN NO_DATA_FOUND THEN
289             l_lb_num_exists := 'N';
290           WHEN OTHERS THEN
291             RAISE;
292       END;
293 
294       IF l_lb_num_exists = 'Y' THEN
295          IF p_gl_date IS NULL THEN                          --- Modified for the bug 16679215
296             FND_MESSAGE.SET_NAME('AR','AR_OPLB_GL_EXISTS');
297 	    l_msg_text := fnd_message.get;
298 	    FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
299             RETURN 1;
300           ELSE
301             lb_sub.gl_date := p_gl_date;
302           END IF;
303 	 lb_sub.pay_unrelated_inv := l_pay_unrelated_inv;
304          lb_sub.lockbox_id := l_lockbox_id;
305          lb_sub.complete_batches := p_complete_batches;
306          lb_sub.report_format := NVL(p_report_format,'R');
307          lb_sub.inv_trxn_handling := p_invalid_trxn_handling;   --- Modified for the bug 16679215
308 
309         FND_MESSAGE.SET_NAME('AR','AR_OPLB_LOCKBOXNUM_DATAFILE');
310 	l_msg_text := fnd_message.get;
311 	FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
312       ELSE
313         l_lockbox_id := NVL(p_lockbox_id, lb_sub.lockbox_id);
314         IF  l_lockbox_id IS NULL THEN
315           FND_MESSAGE.SET_NAME('AR','AR_PLB_INVALID_LB_NUM');
316 	  l_msg_text := fnd_message.get;
317 	  FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
318           RETURN 1;
319         END IF;
320         SELECT loc.gl_date_source
321         INTO   l_gl_date_source
322         FROM   ar_lockboxes loc
323         WHERE  loc.lockbox_id = l_lockbox_id;
324         IF l_gl_date_source = 'CON' THEN
325           IF p_gl_date IS NULL THEN
326             FND_MESSAGE.SET_NAME('AR','AR_OPLB_GL_EXISTS');
327 	    l_msg_text := fnd_message.get;
328 	    FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
329             RETURN 1;
330           ELSE
331             --lb_sub.gl_date := FND_DATE.date_to_canonical(to_date(p_gl_date,'DD-MON-RR'));
332 	    lb_sub.gl_date := p_gl_date;
333           END IF;
334         ELSIF l_gl_date_source = 'DEP' THEN
335           BEGIN
336             SELECT 'Y'
337             INTO l_dep_date_exists
338             FROM  ar_trans_record_formats trf,
339                  ar_trans_field_formats tff
340             WHERE  trf.transmission_format_id = l_trans_format_id
341             AND    trf.record_format_id = tff.record_format_id
342             AND    tff.field_type_lookup_code = 'DEPOSIT DATE'
346             FND_MESSAGE.SET_NAME('AR','AR_RW_PLB_NO_DEP_DATE');
343             AND    ROWNUM < 2;
344           EXCEPTION
345           WHEN NO_DATA_FOUND THEN
347 	    l_msg_text := fnd_message.get;
348 	    FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
349             RETURN 1;
350           WHEN OTHERS THEN
351             FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Unable to fetch Deposit date information from transmission format');
352             FND_FILE.put_line(FND_FILE.LOG, 'Exception :: '||SQLERRM);
353             RETURN 1;
354           END;
355           FND_FILE.put_line(FND_FILE.LOG, 'GL Date will be defaulted to the deposit date');
356           lb_sub.gl_date := NULL;
357         ELSE
358           FND_FILE.put_line(FND_FILE.LOG,'GL Date will be defaulted as the import date');
359           lb_sub.gl_date := NULL;
360         END IF;
361       END IF;
362       lb_sub.pay_unrelated_inv := l_pay_unrelated_inv;
363       lb_sub.lockbox_id := l_lockbox_id;
364       lb_sub.complete_batches := p_complete_batches;
365       lb_sub.report_format := NVL(p_report_format,'R');
366       lb_sub.inv_trxn_handling := p_invalid_trxn_handling;
367     ELSE
368       lb_sub.gl_date := NULL;
369       lb_sub.pay_unrelated_inv := NULL;
370       lb_sub.lockbox_id := NULL;
371       lb_sub.complete_batches := NULL;
372       lb_sub.report_format := NULL;
373       lb_sub.inv_trxn_handling := NULL;
374     END IF;
375     RETURN 0;
376   EXCEPTION
377     WHEN OTHERS THEN
378       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Inside validate_validation');
379       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Message : '||SQLERRM);
380       RETURN 1;
381   END validate_validation;
382   /*=======================================================================+
383     | PROCEDURE                                                             |
384     |   submit_lockbox() - Spawns ARLPLB [Process Lockboxes C Program]      |
385     | DESCRIPTION                                                           |
386     |                                                                       |
387     | SCOPE -                                                               |
388     |									                                                      |
389     | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                               |
390     | ARGUMENTS  : IN:                     				                          |
391     |                                                                       |
392     |              OUT:     None                                            |
393     | RETURNS    : NONE                    				                          |
394     |                                                                       |
395     | NOTES -                                                               |
396     |                                                                       |
397     | MODIFICATION HISTORY -  22/01/2013 - Created by ASHLESH	     	      |
398     +=======================================================================*/
399   PROCEDURE submit_lockbox IS
400     l_org_id            NUMBER;
401     l_request_id        NUMBER(15);
402     no_request_spawned  EXCEPTION;
403   BEGIN
404     IF PG_DEBUG IN ('Y', 'C') THEN
405       FND_FILE.put_line(FND_FILE.LOG, 'submit_lockbox()+');
406     END IF;
407     l_org_id := lb_sub.org_id;
408     FND_REQUEST.set_org_id(l_org_id);
409     l_request_id := FND_REQUEST.submit_request( 'AR', 'ARLPLB',
410                         'Process Lockboxes',
411                         SYSDATE,
412                         FALSE,
413                         lb_sub.new_transmission,
414                         lb_sub.transmission_id,
415                         lb_sub.orig_request_id,
416                         lb_sub.transmission_name,
417                         lb_sub.submit_import,
418                         lb_sub.data_file_path,
419                         lb_sub.control_file,
420                         lb_sub.trans_format_id,
421                         lb_sub.submit_validation,
422                         lb_sub.pay_unrelated_inv,
423                         lb_sub.lockbox_id,
424                         FND_DATE.date_to_canonical(lb_sub.gl_date),
425                         lb_sub.report_format,
426                         lb_sub.complete_batches,
427                         lb_sub.submit_postbatch,
428                         lb_sub.alt_name_search,
429                         lb_sub.inv_trxn_handling,
430                         lb_sub.ussgl_trans_code,
431                         lb_sub.org_id,
432                         lb_sub.app_unearn_disc,
433                         lb_sub.no_of_instances,
434                         'L',
435                         NULL);
436 
437     IF (l_request_id = 0) THEN
438       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Can not start a concurrent request');
439       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: '||fnd_Message.get);
440       RAISE no_request_spawned;
441     ELSE
442       commit;
443       FND_FILE.put_line(FND_FILE.LOG, 'Request id: ' ||l_request_id || ' started Process Lockboxes');
444     END IF;
445     IF PG_DEBUG IN ('Y', 'C') THEN
446       FND_FILE.put_line(FND_FILE.LOG, 'submit_lockbox()-');
447     END IF;
448   EXCEPTION
449     WHEN OTHERS THEN
450       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Inside submit_lockbox');
451       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Message : '||SQLERRM);
452       RAISE;
453   END submit_lockbox;
454   /*=======================================================================+
455     | PROCEDURE                                                             |
456     |   submit_lockbox_via_srs() - Calling point for SRS                    |
457     | DESCRIPTION                                                           |
458     |                                                                       |
462     | ARGUMENTS  : IN:                     				                          |
459     | SCOPE -                                                               |
460     |									                                                      |
461     | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                               |
463     |                                                                       |
464     |              OUT:     None                                            |
465     | RETURNS    : NONE                    				                          |
466     |                                                                       |
467     | NOTES -                                                               |
468     |                                                                       |
469     | MODIFICATION HISTORY -  22/01/2013 - Created by ASHLESH	     	      |
470     +=======================================================================*/
471   PROCEDURE submit_lockbox_via_srs(
472     P_ERRBUF                OUT NOCOPY VARCHAR2,
473     P_RETCODE               OUT NOCOPY NUMBER,
474     p_org_id                IN  NUMBER,
475     p_new_transmission      IN  VARCHAR2,
476     p_transmission_name     IN  ar_transmissions.transmission_name%TYPE,
477     p_submit_import         IN  VARCHAR2 DEFAULT 'N',
478     p_transmission_format   IN  ar_transmission_formats.transmission_format_id%TYPE,
479     p_data_file             IN  VARCHAR2,
480     p_control_file          IN  VARCHAR2,
481     p_alt_name_search       IN  VARCHAR2,
482     p_ussgl_trx_code        IN  VARCHAR2,
483     p_submit_validation     IN  VARCHAR2 DEFAULT 'N',
484     p_lockbox_id            IN  ar_lockboxes.lockbox_id%TYPE,
485     p_gl_date               IN  VARCHAR2,
486     p_pay_unrelated_inv     IN  VARCHAR2 DEFAULT 'N',
487     p_complete_batches      IN  VARCHAR2 DEFAULT 'N',
488     p_report_format         IN  VARCHAR2 DEFAULT 'R',
489     p_invalid_trxn_handling IN  VARCHAR2 DEFAULT 'N',
490     p_submit_postbatch      IN  VARCHAR2 DEFAULT 'N',
491     p_app_unearned_disc     IN  VARCHAR2 DEFAULT 'N',
492     p_no_of_instances       IN  NUMBER) IS
493     l_return_status NUMBER;
494     l_msg_text          fnd_new_messages.message_text%type;
495     invalid_param   EXCEPTION;
496   BEGIN
497     IF PG_DEBUG IN ('Y', 'C') THEN
498       FND_FILE.put_line(FND_FILE.LOG, 'submit_lockbox_via_srs()+');
499       FND_FILE.put_line(FND_FILE.LOG, 'Org Id : '||p_org_id);
500       FND_FILE.put_line(FND_FILE.LOG, 'New Transmission : '||p_new_transmission);
501       FND_FILE.put_line(FND_FILE.LOG, 'Transmission Name : '||p_transmission_name);
502       FND_FILE.put_line(FND_FILE.LOG, 'Submit Import : '||p_submit_import);
503       FND_FILE.put_line(FND_FILE.LOG, 'Transmission Format : '||p_transmission_format);
504       FND_FILE.put_line(FND_FILE.LOG, 'Data File : '||p_data_file);
505       FND_FILE.put_line(FND_FILE.LOG, 'Control File : '||p_control_file);
506       FND_FILE.put_line(FND_FILE.LOG, 'Alternate Name Search : '||p_alt_name_search);
507       FND_FILE.put_line(FND_FILE.LOG, 'Submit Validation : '||p_submit_validation);
508       FND_FILE.put_line(FND_FILE.LOG, 'Lockbox Identifier : '||p_lockbox_id);
509       FND_FILE.put_line(FND_FILE.LOG, 'GL Date : '||p_gl_date);
510       FND_FILE.put_line(FND_FILE.LOG, 'Pay Unrelated Invoices : '||p_pay_unrelated_inv);
511       FND_FILE.put_line(FND_FILE.LOG, 'Complete Batches : '||p_complete_batches);
512       FND_FILE.put_line(FND_FILE.LOG, 'Report Format : '||p_report_format);
513       FND_FILE.put_line(FND_FILE.LOG, 'Invalid Transaction Number Handling : '||p_invalid_trxn_handling);
514       FND_FILE.put_line(FND_FILE.LOG, 'Submit PostQuickCash : '||p_submit_postbatch);
515       FND_FILE.put_line(FND_FILE.LOG, 'Apply Unearned Discount : '||p_app_unearned_disc);
516       FND_FILE.put_line(FND_FILE.LOG, 'Number of Instances : '||p_no_of_instances);
517     END IF;
518 
519     mo_global.init('AR');
520 
521     IF p_org_id is not null THEN
522     	mo_global.set_policy_context('S', p_org_id);
523     	arp_standard.init_standard(p_org_id);
524     END IF;
525 
526     l_return_status := validate_transmission( p_new_transmission,
527                                               p_transmission_name);
528 
529     IF l_return_status = 1 THEN
530       RAISE invalid_param;
531     END IF;
532 
533     l_return_status := validate_import( p_submit_import,
534                                         p_transmission_format,
535                                         p_data_file,
536                                         p_control_file,
537                                         p_alt_name_search,
538                                         p_ussgl_trx_code);
539 
540     IF l_return_status = 1 THEN
541       RAISE invalid_param;
542     END IF;
543 
544     IF lb_sub.alt_name_search IN ('M', 'A') THEN
545       IF p_submit_validation = 'Y' OR p_submit_postbatch = 'Y' THEN
546         FND_MESSAGE.SET_NAME('AR','AR_OPLB_ALT_NAME_SER');
547 	l_msg_text := fnd_message.get;
548 	FND_FILE.put_line(FND_FILE.LOG, l_msg_text);
549         RAISE invalid_param;
550       END IF;
551     END IF;
552 
553     l_return_status := validate_validation( p_submit_validation,
554                                             p_lockbox_id,
555                                             fnd_conc_date.string_to_date(p_gl_date),
556                                             p_pay_unrelated_inv,
557                                             p_complete_batches,
558                                             p_report_format,
559                                             p_invalid_trxn_handling);
560 
561     IF l_return_status = 1 THEN
562       RAISE invalid_param;
563     END IF;
564 
565     lb_sub.submit_postbatch := p_submit_postbatch;
566     lb_sub.org_id := p_org_id;
567     lb_sub.app_unearn_disc := p_app_unearned_disc;
568     lb_sub.no_of_instances := p_no_of_instances;
569 
570     submit_lockbox;
571 
575   EXCEPTION
572     IF PG_DEBUG IN ('Y', 'C') THEN
573       FND_FILE.put_line(FND_FILE.LOG, 'submit_lockbox_via_srs()-');
574     END IF;
576     WHEN invalid_param THEN
577       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Invalid Parameters');
578       --RAISE;
579       P_RETCODE := 2;
580     WHEN OTHERS THEN
581       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Inside procedure submit_lockbox_via_srs');
582       FND_FILE.put_line(FND_FILE.LOG, 'Exception :: Message : '||SQLERRM);
583       --RAISE;
584       P_RETCODE := 2;
585   END submit_lockbox_via_srs;
586 
587 END AR_SUBMIT_LOCKBOX;