DBA Data[Home] [Help]

PACKAGE BODY: APPS.JA_JAINVAR_XMLP_PKG

Source


1 PACKAGE BODY JA_JAINVAR_XMLP_PKG AS
2 /* $Header: JAINVARB.pls 120.1 2007/12/25 16:32:57 dwkrishn noship $ */
3   FUNCTION CF_1FORMULA(CUSTOMER_TRX_ID IN NUMBER
4                       ,CUSTOMER_TRX_LINE_ID IN NUMBER
5                       ,EXCISE_INVOICE_NO IN VARCHAR2
6                       ,CF_4 IN NUMBER
7                       ,AUTO_INVOICE_FLAG IN VARCHAR2
8                       ,INVENTORY_ITEM_ID IN NUMBER
9                       ,PAYMENT_REGISTER IN VARCHAR2) RETURN VARCHAR2 IS
10     V_FOLIO_NO VARCHAR2(100);
11     V_PICKING_LINE_ID NUMBER;
12     V_INVENTORY_ITEM_ID NUMBER;
13     CURSOR GET_PICKING_LINE_ID_CUR IS
14       SELECT
15         INTERFACE_LINE_ATTRIBUTE7
16       FROM
17         RA_CUSTOMER_TRX_LINES_ALL
18       WHERE CUSTOMER_TRX_ID = CF_1FORMULA.CUSTOMER_TRX_ID
19         AND CUSTOMER_TRX_LINE_ID = CF_1FORMULA.CUSTOMER_TRX_LINE_ID
20         AND INTERFACE_LINE_ATTRIBUTE7 IS NOT NULL;
21     CURSOR GET_ITEM_ID_CUR(V_PICKING_LINE_ID IN NUMBER) IS
22       SELECT
23         INVENTORY_ITEM_ID
24       FROM
25         SO_PICKING_LINES_ALL
26       WHERE PICKING_LINE_ID = V_PICKING_LINE_ID;
27     CURSOR FOLIO_NUM1(V_INVENTORY_ITEM_ID IN NUMBER) IS
28       SELECT
29         TO_CHAR(A.INVENTORY_ITEM_ID) || '/' || TO_CHAR(A.SLNO)
30       FROM
31         JAI_CMN_RG_23AC_II_TRXS A
32       WHERE A.EXCISE_INVOICE_NO = EXCISE_INVOICE_NO
33         AND A.INVENTORY_ITEM_ID = V_INVENTORY_ITEM_ID
34         AND A.DR_BASIC_ED = CF_4;
35     CURSOR FOLIO_NUM2(V_INVENTORY_ITEM_ID IN NUMBER) IS
36       SELECT
37         TO_CHAR(A.INVENTORY_ITEM_ID) || '/' || TO_CHAR(A.SLNO)
38       FROM
39         JAI_CMN_RG_PLA_TRXS A
40       WHERE A.EXCISE_INVOICE_NO = EXCISE_INVOICE_NO
41         AND A.INVENTORY_ITEM_ID = V_INVENTORY_ITEM_ID;
42   BEGIN
43     IF NVL(AUTO_INVOICE_FLAG
44        ,'N') = 'Y' THEN
45       OPEN GET_PICKING_LINE_ID_CUR;
46       FETCH GET_PICKING_LINE_ID_CUR
47        INTO V_PICKING_LINE_ID;
48       CLOSE GET_PICKING_LINE_ID_CUR;
49       OPEN GET_ITEM_ID_CUR(V_PICKING_LINE_ID);
50       FETCH GET_ITEM_ID_CUR
51        INTO V_INVENTORY_ITEM_ID;
52       CLOSE GET_ITEM_ID_CUR;
53     ELSE
54       V_INVENTORY_ITEM_ID := INVENTORY_ITEM_ID;
55     END IF;
56     IF PAYMENT_REGISTER in ('RG23A','RG23C') THEN
57       OPEN FOLIO_NUM1(V_INVENTORY_ITEM_ID);
58       FETCH FOLIO_NUM1
59        INTO V_FOLIO_NO;
60       CLOSE FOLIO_NUM1;
61     ELSIF PAYMENT_REGISTER in ('PLA') THEN
62       OPEN FOLIO_NUM2(V_INVENTORY_ITEM_ID);
63       FETCH FOLIO_NUM2
64        INTO V_FOLIO_NO;
65       CLOSE FOLIO_NUM2;
66     END IF;
67     RETURN V_FOLIO_NO;
68   END CF_1FORMULA;
69 
70   FUNCTION CF_2FORMULA RETURN VARCHAR2 IS
71   BEGIN
72 --    RETURN CHR(15);
73     RETURN NULL;
74   END CF_2FORMULA;
75 
76   FUNCTION CF_3FORMULA RETURN VARCHAR2 IS
77   BEGIN
78 --    RETURN CHR(18);
79     RETURN NULL;
80   END CF_3FORMULA;
81 
82   FUNCTION CF_4FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
83     CURSOR EXCISE_CAL_CUR(CP_EXCISE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
84       SELECT
85         A.FUNC_TAX_AMOUNT FUNC_AMT,
86         B.TAX_TYPE T_TYPE
87       FROM
88         JAI_AR_TRX_TAX_LINES A,
89         JAI_CMN_TAXES_ALL B
90       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_4FORMULA.CUSTOMER_TRX_LINE_ID
91         AND A.TAX_ID = B.TAX_ID
92         AND B.TAX_TYPE = CP_EXCISE
93       ORDER BY
94         1;
95     V_BASIC_AMOUNT NUMBER := 0;
96   BEGIN
97     FOR excise_cal_rec IN EXCISE_CAL_CUR('Excise') LOOP
98       V_BASIC_AMOUNT := NVL(V_BASIC_AMOUNT
99                            ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
100                            ,0);
101     END LOOP;
102     RETURN V_BASIC_AMOUNT;
103   END CF_4FORMULA;
104 
105   FUNCTION CF_5FORMULA(EXCISE_INVOICE_NO IN VARCHAR2
106                       ,INVENTORY_ITEM_ID IN NUMBER
107                       ,PAYMENT_REGISTER IN VARCHAR2) RETURN NUMBER IS
108     CURSOR EXCISE_AMOUNT1 IS
109       SELECT
110         DR_ADDITIONAL_ED
111       FROM
112         JAI_CMN_RG_23AC_II_TRXS A
113       WHERE A.EXCISE_INVOICE_NO = CF_5FORMULA.EXCISE_INVOICE_NO
114         AND A.INVENTORY_ITEM_ID = CF_5FORMULA.INVENTORY_ITEM_ID;
115     CURSOR EXCISE_AMOUNT2 IS
116       SELECT
117         DR_ADDITIONAL_ED
118       FROM
119         JAI_CMN_RG_PLA_TRXS A
120       WHERE A.EXCISE_INVOICE_NO = CF_5FORMULA.EXCISE_INVOICE_NO
121         AND A.INVENTORY_ITEM_ID = CF_5FORMULA.INVENTORY_ITEM_ID;
122     V_ADDITIONAL_ED NUMBER;
123   BEGIN
124     IF PAYMENT_REGISTER in ('RG23A','RG23C') THEN
125       OPEN EXCISE_AMOUNT1;
126       FETCH EXCISE_AMOUNT1
127        INTO V_ADDITIONAL_ED;
128       CLOSE EXCISE_AMOUNT1;
129     ELSIF PAYMENT_REGISTER in ('PLA') THEN
130       OPEN EXCISE_AMOUNT2;
131       FETCH EXCISE_AMOUNT2
132        INTO V_ADDITIONAL_ED;
133       CLOSE EXCISE_AMOUNT2;
134     END IF;
135     RETURN NVL(V_ADDITIONAL_ED
136               ,0);
137   END CF_5FORMULA;
138 
139   FUNCTION CF_6FORMULA(EXCISE_INVOICE_NO IN VARCHAR2
140                       ,INVENTORY_ITEM_ID IN NUMBER
141                       ,PAYMENT_REGISTER IN VARCHAR2) RETURN NUMBER IS
142     CURSOR EXCISE_AMOUNT1 IS
143       SELECT
144         DR_OTHER_ED
145       FROM
146         JAI_CMN_RG_23AC_II_TRXS A
147       WHERE A.EXCISE_INVOICE_NO = CF_6FORMULA.EXCISE_INVOICE_NO
148         AND A.INVENTORY_ITEM_ID = CF_6FORMULA.INVENTORY_ITEM_ID;
149     CURSOR EXCISE_AMOUNT2 IS
150       SELECT
151         DR_OTHER_ED
152       FROM
153         JAI_CMN_RG_PLA_TRXS A
154       WHERE A.EXCISE_INVOICE_NO = CF_6FORMULA.EXCISE_INVOICE_NO
155         AND A.INVENTORY_ITEM_ID = CF_6FORMULA.INVENTORY_ITEM_ID;
156     V_OTHER_ED NUMBER;
157   BEGIN
158     IF PAYMENT_REGISTER in ('RG23A','RG23C') THEN
159       OPEN EXCISE_AMOUNT1;
160       FETCH EXCISE_AMOUNT1
161        INTO V_OTHER_ED;
162       CLOSE EXCISE_AMOUNT1;
163     ELSIF PAYMENT_REGISTER in ('PLA') THEN
164       OPEN EXCISE_AMOUNT2;
165       FETCH EXCISE_AMOUNT2
166        INTO V_OTHER_ED;
167       CLOSE EXCISE_AMOUNT2;
168     END IF;
169     RETURN NVL(V_OTHER_ED
170               ,0);
171   END CF_6FORMULA;
172 
173   FUNCTION CF_7FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
174     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
175       SELECT
176         A.FUNC_TAX_AMOUNT FUNC_AMT,
177         B.TAX_TYPE T_TYPE
178       FROM
179         JAI_AR_TRX_TAX_LINES A,
180         JAI_CMN_TAXES_ALL B
181       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_7FORMULA.CUSTOMER_TRX_LINE_ID
182         AND A.TAX_ID = B.TAX_ID
183         AND B.TAX_TYPE = CP_TAX_TYPE
184       ORDER BY
185         1;
186     V_FREIGHT_AMOUNT NUMBER := 0;
187   BEGIN
188     FOR excise_cal_rec IN EXCISE_CAL_CUR('Freight') LOOP
189       V_FREIGHT_AMOUNT := NVL(V_FREIGHT_AMOUNT
190                              ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
191                              ,0);
192     END LOOP;
193     RETURN V_FREIGHT_AMOUNT;
194   END CF_7FORMULA;
195 
196   FUNCTION CF_8FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
197     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
198       SELECT
199         A.FUNC_TAX_AMOUNT FUNC_AMT,
200         B.TAX_TYPE T_TYPE
201       FROM
202         JAI_AR_TRX_TAX_LINES A,
203         JAI_CMN_TAXES_ALL B
204       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_8FORMULA.CUSTOMER_TRX_LINE_ID
205         AND A.TAX_ID = B.TAX_ID
206         AND B.TAX_TYPE = CP_TAX_TYPE
207       ORDER BY
208         1;
209     V_INSURANCE_AMOUNT NUMBER := 0;
210   BEGIN
211     FOR excise_cal_rec IN EXCISE_CAL_CUR('Insurance') LOOP
212       V_INSURANCE_AMOUNT := NVL(V_INSURANCE_AMOUNT
213                                ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
214                                ,0);
215     END LOOP;
216     RETURN V_INSURANCE_AMOUNT;
217   END CF_8FORMULA;
218 
219   FUNCTION CF_9FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
220     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
221       SELECT
222         A.FUNC_TAX_AMOUNT FUNC_AMT,
223         B.TAX_TYPE T_TYPE
224       FROM
225         JAI_AR_TRX_TAX_LINES A,
226         JAI_CMN_TAXES_ALL B
227       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_9FORMULA.CUSTOMER_TRX_LINE_ID
228         AND A.TAX_ID = B.TAX_ID
229         AND B.TAX_TYPE = CP_TAX_TYPE
230       ORDER BY
231         1;
232     V_CST_AMOUNT NUMBER := 0;
233   BEGIN
234     FOR excise_cal_rec IN EXCISE_CAL_CUR('CST') LOOP
235       V_CST_AMOUNT := NVL(V_CST_AMOUNT
236                          ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
237                          ,0);
238     END LOOP;
239     RETURN V_CST_AMOUNT;
240   END CF_9FORMULA;
241 
242   FUNCTION CF_10FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
243     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
244       SELECT
245         A.FUNC_TAX_AMOUNT FUNC_AMT,
246         B.TAX_TYPE T_TYPE
247       FROM
248         JAI_AR_TRX_TAX_LINES A,
249         JAI_CMN_TAXES_ALL B
250       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_10FORMULA.CUSTOMER_TRX_LINE_ID
251         AND A.TAX_ID = B.TAX_ID
252         AND B.TAX_TYPE = CP_TAX_TYPE
253       ORDER BY
254         1;
255     V_CVD_AMOUNT NUMBER := 0;
256   BEGIN
257     FOR excise_cal_rec IN EXCISE_CAL_CUR('CVD') LOOP
258       V_CVD_AMOUNT := NVL(V_CVD_AMOUNT
259                          ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
260                          ,0);
261     END LOOP;
262     RETURN V_CVD_AMOUNT;
263   END CF_10FORMULA;
264 
265   FUNCTION CF_11FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
266     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
267       SELECT
268         A.FUNC_TAX_AMOUNT FUNC_AMT,
269         B.TAX_TYPE T_TYPE
270       FROM
271         JAI_AR_TRX_TAX_LINES A,
272         JAI_CMN_TAXES_ALL B
273       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_11FORMULA.CUSTOMER_TRX_LINE_ID
274         AND A.TAX_ID = B.TAX_ID
275         AND B.TAX_TYPE = CP_TAX_TYPE
276       ORDER BY
277         1;
278     V_CUSTOM_AMOUNT NUMBER := 0;
279   BEGIN
280     FOR excise_cal_rec IN EXCISE_CAL_CUR('Customs') LOOP
281       V_CUSTOM_AMOUNT := NVL(V_CUSTOM_AMOUNT
282                             ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
283                             ,0);
284     END LOOP;
285     RETURN V_CUSTOM_AMOUNT;
286   END CF_11FORMULA;
287 
288   FUNCTION CF_12FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
289     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
290       SELECT
291         A.FUNC_TAX_AMOUNT FUNC_AMT,
292         B.TAX_TYPE T_TYPE
293       FROM
294         JAI_AR_TRX_TAX_LINES A,
295         JAI_CMN_TAXES_ALL B
296       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_12FORMULA.CUSTOMER_TRX_LINE_ID
297         AND A.TAX_ID = B.TAX_ID
298         AND B.TAX_TYPE = CP_TAX_TYPE
299       ORDER BY
300         1;
301     V_OCTRAI_AMOUNT NUMBER := 0;
302   BEGIN
303     FOR excise_cal_rec IN EXCISE_CAL_CUR('Octrai') LOOP
304       V_OCTRAI_AMOUNT := NVL(V_OCTRAI_AMOUNT
305                             ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
306                             ,0);
307     END LOOP;
308     RETURN V_OCTRAI_AMOUNT;
309   END CF_12FORMULA;
310 
311   FUNCTION CF_13FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
312     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
313       SELECT
314         A.FUNC_TAX_AMOUNT FUNC_AMT,
318         JAI_CMN_TAXES_ALL B
315         B.TAX_TYPE T_TYPE
316       FROM
317         JAI_AR_TRX_TAX_LINES A,
319       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_13FORMULA.CUSTOMER_TRX_LINE_ID
320         AND A.TAX_ID = B.TAX_ID
321         AND B.TAX_TYPE = CP_TAX_TYPE
322       ORDER BY
323         1;
324     V_OTHER_AMOUNT NUMBER := 0;
325   BEGIN
326     FOR excise_cal_rec IN EXCISE_CAL_CUR('Other') LOOP
327       V_OTHER_AMOUNT := NVL(V_OTHER_AMOUNT
328                            ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
329                            ,0);
330     END LOOP;
331     RETURN V_OTHER_AMOUNT;
332   END CF_13FORMULA;
333 
334   FUNCTION CF_14FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
335     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
336       SELECT
337         A.FUNC_TAX_AMOUNT FUNC_AMT,
338         B.TAX_TYPE T_TYPE
339       FROM
340         JAI_AR_TRX_TAX_LINES A,
341         JAI_CMN_TAXES_ALL B
342       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_14FORMULA.CUSTOMER_TRX_LINE_ID
343         AND A.TAX_ID = B.TAX_ID
344         AND B.TAX_TYPE = CP_TAX_TYPE
345       ORDER BY
346         1;
347     V_SALES_AMOUNT NUMBER := 0;
348   BEGIN
349     FOR excise_cal_rec IN EXCISE_CAL_CUR('Sales Tax') LOOP
350       V_SALES_AMOUNT := NVL(V_SALES_AMOUNT
351                            ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
352                            ,0);
353     END LOOP;
354     RETURN V_SALES_AMOUNT;
355   END CF_14FORMULA;
356 
357   FUNCTION CF_15FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
358     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
359       SELECT
360         A.FUNC_TAX_AMOUNT FUNC_AMT,
361         B.TAX_TYPE T_TYPE
362       FROM
363         JAI_AR_TRX_TAX_LINES A,
364         JAI_CMN_TAXES_ALL B
365       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_15FORMULA.CUSTOMER_TRX_LINE_ID
366         AND A.TAX_ID = B.TAX_ID
367         AND B.TAX_TYPE = CP_TAX_TYPE
368       ORDER BY
369         1;
370     V_SERVICE_AMOUNT NUMBER := 0;
371   BEGIN
372     FOR excise_cal_rec IN EXCISE_CAL_CUR('Service') LOOP
373       V_SERVICE_AMOUNT := NVL(V_SERVICE_AMOUNT
374                              ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
375                              ,0);
376     END LOOP;
377     RETURN V_SERVICE_AMOUNT;
378   END CF_15FORMULA;
379 
380   FUNCTION CF_16FORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
381     CURSOR EXCISE_CAL_CUR(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
382       SELECT
383         A.FUNC_TAX_AMOUNT FUNC_AMT,
384         B.TAX_TYPE T_TYPE
385       FROM
386         JAI_AR_TRX_TAX_LINES A,
387         JAI_CMN_TAXES_ALL B
388       WHERE LINK_TO_CUST_TRX_LINE_ID = CF_16FORMULA.CUSTOMER_TRX_LINE_ID
389         AND A.TAX_ID = B.TAX_ID
390         AND B.TAX_TYPE = CP_TAX_TYPE
391       ORDER BY
392         1;
393     V_TDS_AMOUNT NUMBER := 0;
394   BEGIN
395     FOR excise_cal_rec IN EXCISE_CAL_CUR('TDS') LOOP
396       V_TDS_AMOUNT := NVL(V_TDS_AMOUNT
397                          ,0) + NVL(EXCISE_CAL_REC.FUNC_AMT
398                          ,0);
399     END LOOP;
400     RETURN V_TDS_AMOUNT;
401   END CF_16FORMULA;
402 
403   FUNCTION CF_17FORMULA(EXCISE_INVOICE_NO IN VARCHAR2
404                        ,CF_4 IN NUMBER
405                        ,CUSTOMER_TRX_ID IN NUMBER
406                        ,CUSTOMER_TRX_LINE_ID IN NUMBER
407                        ,AUTO_INVOICE_FLAG IN VARCHAR2
408                        ,INVENTORY_ITEM_ID IN NUMBER
409                        ,PAYMENT_REGISTER IN VARCHAR2) RETURN NUMBER IS
410     V_SLNO VARCHAR2(100);
411     V_PICKING_LINE_ID NUMBER;
412     V_INVENTORY_ITEM_ID NUMBER;
413     CURSOR SLNO1(V_INVENTORY_ITEM_ID IN NUMBER) IS
414       SELECT
415         A.SLNO
416       FROM
417         JAI_CMN_RG_23AC_II_TRXS A
418       WHERE A.EXCISE_INVOICE_NO = CF_17FORMULA.EXCISE_INVOICE_NO
419         AND A.INVENTORY_ITEM_ID = CF_17FORMULA.V_INVENTORY_ITEM_ID
420         AND A.DR_BASIC_ED = CF_4;
421     CURSOR SLNO2(V_INVENTORY_ITEM_ID IN NUMBER) IS
422       SELECT
423         A.SLNO
424       FROM
425         JAI_CMN_RG_PLA_TRXS A
426       WHERE A.EXCISE_INVOICE_NO = CF_17FORMULA.EXCISE_INVOICE_NO
427         AND A.INVENTORY_ITEM_ID = CF_17FORMULA.V_INVENTORY_ITEM_ID;
428     CURSOR GET_PICKING_LINE_ID_CUR IS
429       SELECT
430         INTERFACE_LINE_ATTRIBUTE7
431       FROM
432         RA_CUSTOMER_TRX_LINES_ALL
433       WHERE CUSTOMER_TRX_ID = CF_17FORMULA.CUSTOMER_TRX_ID
434         AND CUSTOMER_TRX_LINE_ID = CF_17FORMULA.CUSTOMER_TRX_LINE_ID
435         AND INTERFACE_LINE_ATTRIBUTE7 IS NOT NULL;
436     CURSOR GET_ITEM_ID_CUR(V_PICKING_LINE_ID IN NUMBER) IS
437       SELECT
438         INVENTORY_ITEM_ID
439       FROM
440         SO_PICKING_LINES_ALL
441       WHERE PICKING_LINE_ID = V_PICKING_LINE_ID;
442   BEGIN
443     IF NVL(AUTO_INVOICE_FLAG
444        ,'N') = 'Y' THEN
445       OPEN GET_PICKING_LINE_ID_CUR;
446       FETCH GET_PICKING_LINE_ID_CUR
447        INTO V_PICKING_LINE_ID;
448       CLOSE GET_PICKING_LINE_ID_CUR;
449       OPEN GET_ITEM_ID_CUR(V_PICKING_LINE_ID);
450       FETCH GET_ITEM_ID_CUR
451        INTO V_INVENTORY_ITEM_ID;
452       CLOSE GET_ITEM_ID_CUR;
453     ELSE
454       V_INVENTORY_ITEM_ID := INVENTORY_ITEM_ID;
455     END IF;
456     IF PAYMENT_REGISTER in ('RG23A','RG23C') THEN
457       OPEN SLNO1(V_INVENTORY_ITEM_ID);
458       FETCH SLNO1
459        INTO V_SLNO;
460       CLOSE SLNO1;
461     ELSIF PAYMENT_REGISTER in ('PLA') THEN
462       OPEN SLNO2(V_INVENTORY_ITEM_ID);
463       FETCH SLNO2
464        INTO V_SLNO;
465       CLOSE SLNO2;
469 
466     END IF;
467     RETURN V_SLNO;
468   END CF_17FORMULA;
470   FUNCTION CF_18FORMULA(CUSTOMER_TRX_ID1 IN NUMBER) RETURN VARCHAR2 IS
471     CURSOR TRANSACTION_CURR_CUR IS
472       SELECT
473         INVOICE_CURRENCY_CODE
474       FROM
475         RA_CUSTOMER_TRX_ALL
476       WHERE CUSTOMER_TRX_ID = CUSTOMER_TRX_ID1;
477     V_TRANS_CURR VARCHAR2(15);
478   BEGIN
479     OPEN TRANSACTION_CURR_CUR;
480     FETCH TRANSACTION_CURR_CUR
481      INTO V_TRANS_CURR;
482     CLOSE TRANSACTION_CURR_CUR;
483     RETURN V_TRANS_CURR;
484   END CF_18FORMULA;
485 
486   FUNCTION CF_19FORMULA(CUSTOMER_TRX_ID1 IN NUMBER) RETURN VARCHAR2 IS
487     CURSOR FUNC_CURR_CUR IS
488       SELECT
489         CURRENCY_CODE
490       FROM
491         GL_SETS_OF_BOOKS
492       WHERE SET_OF_BOOKS_ID in (
493         SELECT
494           SET_OF_BOOKS_ID
495         FROM
496           RA_CUSTOMER_TRX_ALL
497         WHERE CUSTOMER_TRX_ID = CUSTOMER_TRX_ID1 );
498     V_FUNC_CURR VARCHAR2(15);
499   BEGIN
500     OPEN FUNC_CURR_CUR;
501     FETCH FUNC_CURR_CUR
502      INTO V_FUNC_CURR;
503     CLOSE FUNC_CURR_CUR;
504     RETURN V_FUNC_CURR;
505   END CF_19FORMULA;
506 
507   FUNCTION CF_20FORMULA(CUSTOMER_TRX_ID IN NUMBER
508                        ,CUSTOMER_TRX_LINE_ID IN NUMBER
509                        ,AUTO_INVOICE_FLAG IN VARCHAR2
510                        ,UNIT_SELLING_PRICE IN NUMBER) RETURN NUMBER IS
511     V_PICKING_LINE_ID NUMBER;
512     V_SELLING_PRICE NUMBER;
513     CURSOR GET_PICKING_LINE_ID_CUR IS
514       SELECT
515         INTERFACE_LINE_ATTRIBUTE7
516       FROM
517         RA_CUSTOMER_TRX_LINES_ALL
518       WHERE CUSTOMER_TRX_ID = CF_20FORMULA.CUSTOMER_TRX_ID
519         AND CUSTOMER_TRX_LINE_ID = CF_20FORMULA.CUSTOMER_TRX_LINE_ID
520         AND INTERFACE_LINE_ATTRIBUTE7 IS NOT NULL;
521     CURSOR GET_SELLING_PRICE_CUR(V_PICKING_LINE_ID IN NUMBER) IS
522       SELECT
523         SELLING_PRICE
524       FROM
525         JAI_OM_WSH_LINES_ALL
526       WHERE PICKING_LINE_ID = V_PICKING_LINE_ID;
527   BEGIN
528     IF NVL(AUTO_INVOICE_FLAG
529        ,'N') = 'Y' THEN
530       OPEN GET_PICKING_LINE_ID_CUR;
531       FETCH GET_PICKING_LINE_ID_CUR
532        INTO V_PICKING_LINE_ID;
533       CLOSE GET_PICKING_LINE_ID_CUR;
534       OPEN GET_SELLING_PRICE_CUR(V_PICKING_LINE_ID);
535       FETCH GET_SELLING_PRICE_CUR
536        INTO V_SELLING_PRICE;
537       CLOSE GET_SELLING_PRICE_CUR;
538     ELSE
539       V_SELLING_PRICE := UNIT_SELLING_PRICE;
540     END IF;
541     RETURN V_SELLING_PRICE;
542   END CF_20FORMULA;
543 
544   FUNCTION CF_21FORMULA(AUTO_INVOICE_FLAG IN VARCHAR2
545                        ,QUANTITY IN NUMBER
546                        ,CF_20 IN NUMBER
547                        ,LINE_AMOUNT IN NUMBER) RETURN NUMBER IS
548     V_LINE_AMOUNT NUMBER;
549   BEGIN
550     IF NVL(AUTO_INVOICE_FLAG
551        ,'N') = 'Y' THEN
552       V_LINE_AMOUNT := NVL(QUANTITY
553                           ,0) * CF_20;
554     ELSE
555       V_LINE_AMOUNT := LINE_AMOUNT;
556     END IF;
557     RETURN V_LINE_AMOUNT;
558   END CF_21FORMULA;
559 
560   FUNCTION CF_22FORMULA(CUSTOMER_TRX_ID1 IN NUMBER
561                        ,CF_20 IN NUMBER) RETURN NUMBER IS
562     CURSOR TRANSACTION_CURR_CUR IS
563       SELECT
564         SET_OF_BOOKS_ID,
565         INVOICE_CURRENCY_CODE,
566         EXCHANGE_RATE_TYPE,
567         NVL(EXCHANGE_DATE
568            ,TRX_DATE) EXCHANGE_DATE,
569         EXCHANGE_RATE
570       FROM
571         RA_CUSTOMER_TRX_ALL
572       WHERE CUSTOMER_TRX_ID = CUSTOMER_TRX_ID1;
573     V_BOOKS_ID NUMBER := 1;
574     C_FROM_CURRENCY_CODE VARCHAR2(15);
575     C_CONVERSION_TYPE VARCHAR2(30);
576     C_CONVERSION_DATE DATE;
577     C_CONVERSION_RATE NUMBER := 0;
578     V_CONVERTED_RATE NUMBER := 1;
579     V_UNIT_PRICE VARCHAR2(15);
580   BEGIN
581     OPEN TRANSACTION_CURR_CUR;
582     FETCH TRANSACTION_CURR_CUR
583      INTO V_BOOKS_ID,C_FROM_CURRENCY_CODE,C_CONVERSION_TYPE,C_CONVERSION_DATE,C_CONVERSION_RATE;
584     CLOSE TRANSACTION_CURR_CUR;
585     V_CONVERTED_RATE := JAI_CMN_UTILS_PKG.CURRENCY_CONVERSION(V_BOOKS_ID
586                                                              ,C_FROM_CURRENCY_CODE
587                                                              ,C_CONVERSION_DATE
588                                                              ,C_CONVERSION_TYPE
589                                                              ,C_CONVERSION_RATE);
590     V_UNIT_PRICE := V_CONVERTED_RATE * CF_20;
591     RETURN V_UNIT_PRICE;
592   END CF_22FORMULA;
593 
594   FUNCTION CF_23FORMULA(CUSTOMER_TRX_ID1 IN NUMBER
595                        ,CF_21 IN NUMBER) RETURN NUMBER IS
596     CURSOR TRANSACTION_CURR_CUR IS
597       SELECT
598         SET_OF_BOOKS_ID,
599         INVOICE_CURRENCY_CODE,
600         EXCHANGE_RATE_TYPE,
601         NVL(EXCHANGE_DATE
602            ,TRX_DATE) EXCHANGE_DATE,
603         EXCHANGE_RATE
604       FROM
605         RA_CUSTOMER_TRX_ALL
606       WHERE CUSTOMER_TRX_ID = CUSTOMER_TRX_ID1;
607     V_BOOKS_ID NUMBER := 1;
608     C_FROM_CURRENCY_CODE VARCHAR2(15);
609     C_CONVERSION_TYPE VARCHAR2(30);
610     C_CONVERSION_DATE DATE;
611     C_CONVERSION_RATE NUMBER := 0;
612     V_CONVERTED_RATE NUMBER := 1;
613     V_LINE_AMOUNT VARCHAR2(15);
614   BEGIN
615     OPEN TRANSACTION_CURR_CUR;
616     FETCH TRANSACTION_CURR_CUR
617      INTO V_BOOKS_ID,C_FROM_CURRENCY_CODE,C_CONVERSION_TYPE,C_CONVERSION_DATE,C_CONVERSION_RATE;
618     CLOSE TRANSACTION_CURR_CUR;
619     V_CONVERTED_RATE := JAI_CMN_UTILS_PKG.CURRENCY_CONVERSION(V_BOOKS_ID
623                                                              ,C_CONVERSION_RATE);
620                                                              ,C_FROM_CURRENCY_CODE
621                                                              ,C_CONVERSION_DATE
622                                                              ,C_CONVERSION_TYPE
624     V_LINE_AMOUNT := V_CONVERTED_RATE * CF_21;
625     RETURN V_LINE_AMOUNT;
626   END CF_23FORMULA;
627 
628   FUNCTION CONV_ASSESSABLEFORMULA(CUSTOMER_TRX_ID IN NUMBER
629                                  ,CUSTOMER_TRX_LINE_ID IN NUMBER
630                                  ,CUSTOMER_TRX_ID1 IN NUMBER
631                                  ,AUTO_INVOICE_FLAG IN VARCHAR2
632                                  ,ASSESSABLE_VALUE IN NUMBER) RETURN NUMBER IS
633     V_PICKING_LINE_ID NUMBER;
634     V_ASSESSABLE_VALUE NUMBER;
635     V_BOOKS_ID NUMBER := 1;
636     C_FROM_CURRENCY_CODE VARCHAR2(15);
637     C_CONVERSION_TYPE VARCHAR2(30);
638     C_CONVERSION_DATE DATE;
639     C_CONVERSION_RATE NUMBER := 0;
640     V_CONVERTED_RATE NUMBER := 1;
641     CURSOR GET_PICKING_LINE_ID_CUR IS
642       SELECT
643         INTERFACE_LINE_ATTRIBUTE7
644       FROM
645         RA_CUSTOMER_TRX_LINES_ALL
646       WHERE CUSTOMER_TRX_ID = CONV_ASSESSABLEFORMULA.CUSTOMER_TRX_ID
647         AND CUSTOMER_TRX_LINE_ID = CONV_ASSESSABLEFORMULA.CUSTOMER_TRX_LINE_ID
648         AND INTERFACE_LINE_ATTRIBUTE7 IS NOT NULL;
649     CURSOR GET_ASSESSABLE_VALUE_CUR(V_PICKING_LINE_ID IN NUMBER) IS
650       SELECT
651         ASSESSABLE_VALUE
652       FROM
653         JAI_OM_WSH_LINES_ALL
654       WHERE PICKING_LINE_ID = V_PICKING_LINE_ID;
655     CURSOR TRANSACTION_CURR_CUR IS
656       SELECT
657         SET_OF_BOOKS_ID,
658         INVOICE_CURRENCY_CODE,
659         EXCHANGE_RATE_TYPE,
660         NVL(EXCHANGE_DATE
661            ,TRX_DATE) EXCHANGE_DATE,
662         EXCHANGE_RATE
663       FROM
664         RA_CUSTOMER_TRX_ALL
665       WHERE CUSTOMER_TRX_ID = CUSTOMER_TRX_ID1;
666   BEGIN
667     IF NVL(AUTO_INVOICE_FLAG
668        ,'N') = 'Y' THEN
669       OPEN GET_PICKING_LINE_ID_CUR;
670       FETCH GET_PICKING_LINE_ID_CUR
671        INTO V_PICKING_LINE_ID;
672       CLOSE GET_PICKING_LINE_ID_CUR;
673       OPEN GET_ASSESSABLE_VALUE_CUR(V_PICKING_LINE_ID);
674       FETCH GET_ASSESSABLE_VALUE_CUR
675        INTO V_ASSESSABLE_VALUE;
676       CLOSE GET_ASSESSABLE_VALUE_CUR;
677     ELSE
678       V_ASSESSABLE_VALUE := ASSESSABLE_VALUE;
679     END IF;
680     OPEN TRANSACTION_CURR_CUR;
681     FETCH TRANSACTION_CURR_CUR
682      INTO V_BOOKS_ID,C_FROM_CURRENCY_CODE,C_CONVERSION_TYPE,C_CONVERSION_DATE,C_CONVERSION_RATE;
683     CLOSE TRANSACTION_CURR_CUR;
684     V_CONVERTED_RATE := JAI_CMN_UTILS_PKG.CURRENCY_CONVERSION(V_BOOKS_ID
685                                                              ,C_FROM_CURRENCY_CODE
686                                                              ,C_CONVERSION_DATE
687                                                              ,C_CONVERSION_TYPE
688                                                              ,C_CONVERSION_RATE);
689     V_ASSESSABLE_VALUE := NVL(V_ASSESSABLE_VALUE
690                              ,0) * V_CONVERTED_RATE;
691     RETURN V_ASSESSABLE_VALUE;
692   END CONV_ASSESSABLEFORMULA;
693 
694   FUNCTION TOT_ASSESSABLE_VALUEFORMULA(CONV_ASSESSABLE IN NUMBER
695                                       ,QUANTITY IN NUMBER) RETURN NUMBER IS
696   BEGIN
697     RETURN (CONV_ASSESSABLE * NVL(QUANTITY
698               ,1));
699   END TOT_ASSESSABLE_VALUEFORMULA;
700 
701   FUNCTION BASIC_RATEFORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
702     CURSOR GET_TAX_RATE(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
703       SELECT
704         TAX_RATE
705       FROM
706         JAI_AR_TRX_TAX_LINES
707       WHERE LINK_TO_CUST_TRX_LINE_ID = BASIC_RATEFORMULA.CUSTOMER_TRX_LINE_ID
708         AND TAX_ID IN (
709         SELECT
710           TAX_ID
711         FROM
712           JAI_CMN_TAXES_ALL
713         WHERE TAX_TYPE LIKE CP_TAX_TYPE );
714     V_TOT_TAX NUMBER := 0;
715     V_AVG_DUTY NUMBER := 0;
716     V_TAX_COUNT NUMBER := 0;
717   BEGIN
718     FOR each_record IN GET_TAX_RATE('Excise') LOOP
719       IF EACH_RECORD.TAX_RATE IS NOT NULL THEN
720         V_TOT_TAX := V_TOT_TAX + EACH_RECORD.TAX_RATE;
721         V_TAX_COUNT := V_TAX_COUNT + 1;
722       END IF;
723     END LOOP;
724     IF V_TAX_COUNT = 0 THEN
725       V_TAX_COUNT := 1;
726     END IF;
727     V_AVG_DUTY := V_TOT_TAX / V_TAX_COUNT;
728     RETURN V_AVG_DUTY;
729   END BASIC_RATEFORMULA;
730 
731   FUNCTION SPECIAL_RATEFORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
732     CURSOR GET_TAX_RATE(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
733       SELECT
734         TAX_RATE
735       FROM
736         JAI_AR_TRX_TAX_LINES
737       WHERE LINK_TO_CUST_TRX_LINE_ID = SPECIAL_RATEFORMULA.CUSTOMER_TRX_LINE_ID
738         AND TAX_ID IN (
739         SELECT
740           TAX_ID
741         FROM
742           JAI_CMN_TAXES_ALL
743         WHERE TAX_TYPE LIKE CP_TAX_TYPE );
744     V_TOT_TAX NUMBER := 0;
745     V_AVG_DUTY NUMBER := 0;
746     V_TAX_COUNT NUMBER := 0;
747   BEGIN
748     FOR each_record IN GET_TAX_RATE('Other Excise') LOOP
749       IF EACH_RECORD.TAX_RATE IS NOT NULL THEN
750         V_TOT_TAX := V_TOT_TAX + EACH_RECORD.TAX_RATE;
751         V_TAX_COUNT := V_TAX_COUNT + 1;
752       END IF;
753     END LOOP;
754     IF V_TAX_COUNT = 0 THEN
755       V_TAX_COUNT := 1;
756     END IF;
757     V_AVG_DUTY := V_TOT_TAX / V_TAX_COUNT;
758     RETURN V_AVG_DUTY;
759   END SPECIAL_RATEFORMULA;
760 
764         TAX_RATE
761   FUNCTION ADDL_RATEFORMULA(CUSTOMER_TRX_LINE_ID IN NUMBER) RETURN NUMBER IS
762     CURSOR GET_TAX_RATE(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
763       SELECT
765       FROM
766         JAI_AR_TRX_TAX_LINES
767       WHERE LINK_TO_CUST_TRX_LINE_ID = ADDL_RATEFORMULA.CUSTOMER_TRX_LINE_ID
768         AND TAX_ID IN (
769         SELECT
770           TAX_ID
771         FROM
772           JAI_CMN_TAXES_ALL
773         WHERE TAX_TYPE LIKE CP_TAX_TYPE );
774     V_TOT_TAX NUMBER := 0;
775     V_AVG_DUTY NUMBER := 0;
776     V_TAX_COUNT NUMBER := 0;
777   BEGIN
778     FOR each_record IN GET_TAX_RATE('Addl. Excise') LOOP
779       IF EACH_RECORD.TAX_RATE IS NOT NULL THEN
780         V_TOT_TAX := V_TOT_TAX + EACH_RECORD.TAX_RATE;
781         V_TAX_COUNT := V_TAX_COUNT + 1;
782       END IF;
783     END LOOP;
784     IF V_TAX_COUNT = 0 THEN
785       V_TAX_COUNT := 1;
786     END IF;
787     V_AVG_DUTY := V_TOT_TAX / V_TAX_COUNT;
788     RETURN V_AVG_DUTY;
789   END ADDL_RATEFORMULA;
790 
791   FUNCTION ITEM_CODEFORMULA(ITEM_CODE_ID IN NUMBER
792                            ,ORGANIZATION_ID IN NUMBER) RETURN VARCHAR2 IS
793     CURSOR GET_ITEM_CODE IS
794       SELECT
795         SEGMENT1
796       FROM
797         MTL_SYSTEM_ITEMS
798       WHERE INVENTORY_ITEM_ID = ITEM_CODEFORMULA.ITEM_CODE_ID
799         AND ORGANIZATION_ID = ITEM_CODEFORMULA.ORGANIZATION_ID;
800     V_ITEM_CODE VARCHAR2(120);
801   BEGIN
802     OPEN GET_ITEM_CODE;
803     FETCH GET_ITEM_CODE
804      INTO V_ITEM_CODE;
805     CLOSE GET_ITEM_CODE;
806     RETURN V_ITEM_CODE;
807   END ITEM_CODEFORMULA;
808 
809   FUNCTION ITEM_CODE_IDFORMULA(CUSTOMER_TRX_ID IN NUMBER
810                               ,CUSTOMER_TRX_LINE_ID IN NUMBER
811                               ,AUTO_INVOICE_FLAG IN VARCHAR2
812                               ,INVENTORY_ITEM_ID IN NUMBER) RETURN NUMBER IS
813     V_PICKING_LINE_ID NUMBER;
814     V_ITEM_CODE_ID NUMBER;
815     CURSOR GET_PICKING_LINE_ID_CUR IS
816       SELECT
817         INTERFACE_LINE_ATTRIBUTE7
818       FROM
819         RA_CUSTOMER_TRX_LINES_ALL
820       WHERE CUSTOMER_TRX_ID = ITEM_CODE_IDFORMULA.CUSTOMER_TRX_ID
821         AND CUSTOMER_TRX_LINE_ID = ITEM_CODE_IDFORMULA.CUSTOMER_TRX_LINE_ID
822         AND INTERFACE_LINE_ATTRIBUTE7 IS NOT NULL;
823     CURSOR GET_INVENTORY_ITEM_ID(V_PICKING_LINE_ID IN NUMBER) IS
824       SELECT
825         INVENTORY_ITEM_ID
826       FROM
827         JAI_OM_WSH_LINES_ALL
828       WHERE PICKING_LINE_ID = V_PICKING_LINE_ID;
829   BEGIN
830     IF NVL(AUTO_INVOICE_FLAG
831        ,'N') = 'Y' THEN
832       OPEN GET_PICKING_LINE_ID_CUR;
833       FETCH GET_PICKING_LINE_ID_CUR
834        INTO V_PICKING_LINE_ID;
835       CLOSE GET_PICKING_LINE_ID_CUR;
836       OPEN GET_INVENTORY_ITEM_ID(V_PICKING_LINE_ID);
837       FETCH GET_INVENTORY_ITEM_ID
838        INTO V_ITEM_CODE_ID;
839       CLOSE GET_INVENTORY_ITEM_ID;
840     ELSE
841       V_ITEM_CODE_ID := INVENTORY_ITEM_ID;
842     END IF;
843     RETURN V_ITEM_CODE_ID;
844   END ITEM_CODE_IDFORMULA;
845 
846   FUNCTION CF_24FORMULA(ORGANIZATION_ID IN NUMBER
847                        ,LOCATION_ID IN NUMBER
848                        ,CUSTOMER_TRX_LINE_ID IN NUMBER
849                        ,INVENTORY_ITEM_ID IN NUMBER
850                        ,EXCISE_EXEMPT_TYPE IN VARCHAR2
851                        ,QUANTITY IN NUMBER
852                        ,UNIT_SELLING_PRICE IN NUMBER) RETURN NUMBER IS
853     CURSOR FOR_MODVAT_PERCENTAGE IS
854       SELECT
855         MODVAT_REVERSE_PERCENT
856       FROM
857         JAI_CMN_INVENTORY_ORGS
858       WHERE ORGANIZATION_ID = CF_24FORMULA.ORGANIZATION_ID
859         AND NVL(LOCATION_ID
860          ,0) = NVL(LOCATION_ID
861          ,0);
862     CURSOR FOR_MODVAT_TAX_RATE(CP_TAX_TYPE IN JAI_CMN_TAXES_ALL.TAX_TYPE%TYPE) IS
863       SELECT
864         A.TAX_RATE,
865         B.ROUNDING_FACTOR
866       FROM
867         JAI_AR_TRX_TAX_LINES A,
868         JAI_CMN_TAXES_ALL B
869       WHERE A.TAX_ID = B.TAX_ID
870         AND A.LINK_TO_CUST_TRX_LINE_ID = CF_24FORMULA.CUSTOMER_TRX_LINE_ID
871         AND B.TAX_TYPE = CP_TAX_TYPE;
872     CURSOR ITEM_CLASS_CUR IS
873       SELECT
874         ITEM_CLASS
875       FROM
876         JAI_INV_ITM_SETUPS
877       WHERE INVENTORY_ITEM_ID = CF_24FORMULA.INVENTORY_ITEM_ID
878         AND ORGANIZATION_ID = CF_24FORMULA.ORGANIZATION_ID;
879     V_TAX_RATE NUMBER;
880     V_ROUNDING_FACTOR NUMBER;
881     V_ITEM_CLASS VARCHAR2(10);
882     V_BASIC_ED NUMBER;
883   BEGIN
884     OPEN ITEM_CLASS_CUR;
885     FETCH ITEM_CLASS_CUR
886      INTO V_ITEM_CLASS;
887     CLOSE ITEM_CLASS_CUR;
888     IF NVL(EXCISE_EXEMPT_TYPE
889        ,'@@@') in ('CT2','EXCISE_EXEMPT_CERT') AND V_ITEM_CLASS not in ('OTIN','OTEX') THEN
890       OPEN FOR_MODVAT_PERCENTAGE;
891       FETCH FOR_MODVAT_PERCENTAGE
892        INTO V_TAX_RATE;
893       CLOSE FOR_MODVAT_PERCENTAGE;
894       V_BASIC_ED := ROUND((QUANTITY * UNIT_SELLING_PRICE * V_TAX_RATE) / 100);
895     ELSIF NVL(EXCISE_EXEMPT_TYPE
896        ,'@@@') in ('CT2_OTH','EXCISE_EXEMPT_CERT_OTH') AND V_ITEM_CLASS not in ('OTIN','OTEX') THEN
897       OPEN FOR_MODVAT_TAX_RATE('Modvat Recovery');
898       FETCH FOR_MODVAT_TAX_RATE
899        INTO V_TAX_RATE,V_ROUNDING_FACTOR;
900       CLOSE FOR_MODVAT_TAX_RATE;
901       V_BASIC_ED := (QUANTITY * UNIT_SELLING_PRICE * V_TAX_RATE) / 100;
902       IF V_ROUNDING_FACTOR IS NOT NULL THEN
903         V_BASIC_ED := ROUND(V_BASIC_ED
904                            ,V_ROUNDING_FACTOR);
905       ELSE
906         V_BASIC_ED := ROUND(V_BASIC_ED);
907       END IF;
908     END IF;
912 
909     RETURN (NVL(V_BASIC_ED
910               ,0));
911   END CF_24FORMULA;
913   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
914     CURSOR C_PROGRAM_ID(P_REQUEST_ID IN NUMBER) IS
915       SELECT
916         CONCURRENT_PROGRAM_ID,
917         NVL(ENABLE_TRACE
918            ,'N')
919       FROM
920         FND_CONCURRENT_REQUESTS
921       WHERE REQUEST_ID = P_REQUEST_ID;
922     V_ENABLE_TRACE FND_CONCURRENT_PROGRAMS.ENABLE_TRACE%TYPE;
923     V_PROGRAM_ID FND_CONCURRENT_PROGRAMS.CONCURRENT_PROGRAM_ID%TYPE;
924   BEGIN
925     /*SRW.MESSAGE(1275
926                ,'Report Version is 120.2 Last modified date is 25/07/2005')*/NULL;
927     P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
928     /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
929     BEGIN
930       OPEN C_PROGRAM_ID(P_CONC_REQUEST_ID);
931       FETCH C_PROGRAM_ID
932        INTO V_PROGRAM_ID,V_ENABLE_TRACE;
933       CLOSE C_PROGRAM_ID;
934       /*SRW.MESSAGE(1275
935                  ,'v_program_id -> ' || V_PROGRAM_ID || ', v_enable_trace -> ' || V_ENABLE_TRACE || ', request_id -> ' || P_CONC_REQUEST_ID)*/NULL;
936       IF V_ENABLE_TRACE = 'Y' THEN
937         EXECUTE IMMEDIATE
938           'ALTER SESSION SET EVENTS ''10046 trace name context forever, level 4''';
939       END IF;
940     EXCEPTION
941       WHEN OTHERS THEN
942         /*SRW.MESSAGE(1275
943                    ,'Error during enabling the trace. ErrCode -> ' || SQLCODE || ', ErrMesg -> ' || SQLERRM)*/NULL;
944     END;
945     RETURN (TRUE);
946   END BEFOREREPORT;
947 
948   FUNCTION AFTERREPORT RETURN BOOLEAN IS
949   BEGIN
950     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
951     RETURN (TRUE);
952   END AFTERREPORT;
953 
954 FUNCTION F_10FORMATTRIGGER(CUSTOMER_TRX_ID1 IN NUMBER) RETURN NUMBER IS
955 
956 LV_CT2                  JAI_AR_TRX_LINES.EXCISE_EXEMPT_TYPE%TYPE ;--'CT2';
957 LV_EXCISE_EXEMPT_CERT   JAI_AR_TRX_LINES.EXCISE_EXEMPT_TYPE%TYPE ;--'EXCISE_EXEMPT_CERT';
958 LV_CRT2_OTH             JAI_AR_TRX_LINES.EXCISE_EXEMPT_TYPE%TYPE ;--'CT2_OTH';
959 LV_EXCISE_EXEMPT_OTH    JAI_AR_TRX_LINES.EXCISE_EXEMPT_TYPE%TYPE ;--'EXCISE_EXEMPT_CERT_OTH' ;
960 
961 CURSOR C1 IS
962 SELECT COUNT(*)
963 FROM JAI_AR_TRX_LINES
964 WHERE CUSTOMER_TRX_ID = CUSTOMER_TRX_ID1
965 AND EXCISE_EXEMPT_TYPE IN (LV_CT2, LV_EXCISE_EXEMPT_CERT, LV_CRT2_OTH, LV_EXCISE_EXEMPT_OTH) ;
966 --AND EXCISE_EXEMPT_TYPE IN ('CT2', 'EXCISE_EXEMPT_CERT','CT2_OTH', 'EXCISE_EXEMPT_CERT_OTH');
967 V_COUNT NUMBER;
968 BEGIN
969 
970 LV_CT2                  := 'CT2';
971 LV_EXCISE_EXEMPT_CERT   := 'EXCISE_EXEMPT_CERT';
972 LV_CRT2_OTH             := 'CT2_OTH';
973 LV_EXCISE_EXEMPT_OTH    := 'EXCISE_EXEMPT_CERT_OTH' ;
974 
975   OPEN C1;
976   FETCH C1 INTO V_COUNT;
977   CLOSE C1;
978   RETURN (V_COUNT);
979 END;
980 END JA_JAINVAR_XMLP_PKG;
981 
982