DBA Data[Home] [Help]

PACKAGE BODY: APPS.JL_AR_DOC_NUMBERING_PKG

Source


1 PACKAGE BODY JL_AR_DOC_NUMBERING_PKG as
2 /* $Header: jlarrdnb.pls 120.14.12010000.4 2009/09/15 14:23:15 mbarrett ship $ */
3 
4 /*----------------------------------------------------------------------------*
5  |   PUBLIC FUNCTIONS/PROCEDURES  					      |
6  *----------------------------------------------------------------------------*/
7 
8 PG_DEBUG varchar2(1);
9 
10 FUNCTION validate_trx_type (p_batch_source_id IN NUMBER,
11                             p_trx_type IN NUMBER,
12                             p_invoice_class IN VARCHAR2,
13                             p_document_letter IN VARCHAR2,
14                             p_interface_line_id IN NUMBER,
15                             p_created_from IN VARCHAR2) RETURN VARCHAR2 IS
16 
17 l_dummy_code     VARCHAR2(15);
18 error_condition  EXCEPTION;
19 l_return_code	 VARCHAR2(30);
20 l_document_letter VARCHAR2(1);
21 l_count          NUMBER;
22 l_branch_number  VARCHAR2(4);
23 l_org_id         NUMBER;
24 
25 BEGIN
26    l_return_code := 'SUCCESS';
27    IF PG_DEBUG in ('Y', 'C') THEN
28       arp_standard.debug('validate_trx_type: ' || '-- validate trx type ');
29    END IF;
30    -- Bug 8825457 Start
31    l_org_id := MO_GLOBAL.get_current_org_id;
32    -- Bug 8825457 End
33    BEGIN
34      SELECT 'Success'
35      INTO   l_dummy_code
36      FROM   jg_zz_ar_src_trx_ty st, ra_batch_sources_all src
37      WHERE  st.cust_trx_type_id = p_trx_type
38      AND    st.batch_source_id = p_batch_source_id
39      AND    invoice_class = p_invoice_class
40      AND    st.batch_source_id = src.batch_source_id
41      AND    src.global_attribute3 = p_document_letter
42      AND    st.enable_flag = 'Y'
43      -- Bug 8825457 Start
44      AND src.org_id = l_org_id;
45      -- Bug 8825457 End
46    IF PG_DEBUG in ('Y', 'C') THEN
47       arp_standard.debug('validate_trx_type: ' || '-- First validate trx type check');
48    END IF;
49    EXCEPTION
50      WHEN NO_DATA_FOUND THEN
51           IF p_created_from = 'RAXTRX' THEN
52   	     l_return_code := 'ERROR';
53              IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
54 	                               'JL_AR_AR_INVALID_TRANS_TYPE',
55                                        'p_interface_line_id',
56                                        'p_trx_type') THEN
57                 RAISE  error_condition;
58              END IF;
59 	  ELSIF p_created_from = 'ARXTWMAI' THEN
60 	     l_return_code := 'JL_AR_AR_TRXTYP_BTSRC_NOT_ASSO';
61              RAISE error_condition;
62  	  END IF;
63     WHEN TOO_MANY_ROWS THEN
64           IF p_created_from = 'RAXTRX' THEN
65   	     l_return_code := 'ERROR';
66              IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
67 	                               'JL_AR_AR_BT_SRC_MORE_FOUND',
68                                        'p_interface_line_id',
69                                        'p_trx_type') THEN
70                 RAISE  error_condition;
71              END IF;
72 	  ELSIF p_created_from = 'ARXTWMAI' THEN
73 	     l_return_code := 'JL_AR_AR_BT_SRC_MORE_FOUND';
74              RAISE error_condition;
75  	  END IF;
76    END;
77    BEGIN
78      --
79      SELECT substr(global_attribute2,1,4)
80      INTO   l_branch_number
81      FROM   ra_batch_sources a
82      WHERE  a.batch_source_id = p_batch_source_id;
83      --
84      SELECT count(*)
85      INTO   l_count
86      FROM   jg_zz_ar_src_trx_ty ty, ra_batch_sources_all src
87      WHERE  ty.cust_trx_type_id = p_trx_type
88      AND    ty.batch_source_id = src.batch_source_id
89      AND    substr(src.global_attribute3,1,1) <> p_document_letter
90      AND    substr(src.global_attribute2,1,4) <> l_branch_number
91      AND    ty.enable_flag = 'Y';
92      --
93      IF PG_DEBUG in ('Y', 'C') THEN
94         arp_standard.debug('validate_trx_type: ' || '-- Second validate trx type check');
95      END IF;
96      IF l_count > 0 THEN
97        IF p_created_from = 'RAXTRX' THEN
98          l_return_code := 'ERROR';
99          IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
100                                'JL_AR_AR_BT_SRC_MORE_FOUND',
101                                'p_interface_line_id',
102                                'p_trx_type') THEN
103            RAISE  error_condition;
104          END IF;
105        ELSIF p_created_from = 'ARXTWMAI' THEN
106          l_return_code := 'JL_AR_AR_BT_SRC_MORE_FOUND';
107          RAISE error_condition;
108        END IF;
109      END IF;
110    END;
111    RETURN  l_return_code;
112 EXCEPTION
113   WHEN OTHERS THEN
114        IF l_return_code is null then
115 	  IF p_created_from = 'ARXTWMAI' THEN
116 	     l_return_code := 'JL_AR_AR_TRXTYP_BTSRC_NOT_ASSO';
117              RAISE error_condition;
118           ELSE
119 	     l_return_code := 'JL_AR_AR_INVALID_TRANS_TYPE';
120              IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
121 	                               'JL_AR_AR_INVALID_TRANS_TYPE',
122                                        'p_interface_line_id',
123                                        'p_trx_type') THEN
124                 RAISE  error_condition;
125              END IF;
126           END IF;
127        END IF;
128        RETURN l_return_code;
129 END validate_trx_type;
130 
131 FUNCTION validate_four_digit (p_batch_source_id   IN NUMBER,
132                               p_interface_line_id IN NUMBER,
133                               p_created_from      IN VARCHAR2,
134                               p_inventory_item_id IN NUMBER,
135                               p_memo_line_id      IN NUMBER,
136                               p_so_org_id         IN VARCHAR2) RETURN VARCHAR2
137 IS
138 
139 l_dummy_code           VARCHAR2(15);
140 error_condition        EXCEPTION;
141 l_return_code	       VARCHAR2(30);
142 l_so_org_id            NUMBER(15);
143 l_four_digit_code      VARCHAR2(20);
144 l_point_of_sale_code   VARCHAR2(4);
145 l_product_line_code    VARCHAR2(4);
146 l_loc_id               NUMBER(15);
147 l_org_id               NUMBER;
148 
149 BEGIN
150   l_return_code := 'SUCCESS';
151 
152   --Bug 1404824 removed check to see if p_so_org_id is not null since it will
153   --be mandatory.
154   --Commented following line for bug 1612359
155 --  l_so_org_id := to_number(p_so_org_id);
156     l_org_id := mo_global.get_current_org_id;
157     l_so_org_id := oe_sys_parameters.value('MASTER_ORGANIZATION_ID',l_org_id);
158 
159   BEGIN
160     SELECT global_attribute1
161     INTO   l_four_digit_code
162     FROM   ar_system_parameters;
163   END;
164 
165   --Bug 1612359 - removed branch number validation for point of sale
166 
167   IF l_four_digit_code = 'PRODUCT_LINE' THEN
168      l_product_line_code := NULL;
169      IF p_inventory_item_id IS NOT NULL THEN
170         BEGIN
171           SELECT substr(global_attribute10,1,4)
172           INTO   l_product_line_code
173           FROM   mtl_system_items
174           WHERE  inventory_item_id = p_inventory_item_id
175           AND    organization_id = l_so_org_id;
176         EXCEPTION
177           WHEN NO_DATA_FOUND THEN
178 	       IF p_created_from = 'RAXTRX' THEN
179                   l_return_code := 'ERROR';
180                   IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
181                                             'JL_AR_AR_INVALID_ITEM_CODE',
182                                             p_interface_line_id,
183                                             p_inventory_item_id)  THEN
184                      RAISE error_condition;
185                   END IF;
186                ELSIF p_created_from = 'ARXTWMAI' THEN
187                   l_return_code := 'JL_AR_AR_INVALID_ITEM_CODE';
188                   RAISE error_condition;
189                END IF;
190         END;
191      ELSE
192         IF p_memo_line_id IS NOT NULL THEN
193            BEGIN
194              SELECT substr(global_attribute7,1,4)
195              INTO   l_product_line_code
196              FROM   ar_memo_lines
197              WHERE  memo_line_id = p_memo_line_id;
198            EXCEPTION
199              WHEN NO_DATA_FOUND THEN
200 	          IF p_created_from = 'RAXTRX' THEN
201                      l_return_code := 'ERROR';
202                      IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
203                                                'JL_AR_AR_INVALID_MEMO_LINE',
204                                                p_interface_line_id,
205                                                p_memo_line_id) THEN
206                         RAISE error_condition;
207                      END IF;
208                   ELSIF p_created_from = 'ARXTWMAI' THEN
209                      l_return_code := 'JL_AR_AR_INVALID_MEMO_LINE';
210                      RAISE  error_condition;
211                   END IF;
212            END;
213         END IF;
214      END IF;
215      BEGIN
216         SELECT 'Success'
217         INTO   l_dummy_code
218         FROM   ra_batch_sources
219         WHERE  substr(global_attribute2,1,4) = l_product_line_code
220         AND    batch_source_id = p_batch_source_id;
221         EXCEPTION
222           WHEN NO_DATA_FOUND THEN
223                IF p_created_from = 'RAXTRX' THEN
224                   l_return_code := 'ERROR';
225                   IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
226                                            'JL_AR_AR_INV_PROD_LINE_CODE',
227                                             p_interface_line_id,
228                                             l_product_line_code) THEN
229                      RAISE error_condition;
230                   END IF;
231                ELSIF p_created_from = 'ARXTWMAI' THEN
232                   l_return_code := 'JL_AR_AR_INV_PROD_LINE_CODE';
233                   RAISE error_condition;
234                END IF;
235      END;
236   END IF;
237   RETURN l_return_code;
238 EXCEPTION
239   WHEN OTHERS THEN
240        IF l_return_code is null then
241           IF p_created_from = 'RAXTRX' THEN
242              l_return_code := 'JL_AR_AR_AI_BR_NUM_NOT_DEF';
243              IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
244                                       'JL_AR_AR_AI_BR_NUM_NOT_DEF',
245                                        p_interface_line_id,
246                                        p_batch_source_id) THEN
247                      RAISE error_condition;
248              END IF;
249           ELSIF p_created_from = 'ARXTWMAI' THEN
250              l_return_code := 'JL_AR_AR_BRANCH_NUM_NOT_DEF';
251           END IF;
252        END IF;
253        RETURN l_return_code;
254 END validate_four_digit;
255 
256 FUNCTION get_num_bar_code (p_batch_source_id IN NUMBER, p_trx_type_id IN NUMBER,p_legal_entity_id IN NUMBER) RETURN VARCHAR2 IS
257   l_comp_cuit VARCHAR2(15);
258   l_dgi_code VARCHAR2(4);
259   l_branch_num VARCHAR2(4);
260   l_cai_num VARCHAR2(30);
261   l_cai_date VARCHAR2(12);
262   l_inv_org_id NUMBER;
263   l_doc_letter VARCHAR2(2);
264   l_num_bar_code VARCHAR2(100);
265   l_valid_digit VARCHAR2(2);
266   l_odd_temp NUMBER;
267   l_even_temp NUMBER;
268   l_temp NUMBER;
269   l_leng NUMBER;
270   l_count NUMBER;
271 BEGIN
272 
273   --oe_profile.get('MASTER_ORGANIZATION_ID',l_org_id);
274 -- Fetching the company Cuit from hr locations
275   BEGIN
276     SELECT registration_number
277     INTO   l_comp_cuit
278     FROM   xle_firstparty_information_v
279     WHERE  legal_entity_id = p_legal_entity_id;
280   EXCEPTION
281     WHEN OTHERS THEN
282          l_comp_cuit  := NULL;
283   END;
284 
285 -- Fetching the document letter,branch number, cai number, cai date
286   BEGIN
287      SELECT substr(global_attribute3,1,1),substr(global_attribute2,1,4)
288      ,global_attribute8, to_char(fnd_date.canonical_to_date(global_attribute9),'YYYY/MM/DD')
289      INTO   l_doc_letter, l_branch_num, l_cai_num, l_cai_date
290      FROM   ra_batch_sources
291      WHERE  batch_source_id = p_batch_source_id;
292 
293      SELECT REPLACE(l_cai_date,'/') INTO l_cai_date from dual;
294 
295      SELECT REPLACE(l_comp_cuit,'-') INTO l_comp_cuit from dual;
296 
297   EXCEPTION
298     WHEN OTHERS THEN
299          l_branch_num  := NULL;
300   END;
301 
302   BEGIN
303 
304 -- Fetching the dgi code
305     SELECT lpad(substr(dgi_code,1,2),2,'0')
306     INTO   l_dgi_code
307     FROM   jl_ar_ap_trx_dgi_codes dgi,
308            ra_cust_trx_types rctt
309     WHERE  trx_letter = l_doc_letter
310     AND    rctt.cust_trx_type_id = p_trx_type_id
311     AND    trx_category = (select type from ra_cust_trx_types where
312                            cust_trx_type_id = p_trx_type_id);
313   EXCEPTION
314     WHEN OTHERS THEN
315          l_doc_letter := NULL;
316          l_dgi_code  := NULL;
317   END;
318 
319 -- IF any of the components of the bar code is null then the entire bar code is
320 -- null
321 
322   IF l_comp_cuit is NULL or l_dgi_code is NULL or l_branch_num is NULL or l_cai_num is NULL or l_cai_date is NULL THEN
323       RETURN NULL;
324     END IF;
325 
326     l_num_bar_code := l_comp_cuit||l_dgi_code||l_branch_num||l_cai_num||l_cai_date;
327 
328     Select length(l_num_bar_code) into l_leng from dual;
329 
330     l_count := 1;
331     l_odd_temp := 0;
332 
333 -- Sum up the digits at the odd positions
334     Loop
335 
336       l_odd_temp := l_odd_temp + to_number(substr(l_num_bar_code,l_count,1));
337       l_count := l_count + 2;
338 
339       exit when l_count > l_leng;
340 
341     End Loop;
342 
343     l_odd_temp := l_odd_temp * 3;
344 
345     l_count := 2;
346     l_even_temp := 0;
347 
348 -- Sum up the digits at the even positions
349     Loop
350 
351       l_even_temp := l_even_temp + to_number(substr(l_num_bar_code,l_count,1));
352       l_count := l_count + 2;
353 
354       exit when l_count > l_leng;
355 
356     End Loop;
357 
358     l_temp := l_odd_temp + l_even_temp;
359 
360 -- Get the modulus of the sum
361     SELECT MOD(l_temp,10) into l_temp FROM dual;
362 	    -- Bug 8727000 FW Port of 11i Bug 8279519
363         -- MOD will return 0 if l_temp passed is multiple of 10
364         --In that case l_valid_digit will be 10-0 = 10 which is incorrect
365         IF l_temp = 0 then
366           l_valid_digit := to_char(l_temp);
367         ELSE
368 
369 -- Validation Digit is equivalent to 10 - modulus
370     l_valid_digit := to_char(10 - l_temp);
371 	    END IF;
372 
373     l_num_bar_code := l_num_bar_code || l_valid_digit;
374 
375     RETURN l_num_bar_code;
376 
377 END get_num_bar_code;
378 
379 
380 FUNCTION validate_document_letter
381                    (p_batch_source_id    IN     NUMBER,
382                     p_interface_line_id  IN     NUMBER,
383                     p_created_from       IN     VARCHAR2,
384                     p_ship_to_address_id IN     NUMBER,
385                     p_document_letter    IN OUT NOCOPY VARCHAR2,
386                     p_so_org_id          IN     VARCHAR2) RETURN VARCHAR2  IS
387 
388 l_dummy_code              VARCHAR2(15);
389 error_condition           EXCEPTION;
390 l_return_code	          VARCHAR2(30);
391 l_match_flag              VARCHAR2(1) := 'N';
392 l_so_org_id               NUMBER;
393 l_auto_trx_numbering_flag VARCHAR2(1);
394 l_organization_class_code VARCHAR2(150);
395 l_contributor_class_code  VARCHAR2(150);
396 l_loc_id                  NUMBER(15);
397 l_cus_cls_flag            VARCHAR2(1);
398 l_org_id                  NUMBER;
399 
400 CURSOR doc_letter_cursor IS
401       SELECT tax_category_id,
402 	     org_tax_attribute_name,
403 	     org_tax_attribute_value,
404 	     con_tax_attribute_name,
405              con_tax_attribute_value
406       FROM   jl_ar_ar_doc_letter
407       WHERE  document_letter = p_document_letter
408       AND    sysdate between start_date_active and nvl(end_date_active,sysdate);
409 
410 BEGIN
411 -- Commented out the following line, will be assigned 'SUCCESS' at the end of successful completion of the loop
412 --  l_return_code := 'SUCCESS';
413 
414   IF p_created_from = 'ARXTWMAI' THEN
415      BEGIN
416        SELECT global_attribute3
417        INTO   p_document_letter
418        FROM   ra_batch_sources
419        WHERE  batch_source_id = p_batch_source_id;
420      EXCEPTION
421        WHEN OTHERS THEN
422          l_return_code := 'JL_AR_AR_INVALID_DOC_LETTER';
423          RAISE error_condition;
424      END;
425   END IF;
426 
427   --Bug 1404824 - l_so_org_id variable will be assigned using the parameter
428   --passed
429   --Commented the below line for bug 1612359
430 --  l_so_org_id := to_number(p_so_org_id);
431     l_org_id := mo_global.get_current_org_id;
432     l_so_org_id := oe_sys_parameters.value('MASTER_ORGANIZATION_ID',l_org_id);
433 
434   BEGIN
435     l_loc_id := null;
436     SELECT hou.location_id
437     INTO   l_loc_id
438     FROM   hr_organization_units hou
439     WHERE  hou.organization_id = l_so_org_id;
440     EXCEPTION
441       WHEN NO_DATA_FOUND THEN
442           IF p_created_from = 'RAXTRX' THEN
443              l_return_code := 'ERROR';
444              IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
445                                         'JL_AR_AR_INVALID_ORGANIZATION',
446                                          p_interface_line_id,
447                                          l_so_org_id)  THEN
448                 RAISE  error_condition;
449              END IF;
450           ELSIF p_created_from = 'ARXTWMAI' THEN
451              l_return_code := 'JL_AR_AR_INVALID_ORGANIZATION';
452              RAISE error_condition;
453           END IF;
454   END;
455   IF l_loc_id is not null then
456      BEGIN
457        SELECT hrl.global_attribute1
458        INTO   l_organization_class_code
459        FROM   hr_locations hrl,
460               hr_organization_units hrou
461        WHERE  hrou.organization_id = l_so_org_id
462        AND    hrl.location_id = hrou.location_id;
463        EXCEPTION WHEN NO_DATA_FOUND THEN
464            IF p_created_from = 'RAXTRX' THEN
465               IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
466                                          'JL_AR_AR_INVALID_ORGANIZATION',
467                                          p_interface_line_id,
468                                          l_so_org_id)  THEN
469                  RAISE  error_condition;
470               END IF;
471            ELSIF p_created_from = 'ARXTWMAI' THEN
472               l_return_code := 'JL_AR_AR_INVALID_ORGANIZATION';
473               RAISE error_condition;
474            END IF;
475      END;
476   ELSE
477      l_return_code := 'JL_AR_AR_LOCATION_NULL';
478      RAISE error_condition;
479   END IF;
480   IF l_organization_class_code is null then
481      IF p_created_from = 'RAXTRX' THEN
482         l_return_code := 'JL_AR_AR_AI_ORG_CLS_NOT_DEF';
483         IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
484                                'JL_AR_AR_AI_ORG_CLS_NOT_DEF',
485                                 p_interface_line_id,
486                                 l_so_org_id)  THEN
487            RAISE  error_condition;
488         END IF;
489      ELSIF p_created_from = 'ARXTWMAI' THEN
490         l_return_code := 'JL_AR_AR_ORG_CLS_CODE_NOT_DEF';
491         RAISE error_condition;
492      END IF;
493   END IF;
494 
495   l_contributor_class_code := NULL;
496 
497   IF p_ship_to_address_id IS NOT NULL THEN
498      IF p_created_from = 'ARXTWMAI' THEN
499         BEGIN
500           SELECT adr.global_attribute8
501           INTO   l_contributor_class_code
502           FROM   hz_cust_acct_sites_all adr,
503                  hz_cust_site_uses rsu
504           WHERE  rsu.site_use_id = p_ship_to_address_id
505           AND    rsu.cust_acct_site_id = adr.cust_acct_site_id;
506         END;
507         IF l_contributor_class_code is null then
508           l_return_code := 'JL_AR_AR_CONT_CLS_CODE_NOT_DEF';
509           RAISE error_condition;
510         END IF;
511      ELSIF p_created_from = 'RAXTRX' THEN
512         BEGIN
513           SELECT cas.global_attribute8
514           INTO   l_contributor_class_code
515           FROM   hz_cust_acct_sites cas
516           WHERE  cas.cust_acct_site_id = p_ship_to_address_id;
517         END;
518         IF l_contributor_class_code is null then
519           l_return_code := 'ERROR';
520           IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
521                                    'JL_AR_AR_AI_CONT_CLS_NOT_DEF',
522                                     p_interface_line_id,
523                                     p_ship_to_address_id)  THEN
524              RAISE  error_condition;
525           END IF;
526         END IF;
527      END IF;
528   END IF;
529 
530   FOR  doc_letter_rec IN doc_letter_cursor
531   LOOP
532     l_match_flag := 'N';
533 
534     BEGIN
535       l_dummy_code := NULL;
536 
537       SELECT 'Success'
538       INTO   l_dummy_code
539       FROM   jl_zz_ar_tx_att_cls
540       WHERE  tax_attr_class_code = l_organization_class_code
541       AND    tax_attr_class_type = 'ORGANIZATION_CLASS'
542       AND    tax_category_id = doc_letter_rec.tax_category_id
543       AND    tax_attribute_name = doc_letter_rec.org_tax_attribute_name
544       AND    tax_attribute_value = doc_letter_rec.org_tax_attribute_value;
545     EXCEPTION
546       WHEN NO_DATA_FOUND THEN
547            IF p_created_from = 'RAXTRX' THEN
548               l_return_code := 'JL_AR_AR_AI_ATT_CLS_NOT_DEF';
549            ELSIF p_created_from = 'ARXTWMAI' THEN
550               l_return_code := 'JL_AR_AR_ATT_CLS_NOT_DEF';
551            END IF;
552     END;
553 
554     IF l_dummy_code = 'Success'  THEN
555        l_match_flag := 'Y';
556     END IF;
557 
558     l_dummy_code := NULL;
559     BEGIN
560         IF PG_DEBUG in ('Y', 'C') THEN
561            arp_standard.debug('validate_document_letter: ' || '-- validate doc letter contributor class code ' || l_contributor_class_code);
562            arp_standard.debug('validate_document_letter: ' || '-- validate doc letter ship to address id '|| to_char(p_ship_to_address_id));
563            arp_standard.debug('validate_document_letter: ' || '-- validate doc letter tax category id '||to_char(doc_letter_rec.tax_category_id));
564            arp_standard.debug('validate_document_letter: ' || '-- validate doc letter tax att name '||doc_letter_rec.con_tax_attribute_name);
565            arp_standard.debug('validate_document_letter: ' || '-- validate doc letter tax att value '||doc_letter_rec.con_tax_attribute_value);
566         END IF;
567         IF p_created_from = 'ARXTWMAI' THEN
568            SELECT nvl(cas.global_attribute9,'N')
569            INTO  l_cus_cls_flag
570            FROM  hz_cust_acct_sites_all cas, hz_cust_site_uses rsu
571            WHERE rsu.site_use_id = p_ship_to_address_id
572            AND   rsu.cust_acct_site_id = cas.cust_acct_site_id;
573            --
574            IF l_cus_cls_flag = 'Y' THEN
575              SELECT 'Success'
576              INTO   l_dummy_code
577              FROM   jl_zz_ar_tx_cus_cls_all cus, hz_cust_acct_sites_all cas, hz_cust_site_uses rsu
578              WHERE  tax_attr_class_code =  l_contributor_class_code
579              AND    rsu.site_use_id = p_ship_to_address_id
580              AND    cas.cust_acct_site_id = cus.address_id
581              AND    rsu.cust_acct_site_id = cas.cust_acct_site_id
582              AND    tax_category_id = doc_letter_rec.tax_category_id
583              AND    tax_attribute_name = doc_letter_rec.con_tax_attribute_name
584              AND    tax_attribute_value = doc_letter_rec.con_tax_attribute_value;
585            ELSE
586              SELECT 'Success'
587              INTO   l_dummy_code
588              FROM   jl_zz_ar_tx_att_cls att
589              WHERE  tax_attr_class_type = 'CONTRIBUTOR_CLASS'
590              AND    tax_attr_class_code =  l_contributor_class_code
591              AND    tax_category_id = doc_letter_rec.tax_category_id
592              AND    tax_attribute_name = doc_letter_rec.con_tax_attribute_name
593              AND    tax_attribute_value = doc_letter_rec.con_tax_attribute_value;
594 
595            END IF;
596 
597        ELSE
598            SELECT nvl(cas.global_attribute9,'N')
599            INTO   l_cus_cls_flag
600            FROM   hz_cust_acct_sites cas
601            WHERE  cas.cust_acct_site_id = p_ship_to_address_id;
602            IF l_cus_cls_flag = 'Y' THEN
603              SELECT 'Success'
604              INTO   l_dummy_code
605              FROM   jl_zz_ar_tx_cus_cls_all cus, hz_cust_acct_sites cas
606              WHERE  tax_attr_class_code =  l_contributor_class_code
607              AND    cas.cust_acct_site_id = cus.address_id
608              AND    cas.cust_acct_site_id = p_ship_to_address_id
609              AND    tax_category_id = doc_letter_rec.tax_category_id
610              AND    tax_attribute_name = doc_letter_rec.con_tax_attribute_name
611              AND    tax_attribute_value = doc_letter_rec.con_tax_attribute_value;
612            ELSE
613              SELECT 'Success'
614              INTO   l_dummy_code
615              FROM   jl_zz_ar_tx_att_cls att
616              WHERE  tax_attr_class_type = 'CONTRIBUTOR_CLASS'
617              AND    tax_attr_class_code =  l_contributor_class_code
618              AND    tax_category_id = doc_letter_rec.tax_category_id
619              AND    tax_attribute_name = doc_letter_rec.con_tax_attribute_name
620              AND    tax_attribute_value = doc_letter_rec.con_tax_attribute_value;
621 
622            END IF;
623        END IF;
624 
625      EXCEPTION
626          WHEN NO_DATA_FOUND THEN
627            IF p_created_from = 'RAXTRX' THEN
628               l_return_code := 'JL_AR_AR_AI_CU_SIT_PRO_NOT_DEF';
629            ELSIF p_created_from = 'ARXTWMAI' THEN
630               l_return_code := 'JL_AR_AR_CUS_SITE_PROF_NOT_DEF';
631            END IF;
632            l_dummy_code := NULL;
633            l_match_flag := 'N';
634     END;
635 
636     IF l_dummy_code = 'Success' AND l_match_flag = 'Y' THEN
637      IF PG_DEBUG in ('Y', 'C') THEN
638         arp_standard.debug('validate_document_letter: ' || '-- Successfully found a combination ');
639      END IF;
640 -- Assigned SUCCESS to l_return_code Bug 1323607
641        l_return_code := 'SUCCESS';
642        EXIT;
643     END IF;
644 
645   END LOOP;
646 
647   IF l_match_flag = 'N' THEN
648      IF PG_DEBUG in ('Y', 'C') THEN
649         arp_standard.debug('validate_document_letter: ' || '-- match flag is n');
650      END IF;
651 -- Added the following if condition Bug 1323607
652 
653      IF l_return_code IS NULL THEN   -- Cursor contained no records
654         l_return_code := 'JL_AR_AR_DOC_LET_NOT_FOUND';
655      END IF;
656 
657      IF p_created_from = 'RAXTRX' THEN
658   	IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
659                                   l_return_code,
660                                   p_interface_line_id,
661                                   p_batch_source_id) THEN
662 
663            RAISE error_condition;
664         END IF;
665      ELSIF p_created_from = 'ARXTWMAI' THEN
666         RAISE error_condition;
667      END IF;
668   END IF;
669 
670   RETURN  l_return_code;
671 
672 EXCEPTION
673   WHEN OTHERS THEN
674        IF l_return_code is null then
675           l_return_code := 'JL_AR_AR_INVALID_DOC_LETTER';
676        END IF;
677        RETURN l_return_code;
678 
679 END validate_document_letter;
680 
681 FUNCTION validate_interface_lines ( p_request_id IN NUMBER
682                                    ,p_interface_line_id IN NUMBER
683                                    ,p_trx_type IN NUMBER
684                                    ,p_inventory_item_id IN NUMBER
685                                    ,p_memo_line_id IN NUMBER
686                                    ,p_trx_date IN DATE
687                                    ,p_orig_system_address_id IN NUMBER
688                                    ,p_so_org_id              IN VARCHAR2)
689 RETURN BOOLEAN IS
690 
691 l_dummy_code               VARCHAR2(15);
692 error_condition            EXCEPTION;
693 l_return_code              NUMBER;
694 l_max_trx_date             DATE;
695 l_batch_source_id          NUMBER(15);
696 l_auto_trx_numbering_flag  VARCHAR2(1);
697 l_last_trx_date            DATE;
698 l_advance_days             NUMBER;
699 l_document_letter          VARCHAR2(1);
700 l_invoice_class            VARCHAR2(20);
701 
702 BEGIN
703   IF PG_DEBUG in ('Y', 'C') THEN
704      arp_standard.debug('validate_interface_lines: ' || '-- JL_AR_DOC_NUMBERING_PKG validation begins');
705   END IF;
706 
707   l_return_code := 1;
708   IF PG_DEBUG in ('Y', 'C') THEN
709      arp_standard.debug('validate_interface_lines: ' || '-- trying to get the batch source id for the request');
710   END IF;
711   BEGIN
712     SELECT to_number(argument3)
713     INTO   l_batch_source_id
714     FROM   fnd_concurrent_requests
715     WHERE  request_id = p_request_id;
716   IF PG_DEBUG in ('Y', 'C') THEN
717      arp_standard.debug('validate_interface_lines: ' || '-- the batch source id for the request is '||to_char(l_batch_source_id));
718   END IF;
719   END;
720 
721   IF PG_DEBUG in ('Y', 'C') THEN
722      arp_standard.debug('validate_interface_lines: ' || '-- trying to get the batch source gdf segments');
723   END IF;
724   BEGIN
725     SELECT auto_trx_numbering_flag
726           ,substr(global_attribute3,1,1)
727           ,to_date(global_attribute4,'YYYY/MM/DD HH24:MI:SS')
728           ,to_number(global_attribute5)
729     INTO  l_auto_trx_numbering_flag
730          ,l_document_letter
731          ,l_last_trx_date
732 	 ,l_advance_days
733     FROM  ra_batch_sources
734     WHERE  batch_source_id = l_batch_source_id;
735   END;
736   IF PG_DEBUG in ('Y', 'C') THEN
737      arp_standard.debug('validate_interface_lines: ' || '-- the batch source gdf segments found');
738   END IF;
739 
740   IF l_auto_trx_numbering_flag ='N' THEN
741      IF PG_DEBUG in ('Y', 'C') THEN
742         arp_standard.debug('validate_interface_lines: ' || '-- auto trx numbering flag is N');
743      END IF;
744      l_return_code := 1;
745      RAISE error_condition;
746   END IF;
747   IF PG_DEBUG in ('Y', 'C') THEN
748      arp_standard.debug('validate_interface_lines: ' || '-- auto trx numbering flag is Y');
749      arp_standard.debug('validate_interface_lines: ' || '-- validate document letter begins');
750   END IF;
751 
752   IF validate_document_letter (l_batch_source_id
753                               ,p_interface_line_id
754                               ,'RAXTRX'
755                               ,p_orig_system_address_id
756                               ,l_document_letter
757                               ,p_so_org_id ) <> 'SUCCESS' THEN
758      IF PG_DEBUG in ('Y', 'C') THEN
759         arp_standard.debug('validate_interface_lines: ' || '-- validate document letter set up problem');
760      END IF;
761      l_return_code := 1;
762   END IF;
763 
764   IF PG_DEBUG in ('Y', 'C') THEN
765      arp_standard.debug('validate_interface_lines: ' || '-- trying to get the type for the trx type');
766   END IF;
767   BEGIN
768     SELECT type
769     INTO   l_invoice_class
770     FROM   ra_cust_trx_types
771     WHERE  cust_trx_type_id = p_trx_type;
772   IF PG_DEBUG in ('Y', 'C') THEN
773      arp_standard.debug('validate_interface_lines: ' || '-- the type for the trx type found');
774   END IF;
775   END;
776   IF PG_DEBUG in ('Y', 'C') THEN
777      arp_standard.debug('validate_interface_lines: ' || '-- validate trx type begins');
778   END IF;
779 
780   IF validate_trx_type (l_batch_source_id
781                        ,p_trx_type
782                        ,l_invoice_class
783                        ,l_document_letter
784                        ,p_interface_line_id
785                        ,'RAXTRX' ) <> 'SUCCESS' THEN
786      IF PG_DEBUG in ('Y', 'C') THEN
787         arp_standard.debug('validate_interface_lines: ' || '-- validate trx types and sources are not set');
788      END IF;
789      l_return_code := 1;
790   END IF;
791 
792   IF PG_DEBUG in ('Y', 'C') THEN
793      arp_standard.debug('validate_interface_lines: ' || '-- validate branch number begins');
794   END IF;
795   IF validate_four_digit (l_batch_source_id
796                          ,p_interface_line_id
797                          ,'RAXTRX'
798                          ,p_inventory_item_id
799                          ,p_memo_line_id
800                          ,p_so_org_id ) <> 'SUCCESS' THEN
801      IF PG_DEBUG in ('Y', 'C') THEN
802         arp_standard.debug('validate_interface_lines: ' || '-- branch number validation problem');
803      END IF;
804      l_return_code := 1;
805   END IF;
806 
807   IF PG_DEBUG in ('Y', 'C') THEN
808      arp_standard.debug('validate_interface_lines: ' || '-- validate trx date begins');
809   END IF;
810   IF p_trx_date BETWEEN
811      l_last_trx_date AND (sysdate+l_advance_days) THEN
812      IF p_trx_date <> l_last_trx_date  THEN
813         l_max_trx_date := p_trx_date;
814      END IF;
815      IF PG_DEBUG in ('Y', 'C') THEN
816         arp_standard.debug('validate_interface_lines: ' || '-- validate trx date ok');
817      END IF;
818   ELSE
819      BEGIN
820           IF PG_DEBUG in ('Y', 'C') THEN
821              arp_standard.debug('validate_interface_lines: ' || '-- date validation problem');
822           END IF;
823           l_return_code := 1;
824           IF p_trx_date < l_last_trx_date THEN
825             IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
826                           'JL_AR_AR_INVALID_TRANS_DATE',
827                            to_char(p_interface_line_id),
828                            to_char(l_batch_source_id))  THEN
829               RAISE  error_condition;
830             END IF;
831           ELSE
832             IF NOT JG_ZZ_AUTO_INVOICE.put_error_message ('JL',
833                           'JL_AR_AR_INVALID_TRX_DT_AFT',
834                            to_char(p_interface_line_id),
835                            to_char(l_batch_source_id))  THEN
836               RAISE  error_condition;
837             END IF;
838           END IF;
839      END;
840   END IF;
841 
842   IF PG_DEBUG in ('Y', 'C') THEN
843      arp_standard.debug('validate_interface_lines: ' || '-- update the dates');
844   END IF;
845   IF l_last_trx_date <> l_max_trx_date THEN
846     UPDATE ra_batch_sources
847     SET    global_attribute4 = fnd_date.date_to_canonical(l_max_trx_date)
848     WHERE  batch_source_id = l_batch_source_id;
849   END IF;
850 
851   IF l_return_code = 0 THEN
852      RETURN FALSE;
853   ELSE
854      RETURN TRUE;
855   END IF;
856 
857 EXCEPTION
858   WHEN OTHERS THEN
859        IF PG_DEBUG in ('Y', 'C') THEN
860           arp_standard.debug('validate_interface_lines: ' || '-- validate interface lines problem  - in others1');
861        END IF;
862        IF l_auto_trx_numbering_flag ='N' THEN
863           l_return_code := 1;
864        ELSE
865           l_return_code := 0;
866        END IF;
867        IF PG_DEBUG in ('Y', 'C') THEN
868           arp_standard.debug('validate_interface_lines: ' || '-- validate interface lines problem  - in others2');
869        END IF;
870        IF l_return_code = 0 THEN
871           RETURN FALSE;
872        ELSE
873           RETURN TRUE;
874        END IF;
875 
876 END validate_interface_lines;
877 
878 FUNCTION get_imported_batch_source (p_batch_source_id IN NUMBER)
879                                     RETURN NUMBER IS
880   l_imp_batch_src NUMBER;
881   l_imp_batch_type varchar2(30);
882 BEGIN
883   l_imp_batch_src := NULL;
884   BEGIN
885     SELECT decode(batch_source_type, 'INV',to_number(global_attribute1),
886                                      batch_source_id)
887     INTO   l_imp_batch_src
888     FROM   ra_batch_sources
889     WHERE  batch_source_id = p_batch_source_id;
890   EXCEPTION
891     WHEN OTHERS THEN
892          l_imp_batch_src := NULL;
893   END;
894   RETURN l_imp_batch_src;
895 END;
896 
897 FUNCTION get_flex_value(p_concat_segs IN VARCHAR2,p_flex_delimiter IN VARCHAR2)
898 RETURN VARCHAR2 IS
899 l_num_code VARCHAR2(50);
900 BEGIN
901 
902   SELECT substr(p_concat_segs,instr(p_concat_segs,''||p_flex_delimiter||'',1,4)+1) INTO l_num_code FROM dual;
903 
904   RETURN l_num_code;
905 
906 EXCEPTION
907  WHEN OTHERS THEN
908    RETURN NULL;
909 END;
910 
911 FUNCTION get_flex_delimiter RETURN VARCHAR2 IS
912   l_dfinfo_rec  FND_FLEX_SERVER1.DESCFLEXINFO;
913   l_success_bln BOOLEAN;
914 BEGIN
915   l_success_bln:= FND_FLEX_SERVER2.GET_DESCSTRUCT('JG','JG_RA_CUSTOMER_TRX',l_dfinfo_rec);
916   IF l_success_bln = TRUE THEN
917      RETURN l_dfinfo_rec.segment_delimiter;
918   ELSE
919      RETURN NULL;
920   END IF;
921 EXCEPTION
922   WHEN OTHERS THEN
923     NULL;
924 END;
925 
926 FUNCTION get_batch_source_type (p_batch_source_id IN NUMBER)
927                                     RETURN VARCHAR2 IS
928   l_imp_batch_src_type varchar2(30);
929 BEGIN
930   l_imp_batch_src_type := NULL;
931   BEGIN
932     SELECT batch_source_type
933     INTO   l_imp_batch_src_type
934     FROM   ra_batch_sources
935     WHERE  batch_source_id = p_batch_source_id;
936   EXCEPTION
937     WHEN OTHERS THEN
938          l_imp_batch_src_type := NULL;
939   END;
940   RETURN l_imp_batch_src_type;
941 END get_batch_source_type;
942 
943 FUNCTION validate_transaction_date
944                       (p_trx_date IN DATE,
945                        p_batch_source_id IN NUMBER) RETURN VARCHAR2 IS
946   l_return_code varchar2(30);
947 BEGIN
948   l_return_code := 'SUCCESS';
949   BEGIN
950     SELECT 'SUCCESS'
951     INTO   l_return_code
952     FROM   ra_batch_sources
953     WHERE  batch_source_id = p_batch_source_id
954     AND    batch_source_type = 'FOREIGN'
955     AND    p_trx_date BETWEEN
956                  to_date(global_attribute4,'YYYY/MM/DD HH24:MI:SS')
957             AND  SYSDATE + to_number(global_attribute5);
958   EXCEPTION
959     WHEN OTHERS THEN
960         l_return_code := 'JL_AR_AR_INVALID_TRX_DATE';
961   END;
962   RETURN l_return_code;
963 END validate_transaction_date;
964 
965 
966 FUNCTION get_printing_count (p_cust_trx_id IN VARCHAR2) RETURN NUMBER IS
967   l_return_code number(38) := 0;
968 BEGIN
969   BEGIN
970     SELECT nvl(printing_count,0)
971     INTO   l_return_code
972     FROM   ra_customer_trx
973     WHERE  customer_trx_id  = p_cust_trx_id;
974   EXCEPTION
975     WHEN OTHERS THEN
976         l_return_code := 0;
977   END;
978   RETURN l_return_code;
979 END get_printing_count;
980 
981 FUNCTION get_branch_number_method RETURN VARCHAR2 IS
982   l_br_numb_method varchar2(20);
983 BEGIN
984   BEGIN
985     SELECT global_attribute1
986     INTO   l_br_numb_method
987     FROM   ar_system_parameters;
988   EXCEPTION
989     WHEN OTHERS THEN
990         l_br_numb_method := null;
991   END;
992   RETURN l_br_numb_method;
993 END get_branch_number_method;
994 
995 FUNCTION get_point_of_sale_code(p_inv_org_id IN VARCHAR2) RETURN VARCHAR2 IS
996   l_br_numb_code varchar2(4);
997 BEGIN
998   BEGIN
999     SELECT hl.global_attribute7
1000     INTO   l_br_numb_code
1001     FROM   hr_locations hl, hr_organization_units hou
1002     WHERE  hl.location_id = hou.location_id
1003     AND    hou.organization_id = p_inv_org_id;
1004   EXCEPTION
1005     WHEN OTHERS THEN
1006         l_br_numb_code := -1;
1007   END;
1008   IF l_br_numb_code IS NULL THEN
1009      l_br_numb_code := -1;
1010   END IF;
1011   RETURN l_br_numb_code;
1012 END get_point_of_sale_code;
1013 
1014 FUNCTION get_doc_letter(p_batch_source_id  IN NUMBER) RETURN VARCHAR2 IS
1015   l_doc_letter varchar2(4);
1016 BEGIN
1017   BEGIN
1018     SELECT substr(rbs.global_attribute3,1,1)
1019     INTO   l_doc_letter
1020     FROM   ra_batch_sources rbs
1021     WHERE  rbs.batch_source_id = p_batch_source_id;
1022   EXCEPTION
1023     WHEN OTHERS THEN
1024         l_doc_letter := null;
1025   END;
1026   RETURN l_doc_letter;
1027 END get_doc_letter;
1028 
1029 FUNCTION get_branch_number(p_batch_source_id  IN NUMBER) RETURN VARCHAR2 IS
1030   l_br_number varchar2(4);
1031 BEGIN
1032   BEGIN
1033     SELECT lpad(substr(rbs.global_attribute2,1,4),4,'0')
1034     INTO   l_br_number
1035     FROM   ra_batch_sources rbs
1036     WHERE  rbs.batch_source_id = p_batch_source_id;
1037   EXCEPTION
1038     WHEN OTHERS THEN
1039         l_br_number := null;
1040   END;
1041   RETURN l_br_number;
1042 END get_branch_number;
1043 
1044 FUNCTION get_last_trx_date(p_batch_source_id  IN NUMBER) RETURN DATE IS
1045   l_last_trx_date date;
1046 BEGIN
1047   BEGIN
1048     SELECT to_date(rbs.global_attribute4,'YYYY/MM/DD HH24:MI:SS')
1049     INTO   l_last_trx_date
1050     FROM   ra_batch_sources rbs
1051     WHERE  rbs.batch_source_id = p_batch_source_id;
1052   EXCEPTION
1053     WHEN OTHERS THEN
1054         l_last_trx_date := null;
1055   END;
1056   RETURN l_last_trx_date;
1057 END get_last_trx_date;
1058 
1059 FUNCTION get_adv_days(p_batch_source_id  IN NUMBER) RETURN VARCHAR2 IS
1060   l_adv_days varchar2(5);
1061 BEGIN
1062   BEGIN
1063     SELECT substr(rbs.global_attribute5,1,3)
1064     INTO   l_adv_days
1065     FROM   ra_batch_sources rbs
1066     WHERE  rbs.batch_source_id = p_batch_source_id;
1067   EXCEPTION
1068     WHEN OTHERS THEN
1069         l_adv_days := null;
1070   END;
1071   RETURN l_adv_days;
1072 END get_adv_days;
1073 
1074 FUNCTION get_hr_branch_number(p_location_id  IN NUMBER) RETURN VARCHAR2 IS
1075   l_hr_br_number varchar2(4);
1076 BEGIN
1077   BEGIN
1078     SELECT lpad(substr(hl.global_attribute7,1,4),4,'0')
1079     INTO   l_hr_br_number
1080     FROM   hr_locations  hl
1081     WHERE  hl.location_id  = p_location_id;
1082   EXCEPTION
1083     WHEN OTHERS THEN
1084         l_hr_br_number := null;
1085   END;
1086   RETURN l_hr_br_number;
1087 END get_hr_branch_number;
1088 
1089 FUNCTION trx_num_gen(p_batch_source_id   IN NUMBER,
1090                      p_trx_number        IN VARCHAR2) RETURN VARCHAR2 IS
1091     l_country_code 	      VARCHAR2(2);
1092     l_document_letter         VARCHAR2(1);
1093     l_branch_number           VARCHAR2(4);
1094     l_auto_trx_numbering_flag ra_batch_sources_all.auto_trx_numbering_flag%TYPE;
1095     l_trx_number              ra_customer_trx_all.trx_number%TYPE;
1096     l_org_id                  NUMBER;
1097     l_ledger_id               NUMBER;
1098     l_batch_src_type          ra_batch_sources_all.batch_source_type%TYPE;
1099     l_source_id               ra_batch_sources_all.batch_source_id%TYPE;
1100     l_seq_name VARCHAR2(100);
1101 -- This function is being called from auto invoice.
1102     l_trx_num_cursor INTEGER;
1103     --l_seq_name VARCHAR2(100);
1104     seq_no number;
1105     l_count number;
1106     l_string varchar2(1000);
1107 
1108 BEGIN
1109   l_org_id := mo_global.get_current_org_id;
1110   l_ledger_id := NULL;
1111   l_country_code := JG_ZZ_SHARED_PKG.GET_COUNTRY(l_org_id,l_ledger_id);
1112   -- MOAC changes
1113   --l_country_code := FND_PROFILE.VALUE('JGZZ_COUNTRY_CODE');
1114   l_trx_number := p_trx_number;
1115 
1116   IF l_country_code = 'AR' THEN
1117 
1118      SELECT batch_source_type into l_batch_src_type
1119      FROM ra_batch_sources_all
1120      WHERE batch_source_id = p_batch_source_id;
1121 
1122      IF l_batch_src_type <> 'FOREIGN' THEN
1123 
1124        SELECT global_attribute1 into l_source_id
1125        FROM ra_batch_sources_all
1126        WHERE batch_source_id = p_batch_source_id;
1127 
1128        SELECT substr(global_attribute2,1,4),
1129               substr(global_attribute3,1,1),
1130               auto_trx_numbering_flag
1131        INTO   l_branch_number,
1132               l_document_letter,
1133               l_auto_trx_numbering_flag
1134        FROM   ra_batch_sources_all
1135        WHERE  batch_source_id = l_source_id;
1136     --Bug#7697795
1137     --Start
1138       l_seq_name := 'RA_TRX_NUMBER_'
1139 	               || to_char(l_source_id)
1140 		       || '_'
1141                        || l_org_id
1142 		       || '_S';
1143 
1144 
1145      l_string := 'select '||
1146                        l_seq_name||'.nextval seq_number '||
1147                        'from dual' ;
1148 
1149      execute immediate l_string into seq_no;
1150      l_trx_number := seq_no;
1151 
1152      --End
1153 
1154     ELSE
1155 
1156        SELECT substr(global_attribute2,1,4),
1157               substr(global_attribute3,1,1),
1158               auto_trx_numbering_flag
1159        INTO   l_branch_number,
1160               l_document_letter,
1161               l_auto_trx_numbering_flag
1162        FROM   ra_batch_sources_all
1163        WHERE  batch_source_id = p_batch_source_id;
1164 
1165     END IF;
1166 
1167        IF l_auto_trx_numbering_flag = 'Y' AND
1168             substr(p_trx_number,1,6) <> l_document_letter || '-' ||
1169             l_branch_number THEN
1170           l_trx_number := l_document_letter || '-' || l_branch_number || '-'
1171                                || lpad(l_trx_number,8,'0');
1172        END IF;
1173   END IF;
1174 
1175   RETURN l_trx_number;
1176   EXCEPTION
1177   WHEN OTHERS THEN
1178       RAISE;
1179 END;
1180 
1181 BEGIN
1182 
1183 PG_DEBUG :=  NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
1184 
1185 END JL_AR_DOC_NUMBERING_PKG;