DBA Data[Home] [Help]

PACKAGE BODY: APPS.JAI_AR_UTILS_PKG

Source


1 PACKAGE BODY jai_ar_utils_pkg
2 /* $Header: jai_ar_utils.plb 120.6 2008/01/21 11:25:58 ssumaith ship $ */
3 AS
4 
5 /* --------------------------------------------------------------------------------------
6 Filename:
7 
8 Change History:
9 
10 Date         Bug         Remarks
11 
12 07/12/2005   4866533 Hjujjuru  File version 120.3
13                     added the who columns in the insert into tables JAI_AP_ETDS_REQUESTS and JAI_AP_ETDS_T.
14                     Dependencies Due to this bug:-
15                     None
16 
17 01/11/2006 SACSETHI for bug 5228046, File version 120.4
18             Forward porting the change in 11i bug 5365523 (Additional CVD Enhancement).
19             This bug has datamodel and spec changes.
20 16/04/2007 KUNKUMAR for bugno 5989740
21            Forward porting to R12 from 11i version 115.3.6107.2
22 
23 ---------    ----------  -------------------------------------------------------------
24 08-Jun-2005  Version 116.2 jai_ar_utils -Object is Modified to refer to New DB Entity names in place of Old DB Entity Names
25     as required for CASE COMPLAINCE.
26 */
27 
28 PROCEDURE recalculate_tax(transaction_name VARCHAR2,
29         P_tax_category_id NUMBER,
30         p_header_id NUMBER,
31         p_line_id NUMBER,
32         p_assessable_value NUMBER default 0,
33         p_tax_amount IN OUT NOCOPY NUMBER,
34         p_currency_conv_factor NUMBER,
35         p_inventory_item_id NUMBER,
36         p_line_quantity NUMBER,
37         p_uom_code VARCHAR2,
38         p_vendor_id NUMBER,
39         p_currency VARCHAR2,
40         p_creation_date DATE,
41         p_created_by NUMBER,
42         p_last_update_date DATE,
43         p_last_updated_by NUMBER,
44         p_last_update_login NUMBER ,
45         p_vat_assessable_Value NUMBER Default 0
46         )
47 IS
48 TYPE num_tab IS TABLE OF number
49   INDEX BY BINARY_INTEGER;
50   TYPE tax_amt_num_tab IS TABLE OF number
51   INDEX BY BINARY_INTEGER;
52   p1 num_tab;
53   p2 num_tab;
54   p3 num_tab;
55   p4 num_tab;
56   p5 num_tab;
57 
58 
59 -- Date 01-NOV-2006 Bug 5228046 added by SACSETHI  ( added column from Precedence 6 to 10 )
60 -- START BUG 5228046
61 
62   p6 num_tab;
63   p7 num_tab;
64   p8 num_tab;
65   p9 num_tab;
66   p10 num_tab;
67 
68 -- END BUG 5228046
69 
70   tax_rate_tab num_tab;
71   tax_type_tab num_tab;
72   tax_amt_tab tax_amt_num_tab;
73   base_tax_amt_tab tax_amt_num_tab;
74   end_date_tab num_tab;
75   rounding_factor_tab num_tab;
76 
77 
78 /* Added by Ramananda for bug#4407165 */
79   lv_object_name CONSTANT VARCHAR2(61) := 'jai_ar_utils_pkg.recalculate_tax';
80 
81   bsln_amt number; -- := p_tax_amount; --Ramananda for File.Sql.35
82   v_conversion_rate number; -- := 0;   --Ramananda for File.Sql.35
83   v_currency_conv_factor number; -- := p_currency_conv_factor; --Ramananda for File.Sql.35
84   v_tax_amt number;  --SACSETHI for File.Sql.35
85   vamt  number;  --SACSETHI for File.Sql.35
86   v_amt number;
87   row_count number ; --SACSETHI for File.Sql.35
88 
89   counter number;
90   max_iter number ;   --SACSETHI for File.Sql.35
91 
92 
93   CURSOR tax_cur(p_line_id IN Number) IS
94   SELECT a.tax_id, a.tax_line_no lno, b.adhoc_flag, a.base_tax_amount, a.func_tax_amount,
95          a.precedence_1 p_1, a.precedence_2 p_2, a.precedence_3 p_3, a.precedence_4 p_4, a.precedence_5 p_5,
96          a.precedence_6 p_6, a.precedence_7 p_7, a.precedence_8 p_8, a.precedence_9 p_9, a.precedence_10 p_10,
97          b.tax_rate, b.tax_amount, b.uom_code, b.end_date valid_date, b.rounding_factor,
98          DECODE(rgm_tax_types.regime_Code,jai_constants.vat_regime, 4,  /* added by ssumaith - bug# 4245053*/
99                   decode(upper(b.tax_type),
100                           'EXCISE',          1,
101                           'ADDL. EXCISE',    1,
102                           'OTHER EXCISE',    1,
103                           'CVD',             1,
104                           'TDS',             2,
105                           -- Modified by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
106                           -- change tax_type_val
107                           -------------------------------------------------------------------------
108                           'EXCISE_EDUCATION_CESS'    , 6,
109                           'CVD_EDUCATION_CESS'       , 6,
110                           'SH_EXCISE_EDUCATION_CESS' , 6,--Added by kundan kumar for bug#5907436
111                           'SH_CVD_EDUCATION_CESS'    , 6, --Added by kundan kumar for bug#5907436    Added by kunkumar for forward porting
112                           -------------------------------------------------------------------------
113                           -- Modified by Jia Li for Tax Inclusive Computations on 2007/12/11, End
114                           0
115                         )
116                )tax_type_val,
117          b.mod_cr_Percentage, b.vendor_id, b.tax_type
118        , b.inclusive_tax_flag -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
119     FROM JAI_AR_TRX_TAX_LINES a, JAI_CMN_TAXES_ALL b ,
120          jai_regime_tax_types_v rgm_tax_types   /* added by ssumaith - bug# 4245053*/
121     WHERE a.link_to_cust_trx_line_id = p_line_id
122     AND   a.tax_id = b.tax_id
123     AND   rgm_tax_types.tax_type (+) = b.tax_type /* added by ssumaith - bug# 4245053*/
124    ORDER BY a.tax_line_no;
125 
126   CURSOR uom_class_cur(p_line_uom_code IN varchar2, p_tax_line_uom_code IN varchar2) IS
127   SELECT A.uom_class
128     FROM mtl_units_of_measure A, mtl_units_of_measure B
129    WHERE A.uom_code = p_line_uom_code
130      AND B.uom_code = p_tax_line_uom_code
131      AND A.uom_class = B.uom_class;
132 
133   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
134   -------------------------------------------------------------------------
135   TYPE char_tab IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;
136   tax_amt_rate_tax_tab    TAX_AMT_NUM_TAB;
137   tax_amt_non_rate_tab    TAX_AMT_NUM_TAB;
138   func_tax_amt_tab        TAX_AMT_NUM_TAB;
139   tax_rate_zero_tab       NUM_TAB;
140   tax_rate_per_rupee      NUM_TAB;
141   tax_target_tab          NUM_TAB;
142   inclu_tax_tab           CHAR_TAB;
143   ln_assessable_value     NUMBER;
144   ln_vat_assessable_value NUMBER;
145   ln_vamt_nr                 NUMBER(38,10);
146   ln_bsln_amt_nr             NUMBER(38,10);
147   ln_v_tax_amt_nr            NUMBER(38,10);
148   ln_v_func_tax_amt          NUMBER(38,10);
149   ln_exclusive_price         NUMBER(38,10);
150   ln_total_non_rate_tax      NUMBER(38,10);
151   ln_total_tax_per_rupee     NUMBER(38,10);
152   -------------------------------------------------------------------------
153   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
154 
155    BEGIN
156 
157 /*---------------------------------------------
158 
159 1. 2005/03/10       ssumaith - bug# 4245053 - File version 115.1
160 
161                     Taxes under the vat regime needs to be calculated based on the vat assessable value setup done.
162                     In the vendor additional information screen and supplier additional information screen, a place
163                     has been given to capture the vat assessable value.
164 
165                     This needs to be used for the calculation of the taxes registered under vat regime.
166 
167                     This  change has been done by using the view jai_regime_tax_types_v - and outer joining it with the
168                     JAI_CMN_TAXES_ALL table based on the tax type column.
169 
170                     Added a parameter p_vat_assessable_Value NUMBER for this procedure.
171 
172                    Dependency due to this bug - Huge
173 
174                    It uses many tables . views and indexes created as part of the VAT base bug - 4245089
175                    This patch should always be accompanied by the VAT consolidated patch - 4245089
176 
177 2   04-Aug-2005  Bug4535701. Added by Lakshmi Gopalsami
178                  Commented the references to WHO columns for
179      global temporary table JAI_AR_TRX_APPS_RELS_T
180 
181 Future Dependencies For the release Of this Object:-
182 (Please add a row in the section below only if your bug introduces a dependency due to spec change/ A new call to a object/
183 A datamodel change )
184 
185 ----------------------------------------------------------------------------------------------------------------------------------------------------
186 Current Version       Current Bug    Dependent           Files                    Version   Author   Date         Remarks
187 Of File                              On Bug/Patchset     Dependent On
188 jai_ar_utils_pkg.recalculate_tax_p.sql
189 ----------------------------------------------------------------------------------------------------------------------------------------------------
190 115.1                 4245053       IN60106 +                                              ssumaith             Service Tax and VAT Infrastructure are created
191                                     4146708 +                                                                   based on the bugs - 4146708 and 4545089 respectively.
192                                     4245089
193 *************************************************************************************************************************/
194 
195   bsln_amt          := p_tax_amount; --Ramananda for File.Sql.35
196   v_conversion_rate := 0;   --Ramananda for File.Sql.35
197   v_currency_conv_factor := p_currency_conv_factor; --Ramananda for File.Sql.35
198   max_iter := 15;
199   v_tax_amt :=0 ;
200   vamt  := 0 ;
201   row_count :=0 ;
202 
203   ln_vamt_nr      := 0;   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
204   ln_v_tax_amt_nr := 0;   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
205   ln_bsln_amt_nr  := 0;   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
206 
207   FOR rec in tax_cur(p_line_id) LOOP
208   p1(rec.lno) := nvl(rec.p_1,-1);
209   p2(rec.lno) := nvl(rec.p_2,-1);
210   p3(rec.lno) := nvl(rec.p_3,-1);
211   p4(rec.lno) := nvl(rec.p_4,-1);
212   p5(rec.lno) := nvl(rec.p_5,-1);
213 
214 -- Date 01-NOV-2006 Bug 5228046 added by SACSETHI  ( added column from Precedence 6 to 10 )
215 -- START BUG 5228046
216 
217   p6(rec.lno) := nvl(rec.p_6,-1);
218   p7(rec.lno) := nvl(rec.p_7,-1);
219   p8(rec.lno) := nvl(rec.p_8,-1);
220   p9(rec.lno) := nvl(rec.p_9,-1);
221   p10(rec.lno) := nvl(rec.p_10,-1);
222 
223 -- END BUG 5228046
224 
225   tax_rate_tab(rec.lno) := nvl(rec.tax_rate,0);
226   tax_type_tab(rec.lno) := rec.tax_type_val;
227   tax_amt_tab(rec.lno) := 0;
228   base_tax_amt_tab(rec.lno) := 0;
229         rounding_factor_tab(rec.lno) := NVL(rec.rounding_factor, 0);
230 
231     -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
232     -----------------------------------------------------------------------
233     tax_rate_per_rupee(rec.lno) := NVL(rec.tax_rate, 0)/100;
234     ln_total_tax_per_rupee         := 0;
235     inclu_tax_tab(rec.lno)      := NVL(rec.inclusive_tax_flag, 'N');
236 
237     IF rec.tax_rate IS NULL
238     THEN
239       tax_rate_zero_tab(rec.lno) := 0;
240     ELSIF rec.tax_rate = 0
241     THEN
242       tax_rate_zero_tab(rec.lno) := -9999;
243     ELSE
244       tax_rate_zero_tab(rec.lno) := rec.tax_rate;
245     END IF; -- rec.tax_rate is null
246 
247     tax_amt_rate_tax_tab(rec.lno) := 0;
248     tax_amt_non_rate_tab(rec.lno) := 0;
249     -----------------------------------------------------------------------
250     -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
251 
252   IF tax_rate_tab(rec.lno) = 0
253   THEN
254     FOR uom_cls IN uom_class_cur(p_uom_code, rec.uom_code) LOOP
255             INV_CONVERT.inv_um_conversion( p_uom_code, rec.uom_code, p_inventory_item_id, v_conversion_rate);
256       IF nvl(v_conversion_rate, 0) <= 0
257       THEN
258         INV_CONVERT.inv_um_conversion( p_uom_code, rec.uom_code, 0, v_conversion_rate);
259           IF nvl(v_conversion_rate, 0) <= 0
260           THEN
261                   v_conversion_rate := 0;
262             END IF;
263          END IF;
264        tax_amt_tab(rec.lno) := ROUND(nvl(rec.tax_amount * v_conversion_rate, 0) * p_line_quantity, NVL(rec.rounding_factor, 0));
265         -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
266         -----------------------------------------------------------------------
267         tax_amt_non_rate_tab(rec.lno) := NVL(rec.tax_amount * v_conversion_rate, 0) * p_line_quantity;
268         base_tax_amt_tab(rec.lno) := tax_amt_non_rate_tab(rec.lno);
269         -----------------------------------------------------------------------
270         -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
271     END LOOP;
272         END IF;
273 
274   IF rec.valid_date is NULL or rec.valid_date >= sysdate
275   THEN
276     end_date_tab(rec.lno) := 1;
277   ELSE
278           tax_amt_tab(rec.lno)  := 0;
279     end_date_tab(rec.lno) := 0;
280       END IF;
281       row_count := row_count + 1;
282      END LOOP;
283 
284   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
285   -----------------------------------------------------------------------
286   IF p_assessable_value <> p_tax_amount
287   THEN
288     ln_assessable_value := p_assessable_value;
289   ELSE
290     ln_assessable_value := 1;
291   END IF;
292 
293   IF p_vat_assessable_value <> p_tax_amount
294   THEN
295     ln_vat_assessable_value := p_vat_assessable_value;
296   ELSE
297     ln_vat_assessable_value := 1;
298   END IF;
299   -----------------------------------------------------------------------
300   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
301 
302   FOR I in 1..row_count LOOP
303    -- Delete by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
304    -----------------------------------------------------------------------
305    /*
306   IF tax_type_tab(I) = 1
307   THEN
308       bsln_amt := p_assessable_value;
309   ELSIF tax_type_tab(I) = 4 THEN
310      bsln_amt := p_vat_assessable_value;
311   ELSE
312       bsln_amt := p_tax_amount;
313   END IF;
314     */
315    -----------------------------------------------------------------------
316    -- Delete by Jia Li for Tax Inclusive Computations on 2007/12/11, End
317 
318     -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
319     -----------------------------------------------------------------------
320     IF end_date_tab(I) <> 0
321     THEN
322       IF tax_type_tab(I) = 1
323       THEN
324         IF ln_assessable_value = 1
325         THEN
326           bsln_amt := 1;
327           ln_bsln_amt_nr := 0;
328         ELSE
329           bsln_amt := 0;
330           ln_bsln_amt_nr := ln_assessable_value;
331         END IF;
332       ELSIF tax_type_tab(I) = 4
333       THEN
334         IF ln_vat_assessable_value = 1
335         THEN
336           bsln_amt := 1;
337           ln_bsln_amt_nr := 0;
338         ELSE
339           bsln_amt := 0;
340           ln_bsln_amt_nr := ln_vat_assessable_value;
341         END IF;
342       ELSIF tax_type_tab(I) = 6
343       THEN
344         bsln_amt := 0;
345         ln_bsln_amt_nr := 0;
346       ELSE
347         bsln_amt := 1;
348         ln_bsln_amt_nr := 0;
349      END IF; -- tax_type_tab(I) = 1
350     -----------------------------------------------------------------------
351     -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
352 
353   IF tax_rate_tab(I) <> 0
354     THEN
355    IF p1(I) < I and p1(I) not in (-1,0) THEN
356         vamt := vamt + nvl(tax_amt_tab(p1(I)),0);
357         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p1(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
358    ELSIF p1(I) = 0 THEN
359         vamt := vamt + bsln_amt;
360         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
361     END IF;
362 
363     IF p2(I) < I and p2(I) not in (-1,0) THEN
364         vamt := vamt + nvl(tax_amt_tab(p2(I)),0);
365         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p2(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
366     ELSIF p2(I) = 0 THEN
367         vamt := vamt + bsln_amt;
368         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
369     END IF;
370 
371     IF p3(I) < I and p3(I) not in (-1,0) THEN
372         vamt := vamt + nvl(tax_amt_tab(p3(I)),0);
373         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p3(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
374     ELSIF p3(I) = 0 THEN
375         vamt := vamt + bsln_amt;
376         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
377     END IF;
378 
379     IF p4(I) < I and p4(I) not in (-1,0) THEN
380         vamt := vamt + nvl(tax_amt_tab(p4(I)),0);
381         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p4(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
382     ELSIF p4(I) = 0 THEN
383         vamt := vamt + bsln_amt;
384         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
385     END IF;
386 
387     IF p5(I) < I and p5(I) not in (-1,0) THEN
388         vamt := vamt + nvl(tax_amt_tab(p5(I)),0);
389         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p5(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
390     ELSIF p5(I) = 0 THEN
391         vamt := vamt + bsln_amt;
392         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
393     END IF;
394 
395 -- Date 01-NOV-2006 Bug 5228046 added by SACSETHI  ( added column from Precedence 6 to 10 )
396 -- START BUG 5228046
397     IF p6(I) < I and p6(I) not in (-1,0) THEN
398 	      vamt := vamt + nvl(tax_amt_tab(p6(I)),0);
399         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p6(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
400     ELSIF p6(I) = 0 THEN
401 	      vamt := vamt + bsln_amt;
402         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
403     END IF;
404 
405     IF p7(I) < I and p7(I) not in (-1,0) THEN
406 	      vamt := vamt + nvl(tax_amt_tab(p7(I)),0);
407         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p7(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
408     ELSIF p7(I) = 0 THEN
409 	      vamt := vamt + bsln_amt;
410         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
411     END IF;
412 
413     IF p8(I) < I and p8(I) not in (-1,0) THEN
414         vamt := vamt + nvl(tax_amt_tab(p8(I)),0);
415         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p8(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
416     ELSIF p8(I) = 0 THEN
417         vamt := vamt + bsln_amt;
418         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
419     END IF;
420 
421     IF p9(I) < I and p9(I) not in (-1,0) THEN
422         vamt := vamt + nvl(tax_amt_tab(p9(I)),0);
423         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p9(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
424     ELSIF p9(I) = 0 THEN
425         vamt := vamt + bsln_amt;
426         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
427     END IF;
428 
429     IF p10(I) < I and p10(I) not in (-1,0) THEN
430         vamt := vamt + nvl(tax_amt_tab(p10(I)),0);
431         ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p10(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
432     ELSIF p10(I) = 0 THEN
433         vamt := vamt + bsln_amt;
434         ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
435     END IF;
436 
437 -- END BUG 5228046
438 
439 
440        v_tax_amt := v_tax_amt + (vamt * (tax_rate_tab(I)/100));
441        base_tax_amt_tab(I) := vamt;
442        tax_amt_tab(I) := nvl(tax_amt_tab(I),0) + v_tax_amt;
443 
444       -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
445       -----------------------------------------------------------------------
446       ln_v_tax_amt_nr := ln_v_tax_amt_nr + (ln_vamt_nr * (tax_rate_tab(I)/100));
447       tax_amt_non_rate_tab(I) := NVL(tax_amt_non_rate_tab(I), 0) + ln_v_tax_amt_nr;
448       tax_amt_rate_tax_tab(I) := tax_amt_tab(I);
449       -----------------------------------------------------------------------
450       -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
451 
452        /*IF end_date_tab(I) = 0
453        THEN
454 
455     tax_amt_tab(I) := 0;
456     base_tax_amt_tab(I) := 0;
457        ELSIF end_date_tab(I) = 1 THEN
458          IF tax_type_tab(I) IN (1, 2)
459          THEN
460      v_tax_amt := ROUND(v_tax_amt);
461          END IF;
462          tax_amt_tab(I) := nvl(tax_amt_tab(I),0) + v_tax_amt;
463        END IF;*/
464       vamt := 0;
465       v_tax_amt := 0;
466       ln_vamt_nr      := 0;  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
467       ln_v_tax_amt_nr := 0;  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
468 
469     END IF;
470   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
471   -----------------------------------------------------------------------
472   ELSE
473     tax_amt_tab(I) := 0;
474     base_tax_amt_tab(I) := 0;
475   END IF; -- end_date_tab(I) <> 0
476   -----------------------------------------------------------------------
477   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
478   END LOOP;
479 
480 /*for i in 1 .. row_count loop
481  insert into xc values( ' Tax Amt from I loop in bkend Line ' || to_char( i ) || ' is ' || to_char( tax_amt_tab( I ) ) );
482 end loop;*/
483   FOR I in 1..row_count LOOP
484     -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
485     -----------------------------------------------------------------------
486     IF end_date_tab(I) <> 0
487     THEN
488     -----------------------------------------------------------------------
489     -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
490       IF tax_rate_tab(I) <> 0 THEN
491         IF p1(I) > I THEN
492           vamt := vamt + nvl(tax_amt_tab(p1(I)),0);
493           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p1(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
494         END IF;
495         IF p2(I) > I  THEN
496           vamt := vamt + nvl(tax_amt_tab(p2(I)),0);
497           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p2(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
498         END IF;
499         IF p3(I) > I  THEN
500           vamt := vamt + nvl(tax_amt_tab(p3(I)),0);
501           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p3(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
502         END IF;
503         IF p4(I) > I THEN
504           vamt := vamt + nvl(tax_amt_tab(p4(I)),0);
505           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p4(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
506         END IF;
507         IF p5(I) > I THEN
508           vamt := vamt + nvl(tax_amt_tab(p5(I)),0);
509           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p5(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
510         END IF;
511 
512     -- Date 01-NOV-2006 Bug 5228046 added by SACSETHI  ( added column from Precedence 6 to 10 )
513     -- START BUG 5228046
514         IF p6(I) > I THEN
515           vamt := vamt + nvl(tax_amt_tab(p6(I)),0);
516           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p6(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
517         END IF;
518         IF p7(I) > I  THEN
519           vamt := vamt + nvl(tax_amt_tab(p7(I)),0);
520           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p7(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
521         END IF;
522         IF p8(I) > I  THEN
523           vamt := vamt + nvl(tax_amt_tab(p8(I)),0);
524           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p8(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
525         END IF;
526         IF p9(I) > I THEN
527           vamt := vamt + nvl(tax_amt_tab(p9(I)),0);
528           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p9(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
529         END IF;
530         IF p10(I) > I THEN
531           vamt := vamt + nvl(tax_amt_tab(p10(I)),0);
532           ln_vamt_nr := ln_vamt_nr + NVL(tax_amt_non_rate_tab(p10(I)), 0); -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
533         END IF;
534 
535 -- END BUG 5228046
536 
537 
538         v_tax_amt := v_tax_amt + (vamt * (tax_rate_tab(I)/100));
539 
540         base_tax_amt_tab(I) := vamt;  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
541         ln_v_tax_amt_nr := ln_v_tax_amt_nr + (ln_vamt_nr * (tax_rate_tab(I)/100));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
542 
543         IF vamt <> 0 THEN
544            base_tax_amt_tab(I) := base_tax_amt_tab(I) + vamt;
545         END IF;
546 
547         tax_amt_tab(I) := nvl(tax_amt_tab(I),0) + v_tax_amt;
548         -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
549         -----------------------------------------------------------------------
550         tax_amt_non_rate_tab(I) := NVL(tax_amt_non_rate_tab(I), 0) * ln_v_tax_amt_nr;
551         tax_amt_rate_tax_tab(I) := tax_amt_tab(I);
552         ln_vamt_nr := 0;
553         ln_v_tax_amt_nr := 0;
554         -----------------------------------------------------------------------
555         -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
556 
557         /*IF end_date_tab(I) = 0 THEN
558 
559         tax_amt_tab(I) := 0;
560         base_tax_amt_tab(I) := 0;
561         ELSIF end_date_tab(I) = 1 THEN
562           IF tax_type_tab(I) IN (1, 2)
563           THEN
564         v_tax_amt := ROUND(v_tax_amt);
565           END IF;
566           tax_amt_tab(I) := nvl(tax_amt_tab(I),0) + v_tax_amt;
567         END IF;*/
568         vamt := 0;
569         v_tax_amt := 0;
570       END IF;
571 
572     -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
573     -----------------------------------------------------------------------
574     ELSE
575       base_tax_amt_tab(I) := vamt;
576       tax_amt_tab(I) := 0;
577     END IF; -- end_date_tab(I) <> 0
578     -----------------------------------------------------------------------
579     -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
580   END LOOP;
581 
582 
583 /*for i in 1 .. row_count loop
584  insert into xc values( ' Tax Amt from II loop in bkend Line ' || to_char( i ) || ' is ' || to_char( tax_amt_tab( I ) ) );
585 end loop;*/
586   FOR counter IN 1 .. max_iter LOOP
587     vamt := 0;
588     ln_vamt_nr := 0; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/07
589     v_tax_amt := 0;
590 
591     FOR i IN 1 .. row_count LOOP
592 --changed > to <> allow -ve tax rate computation - Gaurav 06-dec-99
593       -- Deleted by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
594       ------------------------------------------------------------------------
595       /*
596       IF tax_rate_tab( i ) <> 0 THEN
597    IF tax_type_tab( I ) = 1 THEN
598         v_amt := p_assessable_value;
599    ELSIF tax_type_tab( I ) = 4 THEN
600         v_amt := p_vat_assessable_value;
601    ELSE
602       IF p_assessable_value IN ( 0, -1 ) OR tax_type_tab( I ) <> 1 THEN
603          v_amt := p_tax_amount;
604       END IF;
605    END IF;
606       */
607       ------------------------------------------------------------------------
608       -- Deleted by Jia Li for Tax Inclusive Computations on 2007/12/11, End
609 
610       -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
611       -----------------------------------------------------------------------
612       IF ( tax_rate_tab(I) <> 0 OR tax_rate_zero_tab(I) = -9999 )
613          AND
614          ( end_date_tab(I) <> 0 )
615       THEN
616         IF tax_type_tab(I) = 1
617         THEN
618           IF ln_assessable_value = 1
619           THEN
620             v_amt := 1;
621             ln_bsln_amt_nr := 0;
622           ELSE
623             v_amt := 0;
624             ln_bsln_amt_nr := ln_assessable_value;
625           END IF;
626         ELSIF tax_type_tab(I) = 4
627         THEN
628           IF ln_vat_assessable_value = 1
629           THEN
630             v_amt := 1;
631             ln_bsln_amt_nr := 0;
632           ELSE
633             v_amt := 0;
634             ln_bsln_amt_nr := ln_vat_assessable_value;
635           END IF;
636         ELSIF tax_type_tab(I) = 6
637         THEN
638           v_amt := 0;
639           ln_bsln_amt_nr := 0;
640         ELSE
641           v_amt := 1;
642           ln_bsln_amt_nr := 0;
643         END IF; -- tax_type_tab(I) = 1
644       -----------------------------------------------------------------------
645       -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
646 
647        IF p1( i ) <> -1 THEN
648           IF p1( i ) <> 0 THEN
649             vamt := vamt + tax_amt_tab( p1( I ) );
650             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p1(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
651           ELSIF p1(i) = 0 THEN
652             vamt := vamt + v_amt;
653             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
654           END IF;
655        END IF;
656        IF p2( i ) <> -1 THEN
657           IF p2( i ) <> 0 THEN
658             vamt := vamt + tax_amt_tab( p2( I ) );
659             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p2(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
660           ELSIF p2(i) = 0 THEN
661             vamt := vamt + v_amt;
662             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
663           END IF;
664        END IF;
665        IF p3( i ) <> -1 THEN
666           IF p3( i ) <> 0 THEN
667             vamt := vamt + tax_amt_tab( p3( I ) );
668             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p3(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
669           ELSIF p3(i) = 0 THEN
670             vamt := vamt + v_amt;
671             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
672           END IF;
673        END IF;
674        IF p4( i ) <> -1 THEN
675           IF p4( i ) <> 0 THEN
676             vamt := vamt + tax_amt_tab( p4( i ) );
677             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p4(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
678           ELSIF p4(i) = 0 THEN
679             vamt := vamt + v_amt;
680             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
681           END IF;
682        END IF;
683 
684        IF p5( i ) <> -1 THEN
685           IF p5( i ) <> 0 THEN
686             vamt := vamt + tax_amt_tab( p5( i ) );
687             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p5(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
688           ELSIF p5(i) = 0 THEN
689             vamt := vamt + v_amt;
690             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
691           END IF;
692        END IF;
693 
694     -- Date 01-NOV-2006 Bug 5228046 added by SACSETHI  ( added column from Precedence 6 to 10 )
695     -- START BUG 5228046
696 
697        IF p6( i ) <> -1 THEN
698           IF p6( i ) <> 0 THEN
699             vamt := vamt + tax_amt_tab( p6( I ) );
700             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p6(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
701           ELSIF p6(i) = 0 THEN
702             vamt := vamt + v_amt;
703             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
704           END IF;
705        END IF;
706        IF p7( i ) <> -1 THEN
707           IF p7( i ) <> 0 THEN
708             vamt := vamt + tax_amt_tab( p7( I ) );
709             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p7(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
710           ELSIF p7(i) = 0 THEN
711             vamt := vamt + v_amt;
712             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
713           END IF;
714        END IF;
715        IF p8( i ) <> -1 THEN
716           IF p8( i ) <> 0 THEN
717             vamt := vamt + tax_amt_tab( p8( I ) );
718             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p8(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
719           ELSIF p8(i) = 0 THEN
720             vamt := vamt + v_amt;
721             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
722           END IF;
723        END IF;
724        IF p9( i ) <> -1 THEN
725           IF p9( i ) <> 0 THEN
726             vamt := vamt + tax_amt_tab( p9( i ) );
727             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p9(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
728           ELSIF p9(i) = 0 THEN
729             vamt := vamt + v_amt;
730             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
731           END IF;
732        END IF;
733        IF p10( i ) <> -1 THEN
734           IF p10( i ) <> 0 THEN
735             vamt := vamt + tax_amt_tab( p10( i ) );
736             ln_vamt_nr := ln_vamt_nr + tax_amt_non_rate_tab(p10(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
737           ELSIF p10(i) = 0 THEN
738             vamt := vamt + v_amt;
739             ln_vamt_nr := ln_vamt_nr + ln_bsln_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
740           END IF;
741        END IF;
742 
743     -- END BUG 5228046
744 
745     	 v_tax_amt := v_tax_amt + ( vamt * ( tax_rate_tab( i )/100));
746       -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
747       -----------------------------------------------------------------------
748         base_tax_amt_tab(I) := vamt;
749         tax_target_tab(I) := vamt;
750         ln_v_func_tax_amt := v_tax_amt + ( vamt * ( tax_rate_tab(I)/100 ));
751         ln_v_tax_amt_nr := ln_v_tax_amt_nr+( ln_vamt_nr*(tax_rate_tab(i)/100));
752         v_tax_amt := v_tax_amt + ( vamt * ( tax_rate_tab(I)/100 ));
753       ELSIF tax_rate_tab(I) = 0
754       THEN
755         base_tax_amt_tab(I) := tax_amt_tab(I);
756         v_tax_amt := tax_amt_tab(I);
757         tax_target_tab(I) := v_tax_amt;
758         ln_v_tax_amt_nr := tax_amt_non_rate_tab(i);
759       ELSIF end_date_tab(I) = 0
760       THEN
761         tax_amt_tab(I) := 0;
762         base_tax_amt_tab(I) := 0;
763         tax_target_tab(I) := 0;
764       END IF;  -- (tax_rate_tab(I) <> 0 OR tax_rate_zero_tab(I) = -9999) AND (end_date_tab(I) <> 0)
765       -----------------------------------------------------------------------
766       -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
767 
768       -- Deleted by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
769       -----------------------------------------------------------------------
770       /*
771           ELSE
772              v_tax_amt := tax_amt_tab( i );
773           END IF;
774       */
775       -----------------------------------------------------------------------
776       -- Deleted by Jia Li for Tax Inclusive Computations on 2007/12/11, End
777 
778       tax_amt_tab( I ) := NVL( v_tax_amt, 0 );
779       tax_amt_rate_tax_tab(I) := tax_amt_tab(I);  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
780       func_tax_amt_tab(I) := NVL(ln_v_func_tax_amt, 0);  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
781       tax_amt_non_rate_tab(I) := ln_v_tax_amt_nr; -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
782 
783       IF counter = max_iter THEN
784        /*IF tax_type_tab( I ) IN ( 1, 2 ) THEN */
785           tax_amt_tab( I ) := ROUND( tax_amt_tab( I ), rounding_factor_tab(I) );
786           func_tax_amt_tab(I) := ROUND( func_tax_amt_tab( I ), rounding_factor_tab(I));  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
787        /*ELSE
788           tax_amt_tab( I ) := ROUND( tax_amt_tab( I ), 2 );
789        END IF;*/
790       END IF;
791 
792       vamt := 0;
793       v_amt := 0;
794       v_tax_amt := 0;
795       ln_v_func_tax_amt := 0;  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
796 
797       IF end_date_tab(I) = 0 THEN
798         tax_amt_tab( i ) := 0;
799         func_tax_amt_tab(I) := 0;  -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11
800       END IF;
801     END LOOP;
802   END LOOP;
803 
804   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, Begin
805   -- the following loop calculates the total tax per rupee and total tax thats not dependent on selling price.
806   -- and calculation final tax amount
807   -----------------------------------------------------------------------
808   FOR I IN 1 .. row_count
809   LOOP
810     jai_cmn_utils_pkg.print_log('utils.log','tax_amt_rate_tax_tab(I) = ' || tax_amt_rate_tax_tab(I));
811     jai_cmn_utils_pkg.print_log('utils.log','tax_amt_non_rate_tab(I) = ' || tax_amt_non_rate_tab(I));
812     jai_cmn_utils_pkg.print_log('utils.log','inclu flag = ' || inclu_tax_tab(I));
813 
814     IF inclu_tax_tab(I) = 'Y'
815     THEN
816       ln_total_tax_per_rupee := ln_total_tax_per_rupee + NVL(tax_amt_rate_tax_tab(I),0)  ;
817       ln_total_non_rate_tax := ln_total_non_rate_tax + NVL(tax_amt_non_rate_tab(I),0);
818     END IF;
819   END LOOP;
820 
821   ln_total_tax_per_rupee := ln_total_tax_per_rupee + 1;
822 
823   IF ln_total_tax_per_rupee <> 0
824   THEN
825    ln_exclusive_price := (NVL(p_tax_amount,0) - ln_total_non_rate_tax ) / ln_total_tax_per_rupee;
826   END If;
827 
828   jai_cmn_utils_pkg.print_log('utils.log','tot tax per rupee = ' || ln_total_tax_per_rupee || ' totl non tax = ' || ln_total_non_rate_tax );
829   jai_cmn_utils_pkg.print_log('utils.log','incl sp = ' || p_tax_amount || 'excl price = ' || ln_exclusive_price);
830 
831   FOR I IN 1 .. row_count
832   LOOP
833      tax_amt_tab (I) := (tax_amt_rate_tax_tab(I) * ln_exclusive_price ) + tax_amt_non_rate_tab(I);
834      jai_cmn_utils_pkg.print_log('utils.log','in final loop , tax amt is ' ||tax_amt_tab(I));
835   END LOOP;
836   -----------------------------------------------------------------------
837   -- Added by Jia Li for Tax Inclusive Computations on 2007/12/11, End
838 
839 
840    FOR rec in  tax_cur(p_line_id) LOOP
841      IF tax_type_tab(rec.lno) <> 2
842      THEN
843        v_tax_amt := v_tax_amt + nvl(tax_amt_tab(rec.lno),0);
844      END IF;
845 
846      IF transaction_name = 'AR_LINES_UPDATE'
847      THEN
848        IF NVL(rec.adhoc_flag,'N') = 'Y' THEN
849            UPDATE  JAI_AR_TRX_TAX_LINES
850               SET  tax_amount = nvl(rec.tax_amount,0),
851                    base_tax_amount   = nvl(rec.base_tax_amount,0),
852                    func_tax_amount   = nvl(rec.func_tax_amount,0),
853                    last_update_date  = p_last_update_date,
854                    last_updated_by   = p_last_updated_by,
855                    last_update_login = p_last_update_login
856             WHERE  link_to_cust_trx_line_id = P_line_id
857               AND  tax_line_no = rec.lno;
858        ELSE
859            UPDATE  JAI_AR_TRX_TAX_LINES
860               SET  tax_amount = nvl(tax_amt_tab(rec.lno),0),
861                    base_tax_amount   = decode(nvl(base_tax_amt_tab(rec.lno), 0), 0, nvl(tax_amt_tab(rec.lno),0), nvl(base_tax_amt_tab(rec.lno), 0)),
862                    func_tax_amount   = ROUND(nvl(tax_amt_tab(rec.lno),0) *  v_currency_conv_factor, rounding_factor_tab(rec.lno)),
863                    last_update_date  = p_last_update_date,
864                    last_updated_by   = p_last_updated_by,
865                    last_update_login = p_last_update_login
866             WHERE  link_to_cust_trx_line_id = P_line_id
867               AND  tax_line_no = rec.lno;
868        END IF;
869      END IF;
870    END LOOP;
871    P_TAX_AMOUNT := nvl(v_tax_amt,0);
872 
873 
874    /* Added by Ramananda for bug#4407165 */
875     EXCEPTION
876      WHEN OTHERS THEN
877       FND_MESSAGE.SET_NAME('JA','JAI_EXCEPTION_OCCURED');
878       FND_MESSAGE.SET_TOKEN('JAI_PROCESS_MSG', lv_object_name ||'. Err:'||sqlerrm );
879       app_exception.raise_exception;
880 
881  END recalculate_tax;
882 
883  Procedure locator_handler(
884    p_trx_id NUMBER,
885    p_flag VARCHAR2  -- DEFAULT 'Y'  -- Use jai_constants.yes in the call of this procedure. Ramananda for for File.Sql.35
886   )
887  IS
888  pragma AUTONOMOUS_TRANSACTION;    -- Vijay Shankar for Bug# 3985561
889 
890    CURSOR get_temp_count IS
891      SELECT  count(*)
892      FROM  JAI_AR_TRX_UPDATE_T
893      WHERE   trx_id =  p_trx_id;
894 
895    v_count NUMBER;
896 
897    /* Added by Ramananda for bug#4407165 */
898   lv_object_name CONSTANT VARCHAR2(61) := 'jai_ar_utils_pkg.locator_handler';
899 
900  BEGIN
901  /*------------------------------------------------------------------------------------------
902  CHANGE HISTORY for FILENAME: jai_om_rg_pkg.sql
903  Slno  dd/mm/yyyy   Author and Change Details
904  ------------------------------------------------------------------------------------------
905  1.    31/05/2004   Vijay Shankar for Bug# 3985561, Version: 115.1
906                    Deadlocks being caused due to JAI_AR_TRX_UPDATE_T table as the same row of table is being updated from different forms and triggers.
907                    To resolve this, procedure is made to execute in AUTONOMOUS_TRANSACTION (Nested TRANSACTION CYCLE with COMMIT) mode
908                    This whole procedure is modified as an Table Handler for JAI_AR_TRX_UPDATE_T table. for this purpose a new parameter named p_flag
909                    is added that takes care of INSERT/UPDATE/DELETE on the table
910 
911                    HIGH DEPENDENCY for future bugs
912 
913  ------------------------------------------------------------------------------------------ */
914 
915    -- 3985561
916    If p_flag = 'N' THEN
917      UPDATE JAI_AR_TRX_UPDATE_T
918        SET modified_flag = p_flag
919      WHERE trx_id = p_trx_id;
920    ELSIF p_flag = 'D' THEN
921      DELETE FROM JAI_AR_TRX_UPDATE_T
922      WHERE trx_id = p_trx_id;
923 
924    ELSE
925 
926      OPEN get_temp_count;
927      FETCH get_temp_count INTO v_count;
928      CLOSE get_temp_count;
929 
930      IF v_count > 0 THEN
931 
932        UPDATE JAI_AR_TRX_UPDATE_T
933        SET modified_flag = p_flag
934        WHERE trx_id = p_trx_id;
935 
936      ELSIF p_flag <> 'D' THEN
937 
938        INSERT INTO JAI_AR_TRX_UPDATE_T(
939          trx_ID, modified_flag,
940          -- added, Harshita for Bug 4866533
941          created_by, creation_date, last_updated_by, last_update_date
942        ) VALUES (
943          p_trx_id, p_flag,
944          -- added, Harshita for Bug 4866533
945          fnd_global.user_id, sysdate, fnd_global.user_id, sysdate
946        );
947 
948      END IF;
949 
950    END IF;
951 
952    COMMIT;   -- Vijay Shankar for Bug# 3985561
953 
954    /* Added by Ramananda for bug#4407165 */
955     EXCEPTION
956      WHEN OTHERS THEN
957       FND_MESSAGE.SET_NAME('JA','JAI_EXCEPTION_OCCURED');
958       FND_MESSAGE.SET_TOKEN('JAI_PROCESS_MSG', lv_object_name ||'. Err:'||sqlerrm );
959       app_exception.raise_exception;
960 
961 END locator_handler;
962 
963 /*
964 FUNCTION get_register_type(i_item_id NUMBER) RETURN VARCHAR2 IS
965      X_class  JAI_OPM_ITM_MASTERS.item_class%type;
966      CURSOR cur IS SELECT item_class
967        FROM JAI_OPM_ITM_MASTERS
968        WHERE ITEM_ID = i_item_id;
969    BEGIN
970      open cur;
971      FETCH cur into X_class;
972      IF substr(X_class,1,2) = 'RM' or substr(X_class,1,2) = 'CC' then
973          RETURN 'A';
974       ELSIF substr(X_class,1,2) = 'CG' THEN
975         RETURN 'C';
976      END IF;
977 END get_register_type;
978 */
979 
980 PROCEDURE apps_rel_insert(p_org_id  IN NUMBER, p_loc_id IN NUMBER, p_rg_flag  IN Varchar2,
981             p_reg_name IN Varchar2 ,p_complete_flag  IN Varchar2, p_cretaed_by IN Number,
982         last_updated_by IN Number, p_last_update_login IN Number, p_creation_date IN Date, last_update_date IN Date
983 ) IS
984 
985   -- v_paddr   v$session.paddr%type;
986 
987   /* Added by Ramananda for bug#4407165 */
988        lv_object_name CONSTANT VARCHAR2(61) := 'jai_ar_utils_pkg.apps_rel_insert';
989 
990 BEGIN
991 
992 /*------------------------------------------------------------------------------------------
993  FILENAME: apps_rel_insert.sql
994 
995  CHANGE HISTORY:
996 S.No      Date          Author and Details
997 
998 --------------------------------------------------------------------------------------------*/
999 /*
1000 Select paddr INTO v_paddr From v$session
1001 Where sid = (Select sid From v$mystat Where Rownum = 1);
1002 */--commneted by GSri on 22-jun-01 for tuning
1003 
1004 --added by GSri -n 22-jun-01
1005 /*Select paddr into v_paddr
1006 From v$session
1007 Where audsid = userenv('SESSIONID');
1008 */
1009 Insert Into JAI_AR_TRX_APPS_RELS_T(
1010   Organization_ID,Location_ID,RG_Update_Flag,Register_Type,
1011   Once_completed_flag
1012   /* Bug 4535701. Commented by Lakshmi Gopalsami
1013    * As part of global temporary table
1014    * WHO columns has been removed
1015   ,  paddr,
1016   created_by, last_updated_by, last_update_login, creation_date, last_update_date */
1017 ) Values (
1018   p_org_id,p_loc_id,p_rg_flag,p_reg_name,
1019   p_complete_flag/*,  v_paddr,
1020   p_cretaed_by, last_updated_by, p_last_update_login, p_creation_date, last_update_date */
1021 );
1022 
1023 COMMIT;
1024 
1025 
1026 /* Added by Ramananda for bug#4407165 */
1027 EXCEPTION
1028   WHEN OTHERS THEN
1029     FND_MESSAGE.SET_NAME('JA','JAI_EXCEPTION_OCCURED');
1030     FND_MESSAGE.SET_TOKEN('JAI_PROCESS_MSG', lv_object_name ||'. Err:'||sqlerrm );
1031     app_exception.raise_exception;
1032 
1033 END apps_rel_insert;
1034 
1035 
1036 END jai_ar_utils_pkg;