DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSE_GL_INTERFACE_PKG

Source


1 PACKAGE BODY CSE_GL_INTERFACE_PKG AS
2 -- $Header: CSEGLINB.pls 120.15 2006/09/28 23:18:13 kuchauha noship $
3 
4 -------------------------------------------------------------------------------------
5 --  Following procedure derives:
6 --  If GL A/c entires needs to be reversed for this MTL transaction if
7 --  there are any FA Items in Inventory
8 -------------------------------------------------------------------------------------
9 
10 PROCEDURE debug( p_message_text   IN VARCHAR2) IS
11 BEGIN
12    cse_debug_pub.add( p_message_text );
13 EXCEPTION
14   WHEN OTHERS THEN
15        NULL;
16 END debug;
17 
18 PROCEDURE get_gl_interface_code(
19              p_mtl_txn_id        IN NUMBER
20             ,p_csi_txn_id        IN NUMBER
21             ,x_gl_interface_code OUT NOCOPY NUMBER
22             ,x_return_status     OUT NOCOPY VARCHAR2
23             ,x_error_message     OUT NOCOPY VARCHAR2)
24 IS
25 l_depreciate_flag                VARCHAR2(1) ;
26 l_inv_item_id                    NUMBER ;
27 l_eam_item_type                  NUMBER ;
28 l_srl_flag                       VARCHAR2(1);
29 l_entity_code                    VARCHAR2(100) ;
30 l_application_id                 NUMBER ; --CST;
31 l_need_to_post                   VARCHAR2(1);
32 l_return_status                  VARCHAR2(1);
33 l_error_message                  VARCHAR2(500);
34 l_serial_num_control_cd          NUMBER;
35 l_trf_txn_id                     NUMBER ;
36 
37 CURSOR mtl_cur IS
38 SELECT mmt.inventory_item_id
39       ,msi.eam_item_type
40       ,DECODE(msi.asset_creation_code,'1', 'Y','Y','Y','N') depreciate_flag
41       ,serial_number_control_code
42       ,decode(mmt.transaction_action_id ,
43               '2' , mmt.transfer_transaction_id ,
44               '3' , mmt.transfer_transaction_id ,
45               '28', mmt.transfer_transaction_id , mmt.transaction_id ) trf_txn_id
46 FROM   mtl_material_transactions mmt
47       ,mtl_system_items msi
48 WHERE  mmt.transaction_id    = p_mtl_txn_id
49 AND    mmt.inventory_item_id = msi.inventory_item_id
50 AND    mmt.organization_id   = msi.organization_id ;
51 
52 -- Assets expired as of txn date or less would not be reversed
53 Cursor mtl_srl_cur IS
54 SELECT 'Y'
55 FROM   mtl_unit_transactions mut
56       ,csi_item_instances cii
57       ,csi_i_assets cia
58       ,csi_transactions ct
59 WHERE  mut.transaction_id    = p_mtl_txn_id
60 AND    cii.inventory_item_id = mut.inventory_item_id
61 AND    cii.instance_id       = cia.instance_id
62 AND    ct.transaction_id     = p_csi_txn_id
63 AND    cia.creation_date    <= ct.transaction_date
64 AND    nvl(cia.active_end_date, ct.transaction_date + 1) >=  ct.transaction_date ;
65 
66 -- Assumption , If primary ledger is NT (non transferable) then
67 -- all secondary ledgers are NT and shld be marked with
68 -- gl_interface_code 3
69 
70 CURSOR  need_to_post_cur (c_mtl_transaction_id IN NUMBER
71                          ,c_gl_transfer_status_code IN VARCHAR2)
72 IS
73 SELECT  'N' --no need to post to gl
74 FROM    xla_transaction_entities xlte,
75         xla_ae_headers xlaeh
76 WHERE   nvl(xlte.source_id_int_1 , '-99') =  c_mtl_transaction_id
77 AND     xlte.entity_code      		  =  'MTL_ACCOUNTING_EVENTS'
78 AND     xlte.application_id  		  =  707
79 and     xlte.ledger_id in (select distinct caiv.ledger_id
80                            from   cst_acct_info_v caiv, mtl_transaction_accounts mta
81                            where  mta.transaction_id  = c_mtl_transaction_id
82                            and    mta.organization_id = caiv.organization_id )
83 AND   	xlaeh.entity_id       		  =  xlte.entity_id
84 AND   	xlaeh.gl_transfer_status_code 	  = 'NT' ;
85 
86 
87 BEGIN
88  --Init to No need to interface to GL
89 
90  x_gl_interface_code 	:=  3 ; ---None
91  l_srl_flag 		:= 'N' ;
92  l_entity_code 		:= 'MTL_ACCOUNTING_EVENTS';
93  l_application_id  	:=  707;
94  l_need_to_post 	:= 'Y' ;
95 
96 -- Setting the application context to CST Costing.
97   xla_security_pkg.set_security_context(p_application_id => l_application_id );
98 
99  OPEN  mtl_cur ;
100  FETCH mtl_cur INTO l_inv_item_id , l_eam_item_type, l_depreciate_flag,
101                     l_serial_num_control_cd , l_trf_txn_id;
102  CLOSE mtl_cur ;
103 
104  IF l_depreciate_flag = 'Y' OR l_eam_item_type = 1
105  THEN
106     x_gl_interface_code := 1 ; ---Pending
107 
108 -- NT is upgraded data from MTA from prior release before R12
109 -- In prior release we had IB cost hook so we need not wory abt 'NT' data
110 
111     OPEN  need_to_post_cur (p_mtl_txn_id , 'NT');
112     FETCH need_to_post_cur INTO l_need_to_post ;
113     CLOSE need_to_post_cur ;
114 
115 -- For sub trf , direct org and staging trf , if rcv side is NT then
116 -- sending is NT .
117 
118     IF    l_need_to_post = 'Y'
119     THEN
120 --      For subtrf , receipt is not in xla table
121         If (p_mtl_txn_id <> l_trf_txn_id)  THEN
122            OPEN  need_to_post_cur (l_trf_txn_id , 'NT');
123     	   FETCH need_to_post_cur INTO l_need_to_post ;
124            CLOSE need_to_post_cur ;
125         END IF;
126     END IF ;
127 
128     IF  l_need_to_post = 'N'
129     THEN
130 --      upgrade data
131         x_gl_interface_code := 3 ;
132     END if ;
133 
134  ELSE
135 -- MUT record only for serialized item
136    OPEN  mtl_srl_cur ;
137    FETCH mtl_srl_cur INTO l_srl_flag ;
138    CLOSE mtl_srl_cur ;
139 
140    IF l_srl_flag = 'N'
141    THEN
142 --    non srl ,non depreciable,  regular item OR no active CIA
143       x_gl_interface_code := 3 ; --None , no need to interface to GL
144    ELSE
145 --    srl , regular item with ATLEAST one active CIA  record  ias of txn dt
146       x_gl_interface_code := 1 ; ---Pending
147 
148       OPEN  need_to_post_cur (p_mtl_txn_id, 'NT') ;
149       FETCH need_to_post_cur INTO l_need_to_post ;
150       CLOSE need_to_post_cur ;
151 
152       IF    l_need_to_post = 'Y'
153       THEN
154 --      For subtrf , receipt is not in xla table
155         If p_mtl_txn_id <> l_trf_txn_id THEN
156            OPEN  need_to_post_cur (l_trf_txn_id , 'NT');
157     	   FETCH need_to_post_cur INTO l_need_to_post ;
158            CLOSE need_to_post_cur ;
159         END IF;
160       END IF ;
161 
162       IF l_need_to_post = 'N'
163       THEN
164          x_gl_interface_code := 3 ;
165       END IF ;
166 
167    END IF ; --l_srl_flag = 'N'
168  END IF ; ---l_depreciate_flag = 'Y'
169 
170 EXCEPTION
171      WHEN OTHERS
172      THEN
173           CSE_UTIL_PKG.write_log('Error in GET_GL_INTERF_CD : ' ||  SQLERRM);
174 END get_gl_interface_code ;
175 
176 PROCEDURE CREATE_GL_ENTRIES (
177    x_return_status                           OUT NOCOPY VARCHAR2,
178    x_error_msg                     	     OUT NOCOPY VARCHAR2,
179    p_conc_request_id                         IN  NUMBER )
180 IS
181 l_entity_code                                VARCHAR2(100) ;
182 l_application_id                             NUMBER ; -- CST;
183 l_cii_inventory_item_id                      NUMBER ;
184 l_depreciable                                VARCHAR2(1);
185 l_reversal_required                          BOOLEAN ;
186 l_txn_type                                   VARCHAR2(100);
187 l_transaction_type_id                        NUMBER ;
188 l_gl_interface_code                          NUMBER ;
189 l_gl_interface_tbl                           cse_gl_interface_pkg.gl_interface_tbl;
190 l_total_txn_qty                              NUMBER ;
191 l_no_of_fa_items                             NUMBER ;
192 l_gl_ccid                                    NUMBER ;
193 l_gl_amount_cr                               NUMBER ;
194 l_gl_amount_dr                               NUMBER ;
195 l_gl_amount_entered_cr                       NUMBER ;
196 l_gl_amount_entered_dr                       NUMBER ;
197 l_category_name                              VARCHAR2(30) ;
198 l_return_status                              VARCHAR2(1) ;
199 l_error_message                              VARCHAR2(2000) ;
200 l_asset_attrib_rec                           CSE_DATASTRUCTURES_PUB.asset_attrib_rec;
201 l_gl_group_id                                NUMBER ;
202 l_mmt_inventory_item_id                      NUMBER ;
203 l_mta_gl_sl_link_id                          NUMBER ;
204 l_mta_ussgl_transaction_code                 VARCHAR2(30) ;
205 l_mta_encumbrance_type_id                    NUMBER;
206 l_mta_actual_flag                            VARCHAR2(1) ;
207 l_mta_organization_id                        NUMBER;
208 l_mmt_transaction_date                       DATE ;
209 l_ciih_old_quantity                          NUMBER ;
210 l_ciih_new_quantity                          NUMBER ;
211 l_redeploy_qty                               NUMBER;
212 l_expired_qty                                NUMBER;
213 l_stmt_id                                    NUMBER ;
214 --l_gl_transfer_status_code                  VARCHAR2(30);
215 gl_idx                                       PLS_INTEGER;
216 i                                            NUMBER ;
217 e_error                                      EXCEPTION ;
218 e_redeploy_error                             EXCEPTION ;
219 l_fnd_success                                VARCHAR2(1);
220 l_fnd_error                                  VARCHAR2(1);
221 l_accounting_entry_status_code               VARCHAR2(30) ;
222 l_debug                                      VARCHAR2(1);
223 l_file                                       VARCHAR2(500);
224 l_sysdate                                    DATE ;
225 l_gl_insrt_success                           BOOLEAN;
226 l_redeploy_flag                  	     VARCHAR(1);
227 l_serial_num_control_cd                      NUMBER;
228 l_srl_flag                                   VARCHAR2(1);
229 l_trf_txn_id                     	     NUMBER ;
230 l_mmt_txn_action_id                          NUMBER ;
231 l_mmt_txn_id                     	     NUMBER ;
232 
233 CURSOR csi_gl_interface_code_cur
234 IS
235 SELECT ct.transaction_id,
236        ct.transaction_date,
237        ct.inv_material_transaction_id ,
238        ct.gl_interface_status_code
239 FROM   csi_transactions ct
240 WHERE  ct.gl_interface_status_code       = 1  --'PENDING'
241 AND    ct.transaction_status_code        = 'COMPLETE'  ; --only those txn, which are already interfaced to FA
242 
243 -- nvl on gl_interf_status_cd not reqd as t wld have a value when the below cur is opened
244 CURSOR csi_pending_txn_cur
245 IS
246 SELECT ct.inv_material_transaction_id,
247        ct.transaction_type_id,
248        ct.transaction_id
249 FROM   csi_transactions ct
250 WHERE  ct.gl_interface_status_code       = 1  ---'PENDING'
251 AND    ct.transaction_status_code        = 'COMPLETE' ;
252 
253 -- Cursor will be used to get redeployment status of nonexpired assets
254 
255 CURSOR csi_srl_cur(c_csi_transaction_id  IN NUMBER)
256 IS
257 SELECT citd.serial_number,
258        citd.inventory_item_id ,
259        citd.transaction_date
260 FROM   csi_inst_txn_details_v citd
261       ,csi_i_assets cia
262 WHERE  citd.transaction_id      = c_csi_transaction_id
263 AND    citd.instance_id         = cia.instance_id
264 AND    cia.creation_date       <= citd.transaction_date
265 AND    nvl(cia.active_end_date, citd.transaction_date + 1) >  citd.transaction_date ;
266 
267 -- l_csi_srl_rec                    csi_srl_cur%ROWTYPE;
268 
269 /*
270 CURSOR c_expired_cia_cur IS
271 SELECT 'N'
272 FROM   csi_inst_txn_details_v csitd
273       ,csi_i_assets cia
274 WHERE  csitd.transaction_id = csi_pending_txn_rec.transaction_id
275 AND    csitd.instance_id    = cia.instance_id
276 AND    nvl(cia.active_end_date, sysdate) <= sysdate ;
277 */
278 
279 -- Added performance issue
280 -- Before opening cursor , we have flipped txn with trf_txn_id for staging/sub trf
281 CURSOR  cst_acct_info_cur(c_mtl_transaction_id  IN NUMBER ,
282                           c_trf_txn_id          IN NUMBER )
283 IS
284 SELECT  distinct caiv.ledger_id , mmt.transaction_id
285 FROM    cst_acct_info_v  caiv,
286         mtl_transaction_accounts mta,
287         mtl_material_transactions mmt
288 WHERE   mta.transaction_id  = c_mtl_transaction_id
289 AND     mta.organization_id = caiv.organization_id
290 AND     mmt.transaction_id  = c_mtl_transaction_id
291 AND     mmt.transaction_action_id <> 3
292 UNION
293 SELECT  distinct caiv.ledger_id , mmt.transaction_id
294 FROM    cst_acct_info_v  caiv,
295         mtl_transaction_accounts mta ,
296         mtl_material_transactions mmt
297 WHERE   mta.transaction_id  in ( c_mtl_transaction_id , c_trf_txn_id )
298 AND     mta.organization_id = caiv.organization_id
299 AND     mmt.transaction_id  in ( c_mtl_transaction_id , c_trf_txn_id )
300 AND     mmt.transaction_action_id = 3 ;
301 
302 CURSOR category_name_cur
303 IS
304 SELECT user_je_category_name
305 FROM   gl_je_categories
306 WHERE  je_category_name                 = 'MTL';
307 
308 /*
309 CURSOR xla_lookup_cur
310 IS
311 SELECT lookup_code
312 FROM   fnd_lookups
313 WHERE  lookup_type         = 'XLA_ACCOUNTING_CLASS'
314 AND    meaning             = 'INVENTORY VALUATION';
315 */
316 
317 -- ledger_id join ion xlte is only for performance reason.
318 -- xlte is only created for primary ledger but
319 -- We need to reverse all ledger's in xla_ae_headers
320 -- in final mode .
321 
322 CURSOR  xla_header_cur( c_ledger_id           IN NUMBER
323                       , c_mtl_transaction_id  IN NUMBER)
324 IS
325 SELECT  xlaeh.ledger_id,
326         xlaeh.je_category_name,
327         xlaeh.ae_header_id,
328         xlaeh.application_id,
329         xlte.source_id_int_1,
330         xlte.source_id_int_2
331 FROM    xla_transaction_entities xlte,
332         xla_ae_headers xlaeh
333 WHERE   xlte.application_id            	=  707
334 AND     xlte.entity_code                =  'MTL_ACCOUNTING_EVENTS'
335 AND     xlte.ledger_id                  =  c_ledger_id
336 AND     nvl(xlte.source_id_int_1, '-99') = c_mtl_transaction_id
337 AND     xlte.application_id             =  xlaeh.application_id
338 AND     xlte.entity_id                  =  xlaeh.entity_id
339 AND     xlaeh.accounting_entry_status_code = 'F' ;
340 
341 CURSOR  xla_ae_lines_cur( c_application_id IN NUMBER,
342                           c_header_id      IN NUMBER)
343 IS
344 SELECT  xlael.code_combination_id ,
345         xlael.accounted_dr         tot_accounted_dr,
346         xlael.accounted_cr         tot_accounted_cr,
347         xlael.entered_dr           tot_entered_dr,
348         xlael.entered_cr           tot_entered_cr,
349         xlael.currency_code ,
350         xlael.accounting_class_code
351 FROM    xla_ae_lines xlael
352 WHERE   xlael.application_id      	= c_application_id
353 AND     xlael.ae_header_id              = c_header_id ;
354 -- AND  xlael.accounting_class_code     = 'INVENTORY_VALUATION'
355 --GROUP BY xlael.accounting_class_code , xlael.code_combination_id, xlael.currency_code ;
356 
357 BEGIN
358 
359   --Initialize local variables
360   l_entity_code                   := 'MTL_ACCOUNTING_EVENTS';
361   l_application_id                := 707;
362   l_cii_inventory_item_id         := 0;
363 --l_gl_transfer_status_code       := 'Y';
364   l_reversal_required             := FALSE;
365   l_total_txn_qty                 := 0;
366   l_gl_ccid                       := NULL;
367   l_gl_amount_cr                  := 0;
368   l_gl_amount_dr                  := 0;
369   l_gl_amount_entered_cr          := 0;
370   l_gl_amount_entered_dr          := 0;
371   l_stmt_id                       := 0;
372   i                               := 1;
373   gl_idx                          := 1;
374   l_fnd_success                   := fnd_api.g_ret_sts_success ;
375   l_fnd_error                     := fnd_api.g_ret_sts_error ;
376   x_return_status                 := l_fnd_success ;
377 
378 --  Setting the application context to CST Costing.
379   xla_security_pkg.set_security_context(p_application_id => l_application_id );
380 
381   l_debug := NVL(fnd_profile.value('CSE_DEBUG_OPTION'),'N');
382 
383   SELECT SYSDATE INTO l_sysdate FROM DUAL ;
384 
385   BEGIN
386 --  IF (l_debug = 'Y') THEN
387      cse_debug_pub.g_dir  := nvl(FND_PROFILE.VALUE('CSE_DEBUG_LOG_DIRECTORY'), '/tmp');
388      cse_debug_pub.g_file := NULL;
389      l_file               := cse_debug_pub.set_debug_file('cse' || to_char(sysdate, 'DD-MON-YYYY') || '.log');
390      cse_debug_pub.debug_on;
391      debug('************************************************************');
392      debug(' CSEGLINB : Start date : '||to_char(sysdate,'dd-mon-yyyy hh24:mi:ss')
393                            ||' Request id : '||fnd_global.conc_request_ID);
394 --  END IF;
395   EXCEPTION
396     WHEN OTHERS THEN
397     NULL;
398   END;
399 
400   FOR   CSI_GL_INTERFACE_CODE_REC in CSI_GL_INTERFACE_CODE_CUR
401   LOOP
402         IF (l_debug = 'Y')
403         THEN
404             debug('Before Util Pkg CSI_TXN_ID: '
405                         || to_char(csi_gl_interface_code_rec.transaction_id)
406                         || ' CSI_MMT_TXN_ID: '
407                         || to_char(csi_gl_interface_code_rec.inv_material_transaction_id)
408                         || ' GL_INTERF_CD: ' || to_char(csi_gl_interface_code_rec.gl_interface_status_code)
409                  );
410         END IF;
411 --
412         get_gl_interface_code (
413                p_mtl_txn_id        => csi_gl_interface_code_rec.inv_material_transaction_id,
414 	       p_csi_txn_id        => csi_gl_interface_code_rec.transaction_id,
415                x_gl_interface_code => l_gl_interface_code,
416                x_return_status     => l_return_status,
417                x_error_message     => l_error_message);
418 
419         IF l_return_status <> fnd_api.g_ret_sts_success
420         THEN
421            RAISE	e_error ;
422         END IF ;
423 
424         IF (l_debug = 'Y')
425         THEN
426             debug('After Util Pkg CSI_TXN_ID: '
427                             || to_char(csi_gl_interface_code_rec.transaction_id)
428                             || ' CSI_MMT_TXN_ID: '
429                             || to_char(csi_gl_interface_code_rec.inv_material_transaction_id)
430                             || ' GL_INTERF_CD: ' || to_char(l_gl_interface_code)
431                   ) ;
432         END IF;
433 
434         UPDATE csi_transactions
435         SET    gl_interface_status_code      =	l_gl_interface_code
436         WHERE  transaction_id                =  csi_gl_interface_code_rec.transaction_id;
437 
438   END LOOP; --csi_gl_interface_code_rec
439 
440   OPEN   CATEGORY_NAME_CUR;
441   FETCH  category_name_cur INTO l_category_name; --cursor to get je category name
442   CLOSE  CATEGORY_NAME_CUR;
443 
444   IF (l_debug = 'Y')
445   THEN
446     debug('Before Csi_Pending_Txn_Cur') ;
447   END IF;
448 
449   FOR CSI_PENDING_TXN_REC IN CSI_PENDING_TXN_CUR
450   LOOP
451         BEGIN
452           SELECT  mmt.inventory_item_id , mmt.transaction_date ,
453                   msi.serial_number_control_code ,
454                   DECODE(msi.asset_creation_code,'1', 'Y','Y','Y','N'),
455                   DECODE(mmt.transaction_action_id ,
456               		'2' , mmt.transfer_transaction_id ,
457               		'3' , mmt.transfer_transaction_id ,
458               		'28', mmt.transfer_transaction_id , mmt.transaction_id ),
459                   transaction_action_id,
460                   transaction_id
461           INTO    l_mmt_inventory_item_id , l_mmt_transaction_date ,
462                   l_serial_num_control_cd ,
463                   l_depreciable ,
464                   l_trf_txn_id ,
465                   l_mmt_txn_action_id ,
466                   l_mmt_txn_id
467           FROM    mtl_material_transactions mmt , mtl_system_items msi
468           WHERE   mmt.transaction_id    = csi_pending_txn_rec.inv_material_transaction_id
469             AND   mmt.inventory_item_id = msi.inventory_item_id
470             AND   mmt.organization_id   = msi.organization_id ;
471 
472 	  IF (l_debug = 'Y')
473           THEN
474                debug('Inside Csi_Pending_Txn_Cur CSI_MMT_TXN_ID: '
475                          || to_char(csi_pending_txn_rec.inv_material_transaction_id)
476                          || ' MMT_TRF_TXN_ID: ' || to_char(l_trf_txn_id)
477                          || ' MMT_TXN_ACTN_ID: '    || to_char(l_mmt_txn_action_id)
478                     ) ;
479           END IF;
480 
481 -- We use below st. to get txn qty , issues if qty is read qty from MMT
482 -- Do we need any date chk for expired here ??
483 
484           SELECT sum(nvl(ciih.old_quantity, 0) ),
485                  sum(nvl(ciih.new_quantity ,0) ),
486                  cii.inventory_item_id
487           INTO
488                  l_ciih_old_quantity ,
489                  l_ciih_new_quantity ,
490                  l_cii_inventory_item_id
491           FROM   csi_item_instances_h ciih ,
492                  csi_item_instances  cii
493           WHERE  ciih.transaction_id      = csi_pending_txn_rec.transaction_id
494           AND    ciih.instance_id         = cii.instance_id
495           AND    cii.inventory_item_id    = l_mmt_inventory_item_id
496           GROUP  BY cii.inventory_item_id , ciih.transaction_id  ;
497 
498           l_total_txn_qty:= ABS(l_ciih_old_quantity - l_ciih_new_quantity );
499 
500           If  l_total_txn_qty  = 0 then
501               l_total_txn_qty := 1;
502           END IF;
503 
504 --        CSE_UTIL_PKG.CHECK_DEPRECIABLE(     p_inventory_item_id => l_cii_inventory_item_id,
505 --                                            p_depreciable       => l_depreciable );
506 
507 --        IF (l_debug = 'Y')
508 --        THEN
509                debug(' Item Id     : '  ||to_char(l_cii_inventory_item_id) ||
510                      ' Depreciable : '  ||l_depreciable ||
511                      ' Tot Txn Qty   : ' ||to_char(l_total_txn_qty) ) ;
512 --        END IF;
513 
514           l_redeploy_qty := 0 ;
515           IF  l_depreciable  = 'Y' -- Item is depreciable
516           THEN
517 
518 -- ??? We can be here only for deprec srl/non srl or regular srl items as we do
519 --     not reverse regular non-srl
520 
521  	    IF l_serial_num_control_cd IN (2,5) THEN
522  -- 		   l_srl_flag     := 'Y';
523  --  for redeploy , already cursor csi_srl_rec filters for expired CIA
524     		   FOR  csi_srl_rec in csi_srl_cur(csi_pending_txn_rec.transaction_id)
525                    LOOP
526     		       cse_util_pkg.get_redeploy_flag (
527               		 p_inventory_item_id  => csi_srl_rec.inventory_item_id
528              		,p_serial_number      => csi_srl_rec.serial_number
529              		,p_transaction_date   => csi_srl_rec.transaction_date
530              		,x_redeploy_flag      => l_redeploy_flag
531              		,x_return_status      => l_return_status
532              		,x_error_message      => l_error_message);
533 
534            		IF     l_return_status <> fnd_api.g_ret_sts_success
535            		THEN
536                		RAISE  e_redeploy_error ;
537            		END IF ;
538 
539                         If l_redeploy_flag = 'Y' THEN
540                            l_redeploy_qty  := l_redeploy_qty + 1 ;
541                         End If ;
542                    END LOOP ;
543  	    END IF;
544 
545             l_expired_qty := 0 ;
546 
547  -- get tot expired qty before the current txn date , note the <
548 	   SELECT  sum(nvl(cia.asset_quantity, 0)) into l_expired_qty
549 	     FROM  csi_inst_txn_details_v citd
550       		  ,csi_i_assets cia
551 	    WHERE  citd.transaction_id      = csi_pending_txn_rec.transaction_id
552               AND  citd.instance_id         = cia.instance_id
553               AND  cia.creation_date       <= citd.transaction_date
554               AND  nvl(cia.active_end_date, citd.transaction_date+ 1) <  citd.transaction_date ;
555 
556 --          Any asset creating txn other than a redeploy part of it  shld be reversed
557 --          For redeploy , asset has been created previously , so reverse
558             l_no_of_fa_items     := 0 ;
559             IF  csi_pending_txn_rec.transaction_type_id IN (105,112,117,128,129)
560               --105 : 'PO_RECEIPT_INTO_PROJECT' -- Not possible as no associated Inv txn
561               --112 : 'PO_RECEIPT_INTO_INVENTORY'
562               --117 : 'MISC_RECEIPT'
563               --128 : 'ACCT_RECEIPT'
564               --129 : 'ACCT_ALIAS_RECEIPT'
565             THEN
566                 If l_redeploy_qty 	= 0 then
567                    l_reversal_required  := FALSE;
568                    l_no_of_fa_items     := 0 ; -- adding so below if does not fail
569                                                -- rev_rqd OR # of fa_items
570                 Else
571                    l_no_of_fa_items     := l_redeploy_qty ;
572                    l_reversal_required  := TRUE;
573                 End if ;
574             ELSE
575               -- for depr itm, all txns other than above list
576                 l_no_of_fa_items     := nvl(l_total_txn_qty ,0)  - nvl(l_expired_qty , 0);
577                 If l_no_of_fa_items 	= 0 then
578                    l_reversal_required  := FALSE;
579                 Else
580                    l_reversal_required  := TRUE;
581                 End if;
582             END IF ; -- txn_type_id in condn
583           END IF ; --l_depreciable='Y'
584 
585 --        below for regular srl items ONLY
586 --        Get the number of FA Items for normal items in inventory
587           IF l_depreciable = 'N'
588           THEN
589 --          active_end_date can't be future dated , chk for performance
590 --          # of active assets at the time of txn date
591 	     SELECT  sum(cia.asset_quantity)
592                INTO  l_no_of_fa_items
593 	       FROM  csi_inst_txn_details_v citd
594       		    ,csi_i_assets cia
595 	      WHERE  citd.transaction_id      = csi_pending_txn_rec.transaction_id
596               AND    citd.instance_id         = cia.instance_id
597               AND    cia.creation_date        <= citd.transaction_date
598               AND    nvl(cia.active_end_date, citd.transaction_date+ 1) >=  citd.transaction_date ;
599 /*
600              SELECT   sum(cia.asset_quantity)
601              INTO     l_no_of_fa_items
602              FROM     csi_item_instances cii,
603                       csi_transactions ct ,
604                       csi_item_instances_h ciih ,
605                       csi_i_assets cia
606              WHERE    cii.instance_id   = ciih.instance_id
607              AND      ct.transaction_id = ciih.transaction_id
608              AND      ct.transaction_id = csi_pending_txn_rec.transaction_id
609              AND      cia.instance_id   = cii.instance_id
610              AND      cia.creation_date < ct.transaction_date
611              AND      cia.active_end_date is null ;
612 */
613           END IF ; --l_depreciable='N'
614 
615           debug ( ' Redeploy Qty: '   || to_char(l_redeploy_qty) ||
616                   '       Expired  Qty: '   || to_char(nvl(l_expired_qty, 0))  ||
617                   ' Num_Of_FA_Itms: ' || to_char(l_no_of_fa_items)
618                 ) ;
619 
620           IF l_reversal_required OR NVL(l_no_of_fa_items,0) > 0
621           THEN
622 --
623            l_gl_insrt_success := FALSE;
624 
625            IF    l_mmt_txn_action_id in (2  , 28)
626            THEN
627                  l_mmt_txn_id := l_trf_txn_id ;
628            END IF ;
629 
630            IF (l_debug = 'Y')
631            THEN
632               debug('Before Cst_Acct_Info_Cur' ) ;
633            END IF;
634 
635            FOR  cst_acct_info_rec IN cst_acct_info_cur( l_mmt_txn_id  , l_trf_txn_id)
636            LOOP
637                 IF (l_debug = 'Y')
638                 THEN
639                     debug('Before Xla_Header_Cur'
640                                || ' CST_LEDG_ID: '     || to_char(cst_acct_info_rec.ledger_id)
641                                || '  CST_MMT_TXN_ID: ' || to_char(cst_acct_info_rec.transaction_id) );
642                 END IF;
643 --
644                 FOR xla_header_rec IN xla_header_cur(  cst_acct_info_rec.ledger_id
645                                                      , cst_acct_info_rec.transaction_id )
646                 LOOP
647 --
648                  IF (l_debug = 'Y')
649                  THEN
650                     debug('Inside Xla_Header_Cur'
651                                || ' XLA_ORG_ID: '     || to_char(xla_header_rec.source_id_int_2)
652                                || ' XLA_MMT_TXN_ID: ' || to_char(xla_header_rec.source_id_int_1) ) ;
653                  END IF;
654 
655                  SELECT
656                       mta.gl_sl_link_id,
657                       mta.ussgl_transaction_code,
658                       mta.encumbrance_type_id,
659                       mta.organization_id,
660                       DECODE(mta.encumbrance_type_id, NULL, 'A', 'E')
661                  INTO
662                       l_mta_gl_sl_link_id,
663                       l_mta_ussgl_transaction_code,
664                       l_mta_encumbrance_type_id,
665                       l_mta_organization_id,
666                       l_mta_actual_flag
667                  FROM
668                       mtl_transaction_accounts mta
669                  WHERE
670                       mta.transaction_id  = xla_header_rec.source_id_int_1
671                  AND  mta.organization_id = xla_header_rec.source_id_int_2
672                  AND  rownum  = 1 ;
673 
674                  IF  i = 1
675                  THEN
676                      SELECT GL_INTERFACE_CONTROL_S.NEXTVAL INTO l_gl_group_id FROM DUAL ;
677                  END IF ;
678 
679 
680                  IF (l_debug = 'Y')
681                  THEN
682                     debug('Before Xla_Ae_Lines_Cur'
683                                        || ' XLA_APPN_ID: ' || to_char(xla_header_rec.application_id)
684                                        || ' XLA_HDR_ID: ' || to_char(xla_header_rec.ae_header_id)
685                          ) ;
686                  END IF;
687 
688                FOR xla_ae_lines_rec IN  xla_ae_lines_cur (
689                         xla_header_rec.application_id ,
690                         xla_header_rec.ae_header_id )
691                LOOP
692                    l_gl_ccid                      := NULL;
693                    l_gl_amount_cr                 := 0;
694                    l_gl_amount_dr                 := 0;
695                    l_gl_amount_entered_cr         := 0;
696                    l_gl_amount_entered_dr         := 0;
697 
698 --                    IF (l_debug = 'Y')
699 --                    THEN
700                         debug( 'Inside Xla_Ae_Lines_Cur '
701                         || '  Gl_Idx: '   || to_char(gl_idx)
702                         || '  I: '        || to_char(i) ) ;
703 --                    END IF;
704 
705                     IF  xla_ae_lines_rec.tot_accounted_dr > 0
706                     THEN
707                         l_gl_ccid        := xla_ae_lines_rec.code_combination_id;
708                         l_gl_amount_cr   := (xla_ae_lines_rec.tot_accounted_dr/l_total_txn_qty) * l_no_of_fa_items;
709                         l_gl_amount_entered_cr := (xla_ae_lines_rec.tot_entered_dr/l_total_txn_qty) * l_no_of_fa_items;
710 --
711 --                        IF (l_debug = 'Y')
712 --                        THEN
713                              debug('  Credit Gl_Ccid :' || to_char(l_gl_ccid)
714                                       || '  Amt: ' || to_char(l_gl_amount_cr)
715                                       || '  Ent_Amt: ' || to_char(l_gl_amount_entered_cr) );
716 --                        END IF;
717 
718                     ELSIF xla_ae_lines_rec.tot_accounted_cr > 0
719                     THEN
720                         l_gl_ccid        := xla_ae_lines_rec.code_combination_id;
721                         l_gl_amount_dr   := (xla_ae_lines_rec.tot_accounted_cr/l_total_txn_qty) * l_no_of_fa_items;
722                         l_gl_amount_entered_dr := (xla_ae_lines_rec.tot_entered_cr/l_total_txn_qty)   * l_no_of_fa_items;
723 --
724 --                        IF (l_debug = 'Y')
725 --                        THEN
726                             debug('  Debit Gl_Ccid: ' || to_char(l_gl_ccid)
727                                     || '  Amt: ' || to_char(l_gl_amount_dr)
728                                     || '  Ent_Amt: ' || to_char(l_gl_amount_entered_dr) );
729 --                        END IF;
730                     END IF;
731 
732 --                   IF (l_debug = 'Y')
733 --                   THEN
734                     debug('  Currency: '   || xla_ae_lines_rec.currency_code ||
735                           '  Actual: '     || l_mta_actual_flag ||
736                           '  Encum_Type_Id: ' || l_mta_encumbrance_type_id ||
737                           '  Category: '   || l_category_name   ||
738                           '  SOB: '        || to_char(xla_header_rec.ledger_id) ) ;
739 --                   END IF;
740 
741 
742         -- Check if we need to pass xlael.accounting_class_code to gl_interface
743 
744           l_gl_interface_tbl(gl_idx).STATUS                := 'NEW';
745           l_gl_interface_tbl(gl_idx).ACCOUNTING_DATE       :=  l_mmt_transaction_date;
746           l_gl_interface_tbl(gl_idx).DATE_CREATED          :=  SYSDATE;
747           l_gl_interface_tbl(gl_idx).CREATED_BY            :=  fnd_global.user_id ;
748           l_gl_interface_tbl(gl_idx).ACTUAL_FLAG           :=  l_mta_actual_flag;
749           l_gl_interface_tbl(gl_idx).USER_JE_CATEGORY_NAME :=  l_category_name  ;
750           l_gl_interface_tbl(gl_idx).USER_JE_SOURCE_NAME   := 'Inventory'    ;
751           l_gl_interface_tbl(gl_idx).ENCUMBRANCE_TYPE_ID   :=  l_mta_encumbrance_type_id;
752           l_gl_interface_tbl(gl_idx).SET_OF_BOOKS_ID       :=  xla_header_rec.ledger_id;
753           l_gl_interface_tbl(gl_idx).CODE_COMBINATION_ID   :=  l_gl_ccid;
754           l_gl_interface_tbl(gl_idx).CURRENCY_CODE         :=  xla_ae_lines_rec.currency_code;
755           l_gl_interface_tbl(gl_idx).ENTERED_DR            :=  l_gl_amount_entered_dr;
756           l_gl_interface_tbl(gl_idx).ENTERED_CR            :=  l_gl_amount_entered_cr;
757           l_gl_interface_tbl(gl_idx).ACCOUNTED_DR          :=  l_gl_amount_dr;
758           l_gl_interface_tbl(gl_idx).ACCOUNTED_CR          :=  l_gl_amount_cr;
759           l_gl_interface_tbl(gl_idx).TRANSACTION_DATE      :=  l_mmt_transaction_date;
760           l_gl_interface_tbl(gl_idx).REFERENCE1            :=  'Oracle Asset Tracking Reversal' ;
761           l_gl_interface_tbl(gl_idx).REFERENCE2            :=  NULL;--open issue
762           l_gl_interface_tbl(gl_idx).REFERENCE5            :=  NULL;--open issue
763           l_gl_interface_tbl(gl_idx).REFERENCE10           :=  NULL;--open issue
764           l_gl_interface_tbl(gl_idx).REFERENCE22           :=  xla_header_rec.source_id_int_2;
765           l_gl_interface_tbl(gl_idx).REFERENCE23           :=  xla_header_rec.source_id_int_1;
766           l_gl_interface_tbl(gl_idx).USSGL_TRANSACTION_CODE := l_mta_ussgl_transaction_code;
767           l_gl_interface_tbl(gl_idx).GROUP_ID              :=  l_gl_group_id ;
768           l_gl_interface_tbl(gl_idx).GL_SL_LINK_ID         :=  l_mta_gl_sl_link_id ;
769           l_gl_interface_tbl(gl_idx).GL_SL_LINK_TABlE      := 'MTA';
770           l_gl_interface_tbl(gl_idx).request_id            :=  fnd_global.conc_request_ID ;
771 
772            IF (l_debug = 'Y')
773            THEN
774                  debug('Before Inserting Into Gl_Interface ' ) ;
775            END IF;
776                 INSERT  INTO   GL_INTERFACE(
777                             GROUP_ID,
778                             STATUS,
779                             SET_OF_BOOKS_ID,
780                             USER_JE_SOURCE_NAME,
781                             USER_JE_CATEGORY_NAME,
782                             ACCOUNTING_DATE,
783                             CURRENCY_CODE,
784                             ACTUAL_FLAG,
785                             ENCUMBRANCE_TYPE_ID,
786                             DATE_CREATED,
787                             CREATED_BY,
788                             ENTERED_DR,
789                             ENTERED_CR,
790                             REFERENCE1,
791                             REFERENCE2,
792                             REFERENCE5,
793                             REFERENCE10,
794                             REFERENCE21,
795                             REFERENCE22,
796                             REFERENCE23,
797                             CODE_COMBINATION_ID,
798                             USSGL_TRANSACTION_CODE,
799                             ACCOUNTED_DR,
800                             ACCOUNTED_CR,
801                             GL_SL_LINK_ID,
802                             GL_SL_LINK_TABLE,
803                             REQUEST_ID,
804                             SEGMENT1,  SEGMENT2,   SEGMENT3,   SEGMENT4,   SEGMENT5,
805                             SEGMENT6,  SEGMENT7,   SEGMENT8,   SEGMENT9,   SEGMENT10,
806                             SEGMENT11, SEGMENT12,  SEGMENT13,  SEGMENT14,  SEGMENT15,
807                             SEGMENT16, SEGMENT17,  SEGMENT18,  SEGMENT19,  SEGMENT20,
808                             SEGMENT21, SEGMENT22,  SEGMENT23,  SEGMENT24,  SEGMENT25,
809                             SEGMENT26, SEGMENT27,  SEGMENT28,  SEGMENT29,  SEGMENT30)
810         VALUES (  l_gl_group_id
811          ,DECODE( l_gl_interface_tbl(i).status ,
812                                         FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).status )
813          ,DECODE( l_gl_interface_tbl(i).set_of_books_id,
814                                         FND_API.G_MISS_NUM,  NULL,  l_gl_interface_tbl(i).set_of_books_id)
815          ,DECODE( l_gl_interface_tbl(i).user_je_source_name,
816                                         FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).user_je_source_name)
817          ,DECODE( l_gl_interface_tbl(i).user_je_category_name,
818                                         FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).user_je_category_name)
819          ,DECODE( l_gl_interface_tbl(i).accounting_date,
820                                         FND_API.G_MISS_DATE, NULL, l_gl_interface_tbl(i).accounting_date)
821          ,DECODE( l_gl_interface_tbl(i).currency_code ,
822                                         FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).currency_code)
823          ,DECODE( l_gl_interface_tbl(i).actual_flag   ,
824                                         FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).actual_flag)
825          ,DECODE( l_gl_interface_tbl(i).encumbrance_type_id ,
826                                         FND_API.G_MISS_NUM,  NULL, l_gl_interface_tbl(i).encumbrance_type_id)
827          ,DECODE( l_gl_interface_tbl(i).date_created,
828                                         FND_API.G_MISS_DATE, NULL, l_gl_interface_tbl(i).date_created)
829          ,DECODE( l_gl_interface_tbl(i).created_by  ,
830                                         FND_API.G_MISS_NUM, NULL,  l_gl_interface_tbl(i).created_by)
831          ,DECODE( l_gl_interface_tbl(i).entered_dr  ,
832                                         FND_API.G_MISS_NUM, NULL,  l_gl_interface_tbl(i).entered_dr)
833          ,DECODE( l_gl_interface_tbl(i).entered_cr  ,
834                                         FND_API.G_MISS_NUM, NULL,  l_gl_interface_tbl(i).entered_cr)
835          ,DECODE( l_gl_interface_tbl(i).reference1  ,
836                                         FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).reference1)
837          ,DECODE( l_gl_interface_tbl(i).reference2  ,
838 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).reference2)
839          ,DECODE( l_gl_interface_tbl(i).reference5  ,
840 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).reference5)
841          ,DECODE( l_gl_interface_tbl(i).reference10 ,
842 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).reference10)
843          ,DECODE( l_gl_interface_tbl(i).reference21 ,
844 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).reference21)
845          ,DECODE( l_gl_interface_tbl(i).reference22 ,
846 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).reference22)
847          ,DECODE( l_gl_interface_tbl(i).reference23 ,
848 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).reference23)
849          ,DECODE( l_gl_interface_tbl(i).code_combination_id ,
850                                         FND_API.G_MISS_NUM, NULL, l_gl_interface_tbl(i).code_combination_id)
851          ,DECODE( l_gl_interface_tbl(i).ussgl_transaction_code,
852                                         FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).ussgl_transaction_code)
853          ,DECODE( l_gl_interface_tbl(i).accounted_dr ,
854 					FND_API.G_MISS_NUM, NULL,  l_gl_interface_tbl(i).accounted_dr)
855          ,DECODE( l_gl_interface_tbl(i).accounted_cr ,
856 					FND_API.G_MISS_NUM, NULL,  l_gl_interface_tbl(i).accounted_cr)
857          ,DECODE( l_gl_interface_tbl(i).gl_sl_link_id ,
858 					FND_API.G_MISS_NUM, NULL,  l_gl_interface_tbl(i).gl_sl_link_id)
859          ,DECODE( l_gl_interface_tbl(i).gl_sl_link_table,
860                                         FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).gl_sl_link_table)
861          ,DECODE( l_gl_interface_tbl(i).request_id ,
862 					FND_API.G_MISS_NUM, NULL, l_gl_interface_tbl(i).request_id)
863          ,DECODE( l_gl_interface_tbl(i).segment1   ,
864 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment1 )
865          ,DECODE( l_gl_interface_tbl(i).segment2   ,
866 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment2 )
867          ,DECODE( l_gl_interface_tbl(i).segment3   ,
868 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment3 )
869          ,DECODE( l_gl_interface_tbl(i).segment4   ,
870 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment4 )
871          ,DECODE( l_gl_interface_tbl(i).segment5   ,
872 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment5 )
873          ,DECODE( l_gl_interface_tbl(i).segment6   ,
874 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment6 )
875          ,DECODE( l_gl_interface_tbl(i).segment7   ,
876 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment7 )
877          ,DECODE( l_gl_interface_tbl(i).segment8   ,
878 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment8 )
879          ,DECODE( l_gl_interface_tbl(i).segment9   ,
880 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment9 )
881          ,DECODE( l_gl_interface_tbl(i).segment10  ,
882 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment10 )
883          ,DECODE( l_gl_interface_tbl(i).segment11  ,
884 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment11 )
885          ,DECODE( l_gl_interface_tbl(i).segment12  ,
886 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment12 )
887          ,DECODE( l_gl_interface_tbl(i).segment13  ,
888 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment13 )
889          ,DECODE( l_gl_interface_tbl(i).segment14  ,
890 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment14 )
891          ,DECODE( l_gl_interface_tbl(i).segment15  ,
892 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment15 )
893          ,DECODE( l_gl_interface_tbl(i).segment16  ,
894 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment16 )
895          ,DECODE( l_gl_interface_tbl(i).segment17  ,
896 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment17 )
897          ,DECODE( l_gl_interface_tbl(i).segment18  ,
898 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment18 )
899          ,DECODE( l_gl_interface_tbl(i).segment19  ,
900 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment19 )
901          ,DECODE( l_gl_interface_tbl(i).segment20  ,
902 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment20 )
903          ,DECODE( l_gl_interface_tbl(i).segment21  ,
904 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment21 )
905          ,DECODE( l_gl_interface_tbl(i).segment22  ,
906 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment22 )
907          ,DECODE( l_gl_interface_tbl(i).segment23  ,
908 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment23 )
909          ,DECODE( l_gl_interface_tbl(i).segment24  ,
910 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment24 )
911          ,DECODE( l_gl_interface_tbl(i).segment25  ,
912 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment25 )
913          ,DECODE( l_gl_interface_tbl(i).segment26  ,
914 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment26 )
915          ,DECODE( l_gl_interface_tbl(i).segment27  ,
916 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment27 )
917          ,DECODE( l_gl_interface_tbl(i).segment28  ,
918 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment28 )
919          ,DECODE( l_gl_interface_tbl(i).segment29  ,
920 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment29 )
921          ,DECODE( l_gl_interface_tbl(i).segment30  ,
922 					FND_API.G_MISS_CHAR, NULL, l_gl_interface_tbl(i).segment30 )
923          ) ;
924 
925 	 IF SQL%FOUND THEN
926             l_gl_insrt_success := TRUE;
927          END IF;
928 --
929          gl_idx        :=  gl_idx + 1; --increment the gl index
930          i             :=  i + 1;
931 --
932         END LOOP;  --- xla_ae_lines_curser
933       END LOOP;     --- xla_header_cur
934      END LOOP;  --- cst_acct_info_cur
935 
936       IF  l_gl_insrt_success THEN
937 --
938 --      IF (l_debug = 'Y')
939 --      THEN
940          debug('Before Upd Csi_Txn_Status To 2 for Csi_Mmt_Txn_Id: '
941                                 || to_char(csi_pending_txn_rec.inv_material_transaction_id) ) ;
942 --      END IF;
943          UPDATE csi_transactions
944          SET    gl_interface_status_code      = 2 ---'POSTED'
945          WHERE  inv_material_transaction_id   = csi_pending_txn_rec.inv_material_transaction_id;
946       END IF;
947    ELSE
948 --
949 --       IF (l_debug = 'Y')
950 --       THEN
951                debug('Before Upd Csi_Txn_Status To 3 for Csi_Mmt_Txn_Id: '
952                                 || to_char(csi_pending_txn_rec.inv_material_transaction_id) ) ;
953 --         END IF;
954 
955          UPDATE csi_transactions
956             SET gl_interface_status_code    = 3 ---'NONE'
957           WHERE inv_material_transaction_id = csi_pending_txn_rec.inv_material_transaction_id;
958 --
959    END IF ; -- reversal_required or regular item with CIA
960 --
961    EXCEPTION
962 -- This exception would catch no_data_found on MMT and other tables and skip
963 -- to next cursor record.
964       WHEN no_data_found
965       THEN
966            CSE_UTIL_PKG.write_log('Error in CREATE_GL_ENTRIES CSI_TXN_ID: '
967                          ||to_char(csi_pending_txn_rec.transaction_id)
968                          || ' CSI_MMT_TXN_ID: '
969                          || to_char(csi_pending_txn_rec.inv_material_transaction_id)
970                          || l_error_message ) ;
971       WHEN e_redeploy_error
972       THEN
973            CSE_UTIL_PKG.write_log('Error in CREATE_GL_ENTRIES Redeploy CSI_TXN_ID: '
974                          || to_char(csi_pending_txn_rec.transaction_id)
975                          || ' CSI_MMT_TXN_ID: '
976                          || to_char(csi_pending_txn_rec.inv_material_transaction_id)
977 		         || l_error_message);
978    End ;
979 END LOOP; --- csi_pending_txn_cur
980 
981 debug(' End date : '||to_char(sysdate,'dd-mon-yyyy hh24:mi:ss'));
982 EXCEPTION
983      WHEN e_error
984      THEN
985           CSE_UTIL_PKG.write_log('Error in CREATE_GL_ENTRIES :' || l_error_message);
986      WHEN OTHERS
987      THEN
988           CSE_UTIL_PKG.write_log('Error in CREATE_GL_ENTRIES : ' ||  SQLERRM);
989 END CREATE_GL_ENTRIES ;
990 
991 END CSE_GL_INTERFACE_PKG ;