[Home] [Help]
PACKAGE BODY: APPS.JL_BR_SPED_DATA_EXTRACT_PKG
Source
1 PACKAGE BODY JL_BR_SPED_DATA_EXTRACT_PKG AS
2 /* $Header: jlbraseb.pls 120.11.12020000.2 2012/07/20 09:31:14 rahulkum ship $ */
3
4 l_cc_exists_flag number :=1; -- cost center setup flag. it will become zero if cost center setup not done in intialize proc.
5 l_exclusive_mode VARCHAR2(1);
6 l_estb_acts_as_company VARCHAR2(1); -- This flag explains whethere LE is acting as company or Establishment is acting as company
7 -- Will populate this flag with 'Y' , if accounting_type is 'CENTRALIZED' and establishment_id is not null.
8 g_state_insc_tax_regime zx_registrations.tax_regime_code%TYPE;
9 g_state_insc_tax zx_registrations.tax%TYPE;
10 g_municipal_insc_tax_regime zx_registrations.tax_regime_code%TYPE;
11 g_municipal_insc_tax zx_registrations.tax%TYPE;
12
13 PROCEDURE register_I051(p_account_flex_value fnd_flex_values.flex_value%TYPE );
14 PROCEDURE register_I052(p_account_flex_value fnd_flex_values.flex_value%TYPE );
15 PROCEDURE register_I250(p_journal_header_id gl_je_headers.je_header_id%TYPE,
16 p_journal_name gl_je_headers.name%TYPE,
17 p_journal_source gl_je_headers.je_source%TYPE,
18 p_je_category gl_je_headers.je_category%TYPE);
19
20 PROCEDURE revert_negative_journals;
21
22 PROCEDURE initialize( p_ledger_id GL_SETS_OF_BOOKS.SET_OF_BOOKS_ID%TYPE,
23 p_chart_of_accounts_id GL_SETS_OF_BOOKS.chart_of_accounts_id%TYPE,
24 p_accounting_type VARCHAR2,
25 p_legal_entity_id XLE_ENTITY_PROFILES.LEGAL_ENTITY_ID%TYPE,
26 p_establishment_id XLE_ETB_PROFILES.ESTABLISHMENT_ID%TYPE,
27 p_is_special_situation VARCHAR2,
28 p_period_type VARCHAR2,
29 p_period_name GL_PERIOD_STATUSES.PERIOD_NAME%TYPE,
30 p_adjustment_period_name GL_PERIOD_STATUSES.PERIOD_NAME%TYPE,
31 p_start_date VARCHAR2,
32 p_end_date VARCHAR2,
33 p_special_situation_indicator VARCHAR2,
34 p_bookkeeping_type VARCHAR2,
35 p_participant_type JL_BR_SPED_PARTIC_CODES.PARTICIPANT_TYPE%TYPE,
36 p_accounting_segment_type VARCHAR2,
37 p_coa_mapping_id VARCHAR2,
38 p_balance_statement_request_id fnd_concurrent_requests.request_id%TYPE,
39 p_agglutination_code_source VARCHAR2,
40 p_income_statement_request_id fnd_concurrent_requests.request_id%TYPE,
41 p_journal_for_rtf NUMBER,
42 p_hash_code VARCHAR2, -- auxillary book
43 p_acct_stmt_ident VARCHAR2,
44 p_acct_stmt_header VARCHAR2,
45 p_gen_sped_text_file VARCHAR2,
46 p_inscription_source VARCHAR2,
47 p_le_state_reg_code VARCHAR2,
48 p_le_municipal_reg_code VARCHAR2,
49 p_state_insc_tax_id NUMBER,
50 p_ebtax_state_reg_code VARCHAR2,
51 p_municipal_insc_tax_id NUMBER,
52 p_ebtax_municipal_reg_code VARCHAR2);
53
54 PROCEDURE revert_negative_journals IS
55
56 cursor journals_with_negative_amts is
57 select distinct field6
58 from jl_br_sped_extr_data_t a
59 where request_id = g_concurrent_request_id
60 and field1='I250'
61 and not exists (select 1
62 from jl_br_sped_extr_data_t
63 where request_id = g_concurrent_request_id
64 and field4 like '%####%'
65 and field6 = a.field6
66 and field1='I250')
67 and substr(field4,1,1) = '-';
68
69 cursor accts_with_negative_amts is
70 select distinct field2 na ,field3 cc
71 from jl_br_sped_extr_data_t a
72 where field1 ='I250'
73 and request_id = g_concurrent_request_id
74 and not exists (select 1
75 from jl_br_sped_extr_data_t
76 where request_id = g_concurrent_request_id
77 and field1 = 'I250'
78 and field4 like '%####%'
79 and field2 = a.field2
80 and field3 = a.field3)
81 and substr(field4,1,1) = '-';
82
83 /* TYPE journal_array IS TABLE OF journals_with_negative_amts%ROWTYPE;
84 TYPE acct_array IS TABLE OF accts_with_negative_amts%ROWTYPE;
85 journals_tab journal_array;
86 accts_tab acct_array; */
87
88 TYPE journals_tab_type IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
89 TYPE naturalaccts_tab_type IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
90 TYPE costcenters_tab_type IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
91
92 journals_tab journals_tab_type;
93 naturalaccts_tab naturalaccts_tab_type;
94 costcenters_tab costcenters_tab_type;
95 l_api_name CONSTANT VARCHAR2(30) :='REVERT_NEGATIVE_JOURNALS';
96 BEGIN
97 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
98 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
99 G_PKG_NAME||': '||l_api_name||'()+');
100 END IF;
101
102 --fnd_file.put_line(fnd_file.log,'in revert negative journals');
103 BEGIN
104
105 open journals_with_negative_amts;
106 fetch journals_with_negative_amts bulk collect into journals_tab;
107 close journals_with_negative_amts;
108
109 --fnd_file.put_line(fnd_file.log,'in revert negative journals - After journals fetch');
110 open accts_with_negative_amts;
111 fetch accts_with_negative_amts bulk collect into naturalaccts_tab,costcenters_tab;
112 close accts_with_negative_amts;
113
114 EXCEPTION
115 WHEN OTHERS THEN
116
117 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
118 IF g_debug_flag = 'Y' THEN
119 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
120 END IF;
121 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
122 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
123 END IF;
124 g_errbuf := 'ERROR While reverting the negative journals '||SQLERRM;
125 g_retcode := 2;
126 return;
127 END;
128
129 --fnd_file.put_line(fnd_file.log,'in revert negative journals - After accts fetch');
130
131 BEGIN
132
133 update jl_br_sped_extr_data_t a
134 set field4 = trim(to_char(abs(to_number(field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')),'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')),
135 field5 = decode(field5,'C','D','D','C')
136 where field1 = 'I250'
137 and substr(field4,1,1)='-'
138 and request_id = g_concurrent_request_id
139 and not exists (select 1
140 from jl_br_sped_extr_data_t b
141 where a.field6 = b.field6
142 and b.field1 = 'I250'
143 and b.request_id = g_concurrent_request_id
144 and b.field4 like '%###%');
145
146
147 --fnd_file.put_line(fnd_file.log,'in revert negative journals - After I250 update');
148 forall i in journals_tab.first .. journals_tab.last
149
150 update jl_br_sped_extr_data_t a -- need to verify
151 set field4 = (select trim(to_char(sum(to_number(field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')),'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
152 from jl_br_sped_extr_data_t b
153 where b.field1 ='I250'
154 and b.field6 = journals_tab(i)
155 and b.field5 = 'D'
156 and b.request_id = g_concurrent_request_id)
157 where a.field1 = 'I200'
158 and a.field2 = journals_tab(i)
159 and a.request_id = g_concurrent_request_id;
160
161 --fnd_file.put_line(fnd_file.log,'in revert negative journals - After I200 update');
162 forall i in naturalaccts_tab.first .. naturalaccts_tab.last
163
164 update jl_br_sped_extr_data_t a
165 set field6 = (select trim(to_char(nvl(sum(to_number(field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')),0),'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
166 from jl_br_sped_extr_data_t b
167 where b.field1 = 'I250'
168 and b.field5 = 'D'
169 and b.field2 = naturalaccts_tab(i)
170 and b.field3 = costcenters_tab(i)
171 and b.request_id = g_concurrent_request_id),
172 field7 =(select trim(to_char(nvl(sum(to_number(field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')),0),'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
173 from jl_br_sped_extr_data_t c
174 where c.field1 = 'I250'
175 and c.field5 = 'C'
176 and c.field2 = naturalaccts_tab(i)
177 and c.field3 = costcenters_tab(i)
178 and c.request_id = g_concurrent_request_id)
179 where a.field1 = 'I155'
180 and a.field2 = naturalaccts_tab(i)
181 and a.field3 = costcenters_tab(i)
182 and a.request_id = g_concurrent_request_id;
183
184 --fnd_file.put_line(fnd_file.log,'in revert negative journals - After I155 update');
185 EXCEPTION
186 WHEN OTHERS THEN
187
188 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
189 IF g_debug_flag = 'Y' THEN
190 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
191 END IF;
192 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
193 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
194 END IF;
195 g_errbuf := 'ERROR While updating the negative journals '||SQLERRM;
196 g_retcode := 2;
197 return;
198 END;
199
200 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
201 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
202 G_PKG_NAME||': ' ||l_api_name||'()-');
203 END IF;
204
205 END revert_negative_journals;
206
207 PROCEDURE initialize( p_ledger_id GL_SETS_OF_BOOKS.SET_OF_BOOKS_ID%TYPE,
208 p_chart_of_accounts_id GL_SETS_OF_BOOKS.chart_of_accounts_id%TYPE,
209 p_accounting_type VARCHAR2,
210 p_legal_entity_id XLE_ENTITY_PROFILES.LEGAL_ENTITY_ID%TYPE,
211 p_establishment_id XLE_ETB_PROFILES.ESTABLISHMENT_ID%TYPE,
212 p_is_special_situation VARCHAR2,
213 p_period_type VARCHAR2,
214 p_period_name GL_PERIOD_STATUSES.PERIOD_NAME%TYPE,
215 p_adjustment_period_name GL_PERIOD_STATUSES.PERIOD_NAME%TYPE,
216 p_start_date VARCHAR2,
217 p_end_date VARCHAR2,
218 p_special_situation_indicator VARCHAR2,
219 p_bookkeeping_type VARCHAR2,
220 p_participant_type JL_BR_SPED_PARTIC_CODES.PARTICIPANT_TYPE%TYPE,
221 p_accounting_segment_type VARCHAR2,
222 p_coa_mapping_id VARCHAR2,
223 p_balance_statement_request_id fnd_concurrent_requests.request_id%TYPE,
224 p_agglutination_code_source VARCHAR2,
225 p_income_statement_request_id fnd_concurrent_requests.request_id%TYPE,
226 p_journal_for_rtf NUMBER,
227 p_hash_code VARCHAR2, -- auxillary book
228 p_acct_stmt_ident VARCHAR2,
229 p_acct_stmt_header VARCHAR2,
230 p_gen_sped_text_file VARCHAR2,
231 p_inscription_source VARCHAR2,
232 p_le_state_reg_code VARCHAR2,
233 p_le_municipal_reg_code VARCHAR2,
234 p_state_insc_tax_id NUMBER,
235 p_ebtax_state_reg_code VARCHAR2,
236 p_municipal_insc_tax_id NUMBER,
237 p_ebtax_municipal_reg_code VARCHAR2) AS
238 l_api_name CONSTANT VARCHAR2(30) :='INITIALIZE';
239 l_icx_format_mask VARCHAR2(30);
240 l_bsv_count NUMBER;
241 l_le_count NUMBER;
242 l_fsg_output_check VARCHAR2(100);
243
244 CURSOR bsv_cur IS SELECT jg_info_v1 from jg_zz_vat_trx_gt; -- jg_zz_vat_trx_gt is global temparary table to store the BSVs associated to LE or Establishment.
245
246 /* Cursor used to find the position of account and sped qualifiers */
247 CURSOR pos_qualifier_cur(p_flex_value_set_id NUMBER) IS
248 SELECT rownum,
249 value_attribute_type
250 FROM ( SELECT value_attribute_type
251 FROM fnd_flex_validation_qualifiers
252 WHERE id_flex_code = 'GL#'
253 AND id_flex_application_id = 101
254 AND flex_value_set_id = p_flex_value_set_id
255 ORDER BY assignment_date, value_attribute_type) ;
256
257 BEGIN
258 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
259 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
260 G_PKG_NAME||': '||l_api_name||'()+');
261 END IF;
262
263 g_created_by := NVL(fnd_profile.value('USER_ID'),1);
264 g_creation_date := sysdate;
265 g_last_updated_by := NVL(fnd_profile.value('USER_ID'),1);
266 g_last_update_date := sysdate;
267 g_last_update_login := 1;
268 g_concurrent_request_id := NVL(fnd_profile.value('CONC_REQUEST_ID'),1);
269
270
271 IF UPPER(p_accounting_type) = 'DECENTRALIZED' AND p_establishment_id IS NULL THEN
272 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DECEN_ESTB_REQ');
273 g_errbuf := FND_MESSAGE.GET;
274 g_retcode :=2;
275 return;
276 END IF;
277
278
279
280 --check whether establishment is acting as company ?? If so Assign 'Y' to l_estb_acts_as_company variable.
281 IF p_accounting_type = 'DECENTRALIZED' OR (p_accounting_type='CENTRALIZED' AND p_establishment_id IS NULL) THEN
282 l_estb_acts_as_company := 'N';
283 ELSE
284 l_estb_acts_as_company := 'Y';
285 FND_FILE.PUT_LINE(FND_FILE.LOG,G_PKG_NAME||': '||l_api_name||'(): Establishment Acts as Company');
286 END IF;
287
288
289
290 --Initializing Globals for report paramters
291
292 g_ledger_id := p_ledger_id;
293 g_chart_of_accounts_id := p_chart_of_accounts_id;
294 g_accounting_type := p_accounting_type;
295 g_legal_entity_id := p_legal_entity_id;
296 g_establishment_id := p_establishment_id;
297 g_special_situation_indicator := p_special_situation_indicator;
298 g_bookkeeping_type := p_bookkeeping_type;
299 g_participant_type := p_participant_type;
300 g_accounting_segment_type := p_accounting_segment_type;
301 g_coa_mapping_id := p_coa_mapping_id;
302 g_balance_statement_request_id := p_balance_statement_request_id;
303 g_agglutination_code_source := p_agglutination_code_source;
304 g_income_statement_request_id := p_income_statement_request_id;
305 g_journal_for_rtf := p_journal_for_rtf;
306 g_hash_code := p_hash_code;
307 g_acct_stmt_ident := p_acct_stmt_ident;
308 g_acct_stmt_header := p_acct_stmt_header;
309 g_gen_sped_text_file := p_gen_sped_text_file;
310 g_adjustment_period_name := p_adjustment_period_name;
311 g_inscription_source := p_inscription_source;
312 g_le_state_reg_code := p_le_state_reg_code;
313 g_le_municipal_reg_code := p_le_municipal_reg_code;
314 g_state_tax_id := p_state_insc_tax_id;
315 g_ebtax_state_reg_code := p_ebtax_state_reg_code;
316 g_municipal_reg_tax_id := p_municipal_insc_tax_id;
317 g_ebtax_municipal_reg_code := p_ebtax_municipal_reg_code;
318
319 -- Initializing other variables
320
321 fnd_file.put_line(fnd_file.log,'p_coa_id:'||p_coa_mapping_id||' g_coa_id:'||g_coa_mapping_id);
322
323 --Deriving Ledger Id to which LE is associated
324
325
326 /* BEGIN
327
328 SELECT ledger_id
329 INTO g_ledger_id
330 FROM gl_ledger_le_v
331 WHERE legal_entity_id = g_legal_entity_id
332 AND ledger_category_code='PRIMARY';
333
334 END; */
335
336 IF p_period_type = '02' THEN
337 g_closing_period_flag := 'Y';
338 ELSE
339 g_closing_period_flag := 'N';
340 END IF;
341
342 BEGIN --Deriving Company Name. Here check is done whether establishment is acting as company or LE is acting as company.
343
344 IF UPPER(g_accounting_type) = 'DECENTRALIZED' -- LE acts as company
345 OR (UPPER(g_accounting_type) = 'CENTRALIZED' AND g_establishment_id IS NULL) THEN
346
347 SELECT name
348 INTO g_company_name
349 FROM xle_entity_profiles
350 WHERE legal_entity_id = g_legal_entity_id;
351
352 ELSE -- Establishment acts like company
353
354 SELECT name
355 INTO g_company_name
356 FROM xle_etb_profiles
357 WHERE establishment_id = g_establishment_id
358 AND legal_entity_id = g_legal_entity_id ;
359
360 END IF;
361 EXCEPTION
362 WHEN NO_DATA_FOUND THEN
363 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
364 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No company found for Legal Entity Id: '||p_legal_entity_id||' Establishment Id :'||p_establishment_id);
365 END IF;
366 g_errbuf := 'Company Not Found ';
367 g_retcode := 2;
368 return;
369 WHEN OTHERS THEN
370 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
371 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
372 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Faied to get company Name. Legal Entity Id: '||p_legal_entity_id||' Establishment Id :'||p_establishment_id);
373 END IF;
374 g_errbuf := 'Faied to get Company Name ';
375 g_retcode := 2;
376 return;
377 END;
378
379 BEGIN -- Deriving the period_set_name,currency code
380
381 SELECT period_set_name,currency_code,accounted_period_type
382 INTO g_period_set_name,g_currency_code,g_accounted_period_type
383 FROM gl_ledgers
384 WHERE ledger_id = g_ledger_id;
385
386 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Period Set Name: '||g_period_set_name||', Currency Code:'||g_currency_code||', Accounted Period Type :'||g_accounted_period_type);
387
388 EXCEPTION
389 WHEN NO_DATA_FOUND THEN
390 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
391 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No record exists for ledger: '||g_ledger_id);
392 END IF;
393 g_errbuf := 'Error while fetching Pertiod Set Name and Currency Code ';
394 g_retcode := 2;
395 return;
396 WHEN OTHERS THEN
397 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
398 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
399 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get period_set_name for Ledger: '||g_ledger_id);
400 END IF;
401 g_errbuf := 'Error while fetching Pertiod Set Name and Currency Code ';
402 g_retcode := 2;
403 return;
404 END;
405
406
407 /* Checking Whether the Legal entity setup is in Exclusive Mode or in Shared Mode
408 If no BSVs exists then taking it as exlusive mode. In this case filtering of transactions,balances will be
409 done only based on Ledger_id(AS one to one relation exists between Ledger and LE. */
410 BEGIN
411
412 SELECT COUNT(segment_value)
413 INTO l_bsv_count
414 FROM GL_LEDGER_NORM_SEG_VALS
415 WHERE ledger_id = g_ledger_id
416 AND legal_entity_id = g_legal_entity_id
417 AND segment_type_code = 'B';
418
419 IF l_bsv_count = 0 THEN
420
421 SELECT count(distinct legal_entity_id)
422 INTO l_le_count
423 FROM gl_ledger_le_v
424 WHERE ledger_id = g_ledger_id
425 AND ledger_category_code='PRIMARY' ;
426
427 IF l_le_count = 1 THEN
428 l_exclusive_mode := 'Y';
429 ELSE
430 g_errbuf := 'More than one LE is associated to Ledger. And No BSVs exists. So It is not possible to filter the data from LE';
431 g_retcode := 2;
432 return;
433 END IF;
434
435 ELSIF l_bsv_count >0 THEN
436 l_exclusive_mode := 'N'; -- shared mode
437 END IF;
438 EXCEPTION
439 WHEN OTHERS THEN
440 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
441 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
442 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to check whether it is exclusive mode or shared mode');
443 END IF;
444 g_errbuf := 'Failed to check whether it is exclusive mode or shared mode';
445 g_retcode := 2;
446 return;
447 END;
448
449 IF l_exclusive_mode ='N' THEN /* If not exclusive mode deriving the BSVs attached to either LE or Establishment
450 for filtering and storing in a gt table(jg_zz_vat_trx_gt) */
451
452 INSERT INTO jg_zz_vat_trx_gt (jg_info_n1,
453 jg_info_v1)
454 SELECT g_concurrent_request_id,
455 segment_value
456 FROM GL_LEDGER_NORM_SEG_VALS
457 WHERE ledger_id = g_ledger_id
458 AND legal_entity_id = g_legal_entity_id
459 AND segment_type_code = 'B'
460 AND g_establishment_id is null -- IF running in Centralized mode and only for LE
461 UNION
462 SELECT g_concurrent_request_id,
463 entity_name
464 FROM xle_bsv_associations
465 WHERE legal_parent_id = g_legal_entity_id
466 AND legal_construct_id = g_establishment_id
467 AND context = 'EST_BSV_MAPPING'
468 AND entity_type = 'BALANCING_SEGMENT_VALUE'
469 AND legal_construct ='ESTABLISHMENT'
470 AND g_establishment_id is not null; -- running in decentralized mode or in centralized mode for establishment(Establishment acts as company)
471
472
473
474 FND_FILE.PUT(FND_FILE.LOG,'Balancing Segments associated to the Comapny are :');
475
476 FOR bsv_rec in bsv_cur LOOP --To display balancing segments associated to LE or ESTB (Company)
477
478 FND_FILE.PUT(FND_FILE.LOG,bsv_rec.jg_info_v1||' ');
479
480 END LOOP;
481
482 FND_FILE.PUT_LINE(FND_FILE.LOG,' ');
483 END IF; -- End for IF l_exclusive_mode ='N'
484
485 IF p_special_situation_indicator IS NULL THEN
486
487 BEGIN
488
489 SELECT start_date, end_date
490 INTO g_start_date,g_end_date
491 FROM gl_periods
492 WHERE period_name = p_period_name
493 AND period_set_name = g_period_set_name;
494
495 g_period_name := p_period_name;
496
497 EXCEPTION
498 WHEN NO_DATA_FOUND THEN
499 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
500 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Not a valid period: '||p_period_name);
501 END IF;
502 g_errbuf := 'Not a valid period ';
503 g_retcode := 2;
504 return;
505 WHEN OTHERS THEN
506 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
507 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
508 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get start and end dates for '||p_period_name);
509 END IF;
510 g_errbuf := 'Failed to get start and end dates for '||p_period_name;
511 g_retcode := 2;
512 return;
513 END;
514
515 ELSE -- If special situation indicator not null.
516
517 BEGIN
518
519 l_icx_format_mask := NVL(fnd_profile.value('ICX_DATE_FORMAT_MASK'),'RRRR/MM/DD');
520 FND_FILE.PUT_LINE(FND_FILE.LOG,'ICX Date Format Mask : '||l_icx_format_mask);
521 g_start_date := to_date(p_start_date,l_icx_format_mask);
522 g_end_date := to_date(p_end_date,l_icx_format_mask);
523
524 SELECT period_name
525 INTO g_period_name
526 FROM gl_periods
527 WHERE period_set_name = g_period_set_name
528 AND period_type = g_accounted_period_type
529 AND g_start_date BETWEEN start_date AND end_date
530 AND g_end_date BETWEEN start_date AND end_date;
531
532 EXCEPTION
533 WHEN NO_DATA_FOUND THEN
534 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
535 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Start and end dates do not belong to same period: '||p_start_date||' '||p_end_date);
536 END IF;
537 g_errbuf := 'Start and end date do not belong to same period: '||p_start_date||' '||p_end_date;
538 g_retcode := 2;
539 return;
540 WHEN OTHERS THEN
541 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
542 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
543 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get period name for given start and end dates '||p_start_date||' '||p_end_date);
544
545 END IF;
546 g_errbuf := 'Failed to get period name for given start and end date '||p_start_date||' '||p_end_date||' '||SQLERRM;
547 g_retcode := 2;
548 return;
549 END;
550
551 END IF; -- End for check on special situation indicator.
552
553 IF g_adjustment_period_name IS NOT NULL THEN
554
555 BEGIN
556 SELECT start_date, end_date
557 INTO g_adjustment_period_start_date,g_adjustment_period_end_date
558 FROM gl_periods
559 WHERE period_name = p_adjustment_period_name
560 AND period_set_name = g_period_set_name
561 AND adjustment_period_flag = 'Y';
562
563 EXCEPTION
564 WHEN NO_DATA_FOUND THEN
565 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
566 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Not a valid period: '||p_period_name);
567 END IF;
568 g_errbuf := 'Not a valid adjustment period ';
569 g_retcode := 2;
570 return;
571 WHEN OTHERS THEN
572 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
573 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
574 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get start and end dates for '||p_period_name);
575 END IF;
576 g_errbuf := 'Failed to get start and end dates for adjustment period '||p_period_name;
577 g_retcode := 2;
578 return;
579 END;
580
581 END IF;
582
583 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Start_date :'||g_start_date||' End_date: '||g_end_date);
584
585 BEGIN
586 SELECT application_column_name -- finding which segment column is used for balancing segment storage
587 INTO g_bsv_segment
588 FROM fnd_segment_attribute_values
589 WHERE id_flex_code = 'GL#'
590 AND attribute_value = 'Y'
591 AND segment_attribute_type = 'GL_BALANCING'
592 AND application_id = 101
593 AND id_flex_num = g_chart_of_accounts_id;
594 EXCEPTION
595 WHEN NO_DATA_FOUND THEN
596 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
597 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No balacing segment found in fnd_segment_attribute_values' );
598 END IF;
599 g_errbuf := 'No balancing segment found in fnd_segment_attribute_values for '||g_chart_of_accounts_id;
600 g_retcode := 2;
601 return;
602 WHEN OTHERS THEN
603 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
604 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
605 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get column used for Balancing segment');
606 END IF;
607 g_errbuf := 'Failed to get column used for Balancing segment';
608 g_retcode := 2;
609 return;
610 END;
611
612 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Balancing segment: '||g_bsv_segment);
613
614 BEGIN
615 SELECT application_column_name -- finding which segment column is used for natural account segment storage
616 INTO g_account_segment
617 FROM fnd_segment_attribute_values
618 WHERE id_flex_code = 'GL#'
619 AND attribute_value = 'Y'
620 AND segment_attribute_type = 'GL_ACCOUNT'
621 AND application_id = 101
622 AND id_flex_num = g_chart_of_accounts_id;
623
624 EXCEPTION
625 WHEN NO_DATA_FOUND THEN
626 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
627 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No Natural account segment found in fnd_segment_attribute_values' );
628 END IF;
629 g_errbuf := 'No Natural account segment found in fnd_segment_attribute_values for '||g_chart_of_accounts_id;
630 g_retcode := 2;
631 return;
632 WHEN OTHERS THEN
633 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
634 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
635 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get column used for Natural account');
636 END IF;
637 g_errbuf := 'Failed to get column used for Natural account';
638 g_retcode := 2;
639 return;
640 END;
641
642 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Natural Account segment: '||g_account_segment);
643
644 BEGIN
645 SELECT application_column_name -- finding which segment column is used for cost center storage
646 INTO g_cost_center_segment
647 FROM fnd_segment_attribute_values
648 WHERE id_flex_code = 'GL#'
649 AND attribute_value = 'Y'
650 AND segment_attribute_type = 'FA_COST_CTR'
651 AND application_id = 101
652 AND id_flex_num = g_chart_of_accounts_id;
653
654 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Cost center segment: '||g_cost_center_segment);
655
656 EXCEPTION
657 WHEN NO_DATA_FOUND THEN
658 IF (G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
659 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No cost center segment found in fnd_segment_attribute_values' );
660 END IF;
661
662 l_cc_exists_flag := 0; -- cost center setup doesn't exist
663 g_cost_center_segment := 'SEGMENT20'; -- To frame the dynamic query in I155,I310 assigned this column name. But we won't retrieve this column values.
664 -- If l_cc_exists_flag = 0 then we will retrieve null
665 WHEN OTHERS THEN
666 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
667 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
668 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get column used for cost center');
669 END IF;
670
671 l_cc_exists_flag := 0;
672 g_cost_center_segment := 'SEGMENT20';
673
674 END;
675
676 -- Deriving value set id for Natural Accounts
677 BEGIN
678
679 SELECT flex_value_set_id
680 INTO g_account_value_set_id
681 FROM fnd_id_flex_segments
682 WHERE id_flex_num = g_chart_of_accounts_id
683 AND id_flex_code ='GL#'
684 AND application_id = 101
685 AND application_column_name = g_account_segment;
686
687 EXCEPTION
688 WHEN NO_DATA_FOUND THEN
689 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
690 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No value set found for: '||g_account_segment);
691 END IF;
692 g_errbuf := 'No value set found for: '||g_account_segment;
693 g_retcode := 2;
694 return;
695 WHEN OTHERS THEN
696 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
697 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
698 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed in retrieving value set'||g_account_segment);
699 END IF;
700 g_errbuf := 'Failed in retrieving value set for'||g_account_segment;
701 g_retcode := 2;
702 return;
703 END;
704
705 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Value set id for Natural Account :'||g_account_value_set_id);
706
707 -- Deriving value set id for Cost Center (only if cost center setup was done)
708
709 IF l_cc_exists_flag <>0 THEN
710
711 BEGIN
712
713 SELECT flex_value_set_id
714 INTO g_cost_center_value_set_id
715 FROM fnd_id_flex_segments
716 WHERE id_flex_num = g_chart_of_accounts_id
717 AND id_flex_code ='GL#'
718 AND application_id = 101
719 AND application_column_name = g_cost_center_segment;
720
721 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Value set id for Cost Center :'||g_cost_center_value_set_id);
722
723 EXCEPTION
724 WHEN NO_DATA_FOUND THEN
725 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
726 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No value set found for: '||g_cost_center_segment);
727 END IF;
728 g_errbuf := 'No value set found for: '||g_cost_center_segment;
729 g_retcode := 2;
730 return;
731 WHEN OTHERS THEN
732 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
733 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
734 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed in retrieving value set'||g_cost_center_segment);
735 END IF;
736 g_errbuf := 'Failed in retrieving value set for'||g_cost_center_segment;
737 g_retcode := 2;
738 return;
739 END;
740
741 END IF; -- END for IF l_cc_exists_flag <> 0
742
743 /* Deriving the positions of 'Gl account type','Sped account type' and 'Sped Exclusion' qualifiers */
744 BEGIN
745 -- deriving sped account qualifier position
746 FOR pos_qual_rec IN pos_qualifier_cur(g_account_value_set_id)--(acct_vsetid)
747 LOOP
748 IF pos_qual_rec.value_attribute_type = 'SPED_ACCOUNT_TYPE' THEN
749 g_sped_qualifier_position := pos_qual_rec.rownum;
750 EXIT ;
751 END IF;
752 END LOOP;
753
754 --deriving account qualifier position
755 FOR pos_qual_rec IN pos_qualifier_cur(g_account_value_set_id)--(acct_vsetid)
756 LOOP
757 IF pos_qual_rec.value_attribute_type = 'GL_ACCOUNT_TYPE' THEN
758 g_account_qualifier_position := pos_qual_rec.rownum;
759 EXIT ;
760 END IF;
761 END LOOP;
762
763 --deriving sped exclustion qualifier position
764 FOR pos_qual_rec IN pos_qualifier_cur(g_account_value_set_id)--(acct_vsetid)
765 LOOP
766 IF pos_qual_rec.value_attribute_type = 'SPED_EXCLUSION' THEN
767 g_exclusion_qualifier_position := pos_qual_rec.rownum;
768 EXIT ;
769 END IF;
770 END LOOP;
771
772 g_exclusion_qualifier_position := nvl(g_exclusion_qualifier_position,99);
773
774 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Position of sped qualifier : '||g_sped_qualifier_position);
775 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Position of account qualifier : '||g_account_qualifier_position);
776 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Position of sped exclusion qualifier : '||g_exclusion_qualifier_position);
777
778 EXCEPTION
779 WHEN OTHERS THEN
780 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
781 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
782 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed in retrieving value set'||g_cost_center_segment);
783 END IF;
784 g_errbuf := 'Failed in Deriving the position of account and sped qualifiers';
785 g_retcode := 2;
786 return;
787 END;
788
789 BEGIN
790 IF p_balance_statement_request_id is not null THEN
791
792 SELECT argument7 -- balancesheet report_id
793 INTO g_balance_statement_report_id
794 FROM fnd_concurrent_requests
795 WHERE request_id = p_balance_statement_request_id;
796 END IF;
797
798 EXCEPTION
799 WHEN OTHERS THEN
800 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
801 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
802 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed in retrieving Balance Sheet Report ID');
803 END IF;
804 END;
805
806 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Balance Sheet Report Id : '||g_balance_statement_report_id);
807
808 BEGIN
809 IF p_income_statement_request_id IS NOT NULL THEN
810 SELECT argument7 --Income Statement report_id
811 INTO g_income_statement_report_id
812 FROM fnd_concurrent_requests
813 WHERE request_id = p_income_statement_request_id;
814 END IF;
815
816 EXCEPTION
817 WHEN OTHERS THEN
818 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
819 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
820 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed in retrieving Income Statement Report ID');
821 END IF;
822 END;
823 FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Income Statement Report Id : '||g_income_statement_report_id);
824
825 BEGIN
826
827 SELECT COUNT(*)
828 INTO g_ap_ar_auxbook_exist
829 FROM jl_br_cinfos_books
830 WHERE legal_entity_id = g_legal_entity_id
831 AND ((l_estb_acts_as_company='N' AND establishment_id is null)
832 OR (l_estb_acts_as_company='Y' AND establishment_id = g_establishment_id))
833 AND bookkeeping_type = 'A'
834 AND auxiliary_book_source = 'AP/AR';
835
836 EXCEPTION
837 WHEN OTHERS THEN
838 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
839 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
840 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Verifiying the auxiliary books setup availabiblity.');
841 END IF;
842 END;
843
844 IF substr(g_bookkeeping_type,1,1) = 'A' AND g_ap_ar_auxbook_exist = 0 THEN
845 FND_FILE.PUT_LINE(FND_FILE.LOG,'Auxiliary Book is not defined for Book Source AP/AR');
846 END IF;
847
848
849
850 /* BEGIN: Deriving the column type of first column in balance statement report */
851
852 IF g_bookkeeping_type <> 'A/R' AND g_bookkeeping_type <> 'A/B' THEN
853 IF g_balance_statement_request_id IS NOT NULL THEN
854 BEGIN
855 SELECT amount_type
856 INTO l_fsg_output_check
857 FROM (SELECT r2.*
858 FROM fnd_concurrent_requests req,
859 rg_reports r1,
860 rg_report_axes_v r2
861 WHERE req.request_id = g_balance_statement_request_id
862 AND r1.report_id = req.argument7 --arguement7 in fnd_concurrent_requests holds the report id
863 AND r1.column_set_id = r2.axis_set_id
864 ORDER BY r2.sequence)
865 WHERE ROWNUM = 1;
866
867 FND_FILE.PUT_LINE(FND_FILE.LOG,'Amount Type in Balance Sheet Report is :'||l_fsg_output_check);
868
869 EXCEPTION
870 WHEN NO_DATA_FOUND THEN
871 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
872 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No data found for Balance sheet request Id:'||g_balance_statement_request_id);
873 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
874 END IF;
875 WHEN OTHERS THEN
876 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
877 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get information for Balance sheet request Id:'||g_balance_statement_request_id);
878 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
879 END IF;
880 END;
881
882 END IF; --END for IF g_balance_statement_request_id is not null
883
884 /*Checking the amount type of first column in income statement report */
885
886 IF g_income_statement_request_id IS NOT NULL THEN
887 BEGIN
888
889 SELECT amount_type
890 INTO l_fsg_output_check
891 FROM (SELECT r2.*
892 FROM fnd_concurrent_requests req,
893 rg_reports r1,
894 rg_report_axes_v r2
895 WHERE req.request_id = g_income_statement_request_id
896 AND r1.report_id = req.argument7 --arguement7 in fnd_concurrent_requests holds the report id
897 AND r1.column_set_id = r2.axis_set_id
898 ORDER BY r2.sequence)
899 WHERE ROWNUM = 1;
900
901 FND_FILE.PUT_LINE(FND_FILE.LOG,'Amount Type in Income Statement Report is :'||l_fsg_output_check);
902
903 EXCEPTION
904 WHEN NO_DATA_FOUND THEN
905 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
906 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No data found exception while trying to fetch amount type for Income Statement Report'||g_income_statement_request_id);
907 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
908 END IF;
909 WHEN OTHERS THEN
910 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
911 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Failed to get information for Income statement request id:'||g_income_statement_request_id);
912 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
913 END IF;
914 END;
915
916 END IF; -- End for IF g_income_statement_request_id is not null
917 END IF; --IF g_bookkeping_type <> 'A/R' AND g_bookkeeping_type <> 'A/B' THEN
918
919 IF p_inscription_source = 'ZX' THEN
920
921 IF p_state_insc_tax_id IS NOT NULL THEN
922
923 BEGIN
924 SELECT tax_regime_code, tax
925 INTO g_state_insc_tax_regime,g_state_insc_tax
926 FROM zx_taxes_b
927 WHERE tax_id = p_state_insc_tax_id;
928
929 EXCEPTION
930 WHEN OTHERS THEN
931 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
932 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error while retrieving the tax regime and tax used to create state inscription.');
933 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
934 END IF;
935 END;
936
937 END IF; -- End for IF p_state_insc_tax_id IS NOT NULL
938
939 IF p_municipal_insc_tax_id IS NOT NULL THEN
940
941 BEGIN
942 SELECT tax_regime_code, tax
943 INTO g_municipal_insc_tax_regime,g_municipal_insc_tax
944 FROM zx_taxes_b
945 WHERE tax_id = p_municipal_insc_tax_id;
946
947 EXCEPTION
948 WHEN OTHERS THEN
949 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
950 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error while retrieving the tax regime and tax used to create municipal inscription.');
951 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
952 END IF;
953 END;
954
955 END IF; -- End for IF p_state_insc_tax_id IS NOT NULL
956
957 END IF; -- End for IF p_inscription_source = 'ZX'(EBTax);
958
959 BEGIN
960 INSERT INTO JL_BR_SPED_EXTR_PARAM
961 (REQUEST_ID,
962 LEDGER_ID,
963 LEGAL_ENTITY_ID,
964 ESTABLISHMENT_ID,
965 PERIOD_TYPE,
966 PERIOD_NAME,
967 ADJUSTMENT_PERIOD,
968 SPEC_SITU_INDIC,
969 SPEC_SITU_START_DATE,
970 SPEC_SITU_END_DATE,
971 BOOKKEEPING_TYPE,
972 ESTB_ACCT_TYPE,
973 PARTICIPANT_TYPE,
974 PARTIC_ACCT_SEGMENT,
975 CONSOL_MAP_ID,
976 BALSHEET_REP_REQUEST_ID,
977 INCMSTMT_REP_REQUEST_ID,
978 AGC_SOURCE,
979 RTF_FILE_SOURCE,
980 HAS_CODE,
981 ACCT_STMT_INDF,
982 ACCT_STMT_HEADER,
983 DATA_EXIST,
984 REPORT_MODE,
985 REGISTRATION_SOURCE,
986 XLE_STATE_INS_REG_CODE,
987 XLE_CITY_INS_REG_CODE,
988 ZX_STATE_INS_TAX_ID,
989 ZX_STATE_INS_REG_CODE,
990 ZX_CITY_INS_TAX_ID,
991 ZX_CITY_INS_REG_CODE,
992 CREATED_BY,
993 CREATION_DATE,
994 LAST_UPDATED_BY,
995 LAST_UPDATE_DATE,
996 LAST_UPDATE_LOGIN)
997 VALUES ( g_concurrent_request_id,
998 g_ledger_id,
999 p_legal_entity_id,
1000 p_establishment_id,
1001 p_period_type,
1002 g_period_name,
1003 p_adjustment_period_name,
1004 p_special_situation_indicator,
1005 g_start_date,
1006 g_end_date,
1007 p_bookkeeping_type,
1008 p_accounting_type,
1009 p_participant_type,
1010 p_accounting_segment_type,
1011 p_coa_mapping_id,
1012 p_balance_statement_request_id,
1013 p_income_statement_request_id,
1014 p_agglutination_code_source,
1015 p_journal_for_rtf , --rtf_file_soource
1016 p_hash_code,
1017 p_acct_stmt_ident, --acct_stmt_indf
1018 p_acct_stmt_header, --acct_stmt_header
1019 'N',
1020 'P', --report_mode
1021 p_inscription_source,
1022 p_le_state_reg_code,
1023 p_le_municipal_reg_code,
1024 p_state_insc_tax_id,
1025 p_ebtax_state_reg_code,
1026 p_municipal_insc_tax_id ,
1027 p_ebtax_municipal_reg_code,
1028 g_created_by,
1029 g_creation_date,
1030 g_last_updated_by,
1031 g_last_update_date,
1032 g_last_update_login
1033 );
1034
1035 EXCEPTION
1036 WHEN OTHERS THEN
1037 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1038 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1039 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR While inserting into JL_BR_SPED_EXTR_PARAM ');
1040 END IF;
1041 g_errbuf := 'ERROR While inserting into JL_BR_SPED_EXTR_PARAM '||SQLERRM;
1042 g_retcode := 2;
1043 return;
1044 END;
1045
1046 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1047 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
1048 G_PKG_NAME||': ' ||l_api_name||'()-');
1049 END IF;
1050
1051 EXCEPTION
1052 WHEN OTHERS THEN
1053
1054 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1055 IF g_debug_flag = 'Y' THEN
1056 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
1057 END IF;
1058 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1059 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1060 END IF;
1061 g_errbuf := 'ERROR in Intialize Procedure '||SQLERRM;
1062 g_retcode := 2;
1063 return;
1064
1065
1066
1067 END initialize;
1068
1069 FUNCTION get_segment_value(ccid NUMBER,segment_code VARCHAR2) RETURN VARCHAR2 AS
1070 /* This function is to return the value of segment for a code_combination_id.
1071 If segment_code is segment1, then the value of segment1 for the given code_combination_id(ccid) will be returned*/
1072 segment_value gl_code_combinations.segment1%TYPE;
1073 sqlstmt VARCHAR2(100);
1074 l_api_name CONSTANT VARCHAR2(30) :='GET_SEGMENT_VALUE';
1075 BEGIN
1076
1077
1078 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1079 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
1080 G_PKG_NAME||': '||l_api_name||'()+');
1081 END IF;
1082
1083 sqlstmt := 'SELECT to_char('||segment_code||') FROM gl_code_combinations WHERE code_combination_id = :ccid';
1084
1085 BEGIN
1086 EXECUTE IMMEDIATE sqlstmt INTO segment_value USING ccid;
1087 EXCEPTION
1088 WHEN NO_DATA_FOUND THEN
1089 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1090 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1091 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No '||segment_code||' value found for: '||ccid);
1092 END IF;
1093 RETURN NULL;
1094 WHEN OTHERS THEN
1095 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1096 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1097 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Faied to get '||segment_code||' value for '||ccid);
1098 END IF;
1099 RETURN NULL;
1100
1101 END;
1102 RETURN segment_value;
1103
1104 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1105 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
1106 G_PKG_NAME||': ' ||l_api_name||'()-');
1107 END IF;
1108 EXCEPTION
1109 WHEN OTHERS THEN
1110
1111 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1112 IF g_debug_flag = 'Y' THEN
1113 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
1114 END IF;
1115 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1116 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1117 END IF;
1118
1119 END get_segment_value;
1120
1121 FUNCTION get_account_type(p_flex_Value_id fnd_flex_values.flex_value_id%TYPE) RETURN VARCHAR2 AS
1122 /* This function returns the Account Type for flex value .
1123 For the flex value if there is sped account type other than 'Not applibale' then this function
1124 returns the corresponding sped account code, otherwise it will return account code for the
1125 GL_ACCOUNT_TYPE*/
1126 l_position_qualifier_account INTEGER;
1127 l_position_qualifier_sped INTEGER;
1128 l_SPED_CODE VARCHAR2(1);
1129 l_SPED_CODE_VALUE VARCHAR2(2);
1130 l_ACCT_CODE VARCHAR2(1);
1131 l_ACCT_CODE_VALUE VARCHAR2(2);
1132 l_api_name CONSTANT VARCHAR2(30) :='GET_ACCOUNT_TYPE';
1133
1134 BEGIN
1135
1136 IF g_sped_qualifier_position IS NOT NULL THEN
1137 BEGIN
1138 SELECT DECODE(vs.flex_value, 'T', 'O', substrb( fnd_global.newline
1139 ||vs.compiled_value_attributes
1140 ||fnd_global.newline, instrb( fnd_global.newline
1141 ||vs.compiled_value_attributes
1142 ||fnd_global.newline, fnd_global.newline,1,g_sped_qualifier_position)+1, 1 ))
1143 INTO l_sped_code
1144 FROM fnd_flex_values vs
1145 WHERE flex_value_id=p_flex_Value_id;
1146 EXCEPTION
1147 WHEN NO_DATA_FOUND THEN
1148 l_sped_code := null;
1149 WHEN OTHERS THEN
1150 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1151 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1152 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Faied to sped accounting code for: '||p_flex_value_id);
1153 END IF;
1154 END;
1155 END IF;
1156
1157 IF l_sped_code IS NULL OR l_sped_code = 'N' THEN
1158
1159 BEGIN
1160
1161 SELECT DECODE(vs.flex_value, 'T', 'O', substrb( fnd_global.newline
1162 ||vs.compiled_value_attributes
1163 ||fnd_global.newline, instrb( fnd_global.newline
1164 ||vs.compiled_value_attributes
1165 ||fnd_global.newline, fnd_global.newline,1,g_account_qualifier_position)+1, 1 ))
1166 INTO l_acct_code
1167 FROM fnd_flex_values vs
1168 WHERE flex_value_id=p_flex_value_id;
1169
1170 EXCEPTION
1171 WHEN NO_DATA_FOUND THEN
1172 l_acct_code := null;
1173 WHEN OTHERS THEN
1174 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1175 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1176 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Faied to get accounting code for: '||p_flex_value_id);
1177 END IF;
1178 END;
1179
1180 SELECT DECODE(l_acct_code, 'A', '01', 'L','02', 'O','03', 'E','04', 'R','04',null)
1181 INTO l_acct_code_value
1182 FROM DUAL;
1183
1184 ELSE
1185
1186 SELECT DECODE (l_sped_code, 'C', '05', 'T','09',null)
1187 INTO l_sped_code_value
1188 FROM DUAL;
1189
1190 END IF;
1191
1192 RETURN NVL(l_sped_code_value,l_acct_code_value);
1193
1194 END get_account_type;
1195
1196 FUNCTION get_participant_code (p_je_header_id gl_je_headers.je_header_id%TYPE,
1197 p_je_line_num gl_je_lines.je_line_num%TYPE,
1198 p_journal_source gl_je_headers.je_source%TYPE,
1199 p_je_line_ccid gl_je_lines.code_combination_id%TYPE,
1200 p_third_party_id NUMBER,
1201 p_third_party_site_id NUMBER) RETURN VARCHAR2 AS
1202 l_participant_code jl_br_sped_partic_codes.participant_code%TYPE := NULL;
1203 l_third_party_count NUMBER := 0;
1204 l_third_party_id NUMBER;
1205 l_third_party_site_id NUMBER;
1206 l_receivable_category VARCHAR2(50);
1207 l_partic_active_flag NUMBER := 0;
1208 l_api_name CONSTANT VARCHAR2(30) :='GET_PARTICIPANT_CODE';
1209
1210 BEGIN
1211 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1212 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
1213 G_PKG_NAME||': '||l_api_name||'()+');
1214 END IF;
1215
1216
1217 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1218 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Journal Header: '||p_je_header_id||' Journal Line: '||p_je_line_num||' Source'||p_journal_source);
1219 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'CCID :'||p_je_line_ccid||' Third Party Id:'||p_third_party_id||' Site Id :'||p_third_party_site_id);
1220 END IF;
1221
1222
1223 -- In case of Manual Journal, User can enter Participant Code at Jounral Header or Lines level GDF.
1224 --
1225
1226 IF p_journal_source = 'Manual' THEN
1227
1228 BEGIN
1229
1230 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1231 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1232 'Manual Journal:'||p_je_header_id||'-'||p_je_line_num);
1233 END IF;
1234
1235
1236 SELECT nvl(jl.global_attribute5,jh.global_attribute5)
1237 INTO l_participant_code
1238 FROM gl_je_headers jh
1239 ,gl_je_lines jl
1240 ,jl_br_sped_partic_codes pc
1241 WHERE jh.je_header_id = jl.je_header_id
1242 AND jh.je_header_id = p_je_header_id
1243 AND jl.je_line_num = p_je_line_num
1244 AND pc.ledger_id = g_ledger_id
1245 AND nvl(jl.global_attribute5,jh.global_attribute5) = pc.participant_code --- to get the particpant code
1246 AND ((g_participant_type in ('SUPPLIERS','CUSTOMERS','SUPPLIER_SITES','CUSTOMER_SITES') AND participant_type = g_participant_type) OR
1247 (g_participant_type = 'ACCOUNTING_FLEXFIELD_SEGMENT' AND pc.segment_type = g_accounting_segment_type) OR
1248 (g_participant_type = 'SUPPLIERS_AND_CUSTOMERS' AND participant_type = 'SUPPLIERS') OR
1249 (g_participant_type = 'SUPPLIERS_AND_CUSTOMERS' AND participant_type = 'CUSTOMERS') OR
1250 (g_participant_type = 'SUPPLIER_AND_CUSTOMER_SITES' AND participant_type = 'SUPPLIER_SITES') OR
1251 (g_participant_type = 'SUPPLIER_AND_CUSTOMER_SITES' AND participant_type = 'CUSTOMER_SITES') );
1252
1253 EXCEPTION
1254 WHEN NO_DATA_FOUND THEN
1255 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1256 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLCODE||' '||SQLERRM);
1257 END IF;
1258 l_participant_code := NULL;
1259 WHEN OTHERS THEN
1260 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1261 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLCODE||' '||SQLERRM);
1262 END IF;
1263 l_participant_code := NULL;
1264 END;
1265
1266 BEGIN
1267 SELECT 1 --if no data found means, no active relation in the report period.
1268 INTO l_partic_active_flag
1269 FROM dual
1270 WHERE EXISTS ( SELECT 1 FROM jl_br_sped_partic_rel rel
1271 WHERE rel.LEGAL_ENTITY_ID = g_legal_entity_id
1272 AND ((l_estb_acts_as_company ='Y' AND establishment_id=g_establishment_id)
1273 OR (l_estb_acts_as_company='N' AND establishment_id is null)) --- Need to modify
1274 AND rel.participant_code = l_participant_code
1275 AND rel.effective_from <= g_end_date
1276 AND nvl(rel.effective_to,sysdate) >= g_start_date);
1277
1278 EXCEPTION
1279 WHEN NO_DATA_FOUND THEN
1280 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1281 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLCODE||' '||SQLERRM);
1282 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Book keeping type: '||g_bookkeeping_type||'Source'||p_journal_source||'Participant_type'||g_participant_type);
1283 END IF;
1284 l_participant_code := NULL;
1285 WHEN OTHERS THEN
1286 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1287 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLCODE||' '||SQLERRM);
1288 END IF;
1289 l_participant_code := NULL;
1290 END;
1291 RETURN l_participant_code;
1292
1293 ELSIF g_participant_type = 'ACCOUNTING_FLEXFIELD_SEGMENT' THEN -- Else part for IF p_journal_source = 'Manual' OR l_journalsource_check = 1 THEN
1294 BEGIN
1295 SELECT pc.participant_code
1296 INTO l_participant_code
1297 FROM jl_br_sped_partic_codes pc
1298 WHERE pc.ledger_id = g_ledger_id
1299 AND pc.segment_type = g_accounting_segment_type
1300 AND get_segment_value(p_je_line_ccid,
1301 decode(g_accounting_segment_type,'GL_ACCOUNT',g_account_segment
1302 ,'GL_BALANCING',g_bsv_segment
1303 ,'FA_COST_CTR',g_cost_center_segment)) = pc.flex_value
1304 ---,g_estb_segment_type,g_establishment_segment)) = pc.flex_value
1305 AND EXISTS (SELECT 1
1306 FROM jl_br_sped_partic_rel rel
1307 WHERE rel.LEGAL_ENTITY_ID = g_legal_entity_id
1308 AND ((l_estb_acts_as_company ='Y' AND establishment_id=g_establishment_id)
1309 OR (l_estb_acts_as_company='N' AND establishment_id is null)) --- Need to modify
1310 AND rel.participant_code = pc.participant_code
1311 AND rel.effective_from <= g_end_date
1312 AND nvl(rel.effective_to,sysdate) >= g_start_date );
1313
1314 EXCEPTION
1315 WHEN NO_DATA_FOUND THEN
1316 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1317 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No participant code found');
1318 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1319 END IF;
1320 l_participant_code := NULL;
1321 WHEN OTHERS THEN
1322 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1323 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error while retrieving the participant code.');
1324 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1325 END IF;
1326 l_participant_code := NULL;
1327 END;
1328
1329 RETURN l_participant_code;
1330
1331 END IF; --END IF for IF p_journal_source = 'Manual' THEN
1332
1333
1334 IF substr(g_bookkeeping_type,1,1) = 'A' THEN
1335 --As drilldown done in I250, third_party_id and third_party_site_id are passed from I250
1336
1337 l_third_party_id := p_third_party_id;
1338 l_third_party_site_id := p_third_party_site_id;
1339
1340
1341 ELSE --BK Type <> 'A'
1342
1343 BEGIN
1344
1345 SELECT DISTINCT xll.party_id , xll.party_site_id --- NEED TO CHECK IF SAME CUSTOMER WITH DIFFERENT CUST SITE ID
1346 INTO l_third_party_id, l_third_party_site_id
1347 FROM gl_import_references glimp, GL_JE_LINES JL , xla_ae_lines xll
1348 WHERE glimp.je_header_id = p_je_header_id
1349 AND glimp.je_header_id = jl.je_header_id
1350 AND glimp.je_line_num = p_je_line_num
1351 AND glimp.je_line_num = jl.je_line_num
1352 AND xll.ledger_id = g_ledger_id
1353 AND xll.gl_sl_link_id = glimp.gl_sl_link_id
1354 AND xll.gl_sl_link_table= glimp.gl_sl_link_table;
1355 EXCEPTION
1356 WHEN NO_DATA_FOUND THEN
1357 RETURN NULL; --participant_code not found.
1358 WHEN OTHERS THEN
1359 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1360 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1361 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Journal Header: '||p_je_header_id||' Journal Line: '||p_je_line_num);
1362 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Book keeping type: '||g_bookkeeping_type||' Source'||p_journal_source||' Participant_type'||g_participant_type);
1363 END IF;
1364 RETURN NULL;
1365 END;
1366
1367 END IF;
1368
1369 IF p_journal_source = 'Payables' THEN
1370
1371 IF g_participant_type = 'SUPPLIERS_AND_CUSTOMERS' OR g_participant_type = 'SUPPLIERS' THEN
1372
1373 BEGIN
1374 SELECT pc.participant_code
1375 INTO l_participant_code
1376 FROM jl_br_sped_partic_codes pc
1377 WHERE vendor_id = l_third_party_id
1378 AND participant_type = 'SUPPLIERS'
1379 AND enabled_flag = 'Y'
1380 AND EXISTS (SELECT 1
1381 FROM jl_br_sped_partic_rel rel
1382 WHERE rel.participant_code = pc.participant_code
1383 AND legal_entity_id = g_legal_entity_id
1384 AND ((l_estb_acts_as_company ='Y' AND establishment_id=g_establishment_id)
1385 OR (l_estb_acts_as_company='N' AND establishment_id is null)) --- Need to modify
1386 AND rel.effective_from <= g_end_date
1387 AND nvl(rel.effective_to,sysdate) >= g_start_date) ;
1388
1389 RETURN l_participant_code;
1390 EXCEPTION
1391 WHEN NO_DATA_FOUND THEN
1392 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1393 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No Participant Code found '||SQLERRM);
1394 END IF;
1395 RETURN NULL; --participant_code not found.
1396
1397 WHEN OTHERS THEN
1398 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1399 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1400 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Journal Header: '||p_je_header_id||' Journal Line: '||p_je_line_num);
1401 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Book keeping type: '||g_bookkeeping_type||' Source'||p_journal_source||' Participant_type'||g_participant_type);
1402 END IF;
1403 RETURN NULL;
1404 END;
1405
1406 ELSIF g_participant_type = 'SUPPLIER_AND_CUSTOMER_SITES' OR g_participant_type = 'SUPPLIER_SITES' THEN
1407
1408 BEGIN
1409 SELECT pc.participant_code
1410 INTO l_participant_code
1411 FROM jl_br_sped_partic_codes pc
1412 WHERE vendor_id = l_third_party_id
1413 AND vendor_site_id = l_third_party_site_id
1414 AND participant_type = 'SUPPLIER_SITES'
1415 AND enabled_flag = 'Y'
1416 AND EXISTS (SELECT 1
1417 FROM jl_br_sped_partic_rel rel
1418 WHERE rel.participant_code = pc.participant_code
1419 AND legal_entity_id = g_legal_entity_id
1420 AND ((l_estb_acts_as_company ='Y' AND establishment_id=g_establishment_id)
1421 OR (l_estb_acts_as_company='N' AND establishment_id is null)) --- Need to modify
1422 AND rel.effective_from <= g_end_date
1423 AND nvl(rel.effective_to,sysdate) >= g_start_date);
1424
1425 RETURN l_participant_code;
1426
1427 EXCEPTION
1428 WHEN NO_DATA_FOUND THEN
1429 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1430 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No Participant Code found '||SQLERRM);
1431 END IF;
1432 RETURN NULL; --participant_code not found.
1433 WHEN OTHERS THEN
1434 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1435 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1436 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Journal Header: '||p_je_header_id||' Journal Line: '||p_je_line_num);
1437 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Book keeping type: '||g_bookkeeping_type||' Source'||p_journal_source||' Participant_type'||g_participant_type);
1438 END IF;
1439 RETURN NULL;
1440 END;
1441
1442 END IF; --End for p_participant_type = 'SUPPLIERS_AND_CUSTOMERS' OR p_participant_type = 'SUPPLIERS'
1443
1444 ELSIF p_journal_source = 'Receivables' THEN
1445
1446 IF g_participant_type = 'SUPPLIERS_AND_CUSTOMERS' OR g_participant_type = 'CUSTOMERS' THEN
1447 BEGIN
1448 SELECT pc.participant_code
1449 INTO l_participant_code
1450 FROM jl_br_sped_partic_codes pc
1451 WHERE pc.cust_account_id = l_third_party_id
1452 AND pc.participant_type = 'CUSTOMERS'
1453 AND EXISTS (SELECT 1
1454 FROM jl_br_sped_partic_rel rel
1455 WHERE rel.participant_code = pc.participant_code
1456 AND legal_entity_id = g_legal_entity_id
1457 AND ((l_estb_acts_as_company ='Y' AND establishment_id=g_establishment_id)
1458 OR (l_estb_acts_as_company='N' AND establishment_id is null)) --- Need to modify
1459 AND rel.effective_from <= g_end_date
1460 AND nvl(rel.effective_to,sysdate) >= g_start_date);
1461
1462 RETURN l_participant_code;
1463 EXCEPTION
1464 WHEN NO_DATA_FOUND THEN
1465 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1466 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No Participant Code found '||SQLERRM);
1467 END IF;
1468 RETURN NULL; --participant_code not found.
1469 WHEN OTHERS THEN
1470 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1471 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1472 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Journal Header: '||p_je_header_id||' Journal Line: '||p_je_line_num);
1473 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Book keeping type: '||g_bookkeeping_type||' Source'||p_journal_source||' Participant_type'||g_participant_type);
1474 RETURN NULL;
1475 END IF;
1476 END;
1477
1478 ELSIF g_participant_type = 'SUPPLIER_AND_CUSTOMER_SITES' OR g_participant_type = 'CUSTOMER_SITES' THEN
1479
1480 BEGIN
1481
1482 SELECT pc.participant_code
1483 INTO l_participant_code
1484 FROM jl_br_sped_partic_codes pc
1485 ,hz_cust_site_uses_all hcsu
1486 WHERE hcsu.cust_acct_site_id = pc.cust_acct_site_id
1487 -- AND pc.cust_account_id = l_third_party_id
1488 AND hcsu.site_use_id = l_third_party_site_id
1489 AND pc.participant_type = 'CUSTOMER_SITES'
1490 AND EXISTS (SELECT 1
1491 FROM jl_br_sped_partic_rel rel
1492 WHERE rel.participant_code = pc.participant_code
1493 AND legal_entity_id = g_legal_entity_id
1494 AND ((l_estb_acts_as_company ='Y' AND establishment_id=g_establishment_id)
1495 OR (l_estb_acts_as_company='N' AND establishment_id is null)) --- Need to modify
1496 AND rel.effective_from <= g_end_date
1497 AND nvl(rel.effective_to,sysdate) >= g_start_date);
1498
1499 RETURN l_participant_code;
1500 EXCEPTION
1501 WHEN NO_DATA_FOUND THEN
1502 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1503 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No Participant Code found '||SQLERRM);
1504 END IF;
1505 RETURN NULL; --participant_code not found.
1506 WHEN OTHERS THEN
1507 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1508 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1509 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Journal Header: '||p_je_header_id||' Journal Line: '||p_je_line_num);
1510 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Book keeping type: '||g_bookkeeping_type||' Source'||p_journal_source||' Participant_type'||g_participant_type);
1511 END IF;
1512 RETURN NULL;
1513 END;
1514
1515 END IF; -- End for IF p_participant_type = 'SUPPLIERS_AND_CUSTOMERS' OR p_participant_type = 'SUPPLIERS'
1516
1517 END IF; --End for IF p_journal_source = 'Payables'
1518
1519 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1520 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
1521 G_PKG_NAME||': ' ||l_api_name||'()-');
1522 END IF;
1523
1524
1525 return l_participant_code;
1526
1527 EXCEPTION
1528 WHEN OTHERS THEN
1529 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1530 IF g_debug_flag = 'Y' THEN
1531 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
1532 END IF;
1533 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1534 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1535 END IF;
1536 g_errbuf := 'ERROR While deriving the participant code for journal header_id and line num '||p_je_header_id||'-'||p_je_line_num||SQLERRM;
1537 FND_FILE.PUT_LINE(FND_FILE.LOG, g_errbuf);
1538 return NULL;
1539 END get_participant_code;
1540
1541 PROCEDURE register_0000 AS
1542 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_0000';
1543 l_cnpj xle_registrations.registration_number%TYPE;
1544 l_state hr_locations.region_2%TYPE;
1545 l_state_inscription xle_registrations.registration_number%TYPE;
1546 l_municipal_inscription xle_registrations.registration_number%TYPE;
1547 l_ibge_city_code xle_entity_profiles.le_information4%TYPE;
1548
1549 BEGIN
1550
1551 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1552 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
1553 G_PKG_NAME||': ' ||l_api_name||'()+');
1554 END IF;
1555
1556 IF l_estb_acts_as_company='N' THEN -- If LE acts as company
1557
1558 BEGIN
1559
1560 SELECT loc.region_2, le.le_information4 --retrieve state and ibge_city_code
1561 INTO l_state,l_ibge_city_code
1562 FROM xle_entity_profiles le,
1563 xle_registrations reg,
1564 hr_locations loc
1565 WHERE le.legal_entity_id = g_legal_entity_id
1566 AND reg.source_id = le.legal_entity_id
1567 AND reg.source_table = 'XLE_ENTITY_PROFILES'
1568 AND reg.identifying_flag = 'Y'
1569 AND reg.location_id = loc.location_id
1570 AND le.transacting_entity_flag = 'Y'
1571 AND rownum=1;
1572
1573 EXCEPTION
1574 WHEN OTHERS THEN
1575 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving state and ibge city code');
1576 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
1577 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1578 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving state and ibge city code');
1579 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1580 END IF;
1581 END;
1582
1583 BEGIN -- retrieving cnpj
1584
1585 SELECT translate(reg.registration_number,'0123456789/-.', '0123456789')
1586 INTO l_cnpj
1587 FROM xle_registrations reg,
1588 xle_jurisdictions_vl jur
1589 WHERE reg.source_id = g_legal_entity_id
1590 AND reg.source_table = 'XLE_ENTITY_PROFILES'
1591 AND reg.jurisdiction_id = jur.jurisdiction_id
1592 AND jur.registration_code_le = 'CNPJ'
1593 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
1594 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
1595 AND rownum=1;
1596
1597 SELECT decode(length(l_cnpj),15,substr(l_cnpj,2,14),l_cnpj) into l_cnpj from dual;
1598
1599 EXCEPTION
1600 WHEN OTHERS THEN
1601 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving cnpj');
1602 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
1603 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1604 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving cnpj');
1605 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1606 END IF;
1607 END;
1608
1609
1610 IF g_inscription_source ='XLE' THEN
1611 BEGIN --Retrieving state inscription
1612 SELECT registration_number
1613 INTO l_state_inscription
1614 FROM xle_registrations reg,
1615 xle_jurisdictions_vl jur
1616 WHERE reg.source_id = g_legal_entity_id
1617 AND reg.source_table = 'XLE_ENTITY_PROFILES'
1618 AND reg.jurisdiction_id = jur.jurisdiction_id
1619 AND jur.registration_code_le = g_le_state_reg_code
1620 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
1621 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
1622 AND rownum=1;
1623
1624 EXCEPTION
1625 WHEN OTHERS THEN
1626 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1627 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving state inscription');
1628 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1629 END IF;
1630 END;
1631 BEGIN -- --Retrieving municipal inscription
1632 SELECT registration_number
1633 INTO l_municipal_inscription
1634 FROM xle_registrations reg,
1635 xle_jurisdictions_vl jur
1636 WHERE reg.source_id = g_legal_entity_id
1637 AND reg.source_table = 'XLE_ENTITY_PROFILES'
1638 AND reg.jurisdiction_id = jur.jurisdiction_id
1639 AND jur.registration_code_le = g_le_municipal_reg_code
1640 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
1641 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
1642 AND rownum =1;
1643 EXCEPTION
1644 WHEN OTHERS THEN
1645 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1646 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving municipal inscription');
1647 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1648 END IF;
1649 END;
1650 ELSE -- g_inscription_source ='EBTax'(ZX)
1651
1652 BEGIN -- retreive state inscription
1653
1654 SELECT reg.registration_number
1655 INTO l_state_inscription
1656 FROM zx_registrations reg,
1657 xle_etb_profiles etb,
1658 zx_party_tax_profile ptp
1659 WHERE etb.legal_entity_id = g_legal_entity_id
1660 AND main_establishment_flag = 'Y' -- will fetch the registration number of main establishment for LE in case of EBtax.
1661 AND TRUNC(g_start_date) >= TRUNC(NVL(main_effective_from,SYSDATE)) -- conditions to check establishment is active as main estb
1662 AND TRUNC(g_end_date) <= TRUNC(NVL(main_effective_to,SYSDATE))
1663 AND etb.party_id = ptp.party_id
1664 AND ptp.party_tax_profile_id = reg.party_tax_profile_id
1665 AND ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
1666 AND reg.registration_type_code = g_ebtax_state_reg_code
1667 AND reg.tax = g_state_insc_tax
1668 AND reg.tax_regime_code = g_state_insc_tax_regime
1669 AND rownum =1;
1670 EXCEPTION
1671 WHEN OTHERS THEN
1672 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1673 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error in retreiving State inscription for EBTax');
1674 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1675 END IF;
1676 END;
1677
1678 BEGIN -- retreive municipal inscription
1679
1680 SELECT reg.registration_number
1681 INTO l_municipal_inscription
1682 FROM zx_registrations reg,
1683 xle_etb_profiles etb,
1684 zx_party_tax_profile ptp
1685 WHERE etb.legal_entity_id = g_legal_entity_id
1686 AND main_establishment_flag = 'Y' -- will fetch the registration number of main establishment for LE in case of EBtax.
1687 AND TRUNC(g_start_date) >= TRUNC(NVL(main_effective_from,SYSDATE)) -- conditions to check establishment is active as main estb
1688 AND TRUNC(g_end_date) <= TRUNC(NVL(main_effective_to,SYSDATE))
1689 AND etb.party_id = ptp.party_id
1690 AND ptp.party_tax_profile_id = reg.party_tax_profile_id
1691 AND ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
1692 AND reg.registration_type_code = g_ebtax_municipal_reg_code
1693 AND reg.tax = g_municipal_insc_tax
1694 AND reg.tax_regime_code = g_municipal_insc_tax_regime
1695 AND rownum =1;
1696 EXCEPTION
1697 WHEN OTHERS THEN
1698 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1699 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error in retreiving municipal inscription for EBTax');
1700 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1701 END IF;
1702 END;
1703
1704 END IF; -- END for p_insciption_source='LE'
1705
1706
1707 ELSE -- Establishment acts as company
1708
1709 BEGIN
1710 --retrieving state,ibge_city_code
1711 SELECT loc.region_2, etb.etb_information4
1712 INTO l_state,l_ibge_city_code
1713 FROM xle_etb_profiles etb,
1714 xle_registrations reg,
1715 hr_locations loc
1716 WHERE etb.legal_entity_id = g_legal_entity_id
1717 AND etb.establishment_id = g_establishment_id
1718 AND reg.source_id = etb.establishment_id
1719 AND reg.source_table = 'XLE_ETB_PROFILES'
1720 AND reg.identifying_flag = 'Y'
1721 AND reg.location_id = loc.location_id
1722 AND rownum=1;
1723
1724 EXCEPTION
1725 WHEN OTHERS THEN
1726 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving state and ibge_city_code');
1727 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
1728 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1729 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving state and ibge_city_code');
1730 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1731 END IF;
1732 END;
1733
1734
1735 BEGIN
1736 --retrieving cnpj
1737 SELECT translate(reg.registration_number,'0123456789/-.', '0123456789')
1738 INTO l_cnpj
1739 FROM xle_registrations reg,
1740 xle_jurisdictions_vl jur
1741 WHERE reg.source_id = g_establishment_id
1742 AND reg.source_table = 'XLE_ETB_PROFILES'
1743 AND reg.jurisdiction_id = jur.jurisdiction_id
1744 AND jur.registration_code_etb = 'CNPJ'
1745 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
1746 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
1747 AND rownum=1;
1748
1749 SELECT decode(length(l_cnpj),15,substr(l_cnpj,2,14),l_cnpj) into l_cnpj from dual;
1750
1751 EXCEPTION
1752 WHEN OTHERS THEN
1753 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving cnpj');
1754 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
1755 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1756 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving cnpj');
1757 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1758 END IF;
1759 END;
1760
1761
1762
1763 --Retrieving state inscription
1764 IF g_inscription_source ='XLE' THEN
1765 BEGIN
1766 SELECT registration_number
1767 INTO l_state_inscription
1768 FROM xle_registrations reg,
1769 xle_jurisdictions_vl jur
1770 WHERE reg.source_id = g_establishment_id
1771 AND reg.source_table = 'XLE_ETB_PROFILES'
1772 AND reg.jurisdiction_id = jur.jurisdiction_id
1773 AND jur.registration_code_etb = g_le_state_reg_code
1774 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
1775 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
1776 AND rownum=1;
1777
1778 EXCEPTION
1779 WHEN OTHERS THEN
1780 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1781 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving state inscription');
1782 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1783 END IF;
1784 END;
1785 BEGIN --Retrieving municipal inscription
1786 SELECT registration_number
1787 INTO l_municipal_inscription
1788 FROM xle_registrations reg,
1789 xle_jurisdictions_vl jur
1790 WHERE reg.source_id = g_establishment_id
1791 AND reg.source_table = 'XLE_ETB_PROFILES'
1792 AND reg.jurisdiction_id = jur.jurisdiction_id
1793 AND jur.registration_code_etb = g_le_municipal_reg_code
1794 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
1795 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
1796 AND rownum=1;
1797 EXCEPTION
1798 WHEN OTHERS THEN
1799 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1800 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving municipal inscription');
1801 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1802 END IF;
1803 END;
1804 ELSE -- g_inscription_source ='EBTax' ('ZX')
1805
1806 BEGIN -- retreive state inscription
1807
1808 SELECT reg.registration_number
1809 INTO l_state_inscription
1810 FROM zx_registrations reg,
1811 xle_etb_profiles etb,
1812 zx_party_tax_profile ptp
1813 WHERE etb.legal_entity_id = g_legal_entity_id
1814 AND etb.establishment_id = g_establishment_id
1815 AND etb.party_id = ptp.party_id
1816 AND ptp.party_tax_profile_id = reg.party_tax_profile_id
1817 AND ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
1818 AND reg.registration_type_code = g_ebtax_state_reg_code
1819 AND reg.tax = g_state_insc_tax
1820 AND reg.tax_regime_code = g_state_insc_tax_regime
1821 AND rownum =1;
1822 EXCEPTION
1823 WHEN OTHERS THEN
1824 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1825 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error in retreiving State inscription for EBTax');
1826 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1827 END IF;
1828 END;
1829
1830 BEGIN -- retreive municipal inscription
1831
1832 SELECT reg.registration_number
1833 INTO l_municipal_inscription
1834 FROM zx_registrations reg,
1835 xle_etb_profiles etb,
1836 zx_party_tax_profile ptp
1837 WHERE etb.legal_entity_id = g_legal_entity_id
1838 AND etb.establishment_id = g_establishment_id
1839 AND etb.party_id = ptp.party_id
1840 AND ptp.party_tax_profile_id = reg.party_tax_profile_id
1841 AND ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
1842 AND reg.registration_type_code = g_ebtax_municipal_reg_code
1843 AND reg.tax = g_municipal_insc_tax
1844 AND reg.tax_regime_code = g_municipal_insc_tax_regime
1845 AND rownum =1;
1846 EXCEPTION
1847 WHEN OTHERS THEN
1848 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1849 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error in retreiving Municipal inscription for EBTax');
1850 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1851 END IF;
1852 END;
1853
1854 END IF; -- END for p_insciption_source='XLE'
1855
1856
1857 END IF; -- End for If l_estb_acts_as_company='N'
1858
1859 --insert company info into 0000 register.
1860 BEGIN
1861
1862 INSERT INTO jl_br_sped_extr_data_t
1863 (request_id,
1864 block,
1865 record_seq,
1866 field1,
1867 separator1,
1868 field2,
1869 separator2,
1870 field3,
1871 separator3,
1872 field4,
1873 separator4,
1874 field5,
1875 separator5,
1876 field6,
1877 separator6,
1878 field7,
1879 separator7,
1880 field8,
1881 separator8,
1882 field9,
1883 separator9,
1884 field10,
1885 separator10,
1886 field11,
1887 separator11,
1888 created_by,
1889 creation_date,
1890 last_updated_by,
1891 last_update_date,
1892 last_update_login)
1893 VALUES (g_concurrent_request_id
1894 ,'0' -- Block
1895 ,jl_br_sped_extr_data_t_s.nextval --record_seq
1896 ,'0000' -- Register (field 1)
1897 ,'|'
1898 ,'LECD' -- Fixed Text (field 2)
1899 ,'|'
1900 ,to_char(g_start_date,'ddmmyyyy') --(field 3)
1901 ,'|'
1902 ,to_char(g_end_date,'ddmmyyyy') --(field 4)
1903 ,'|'
1904 ,g_company_name --field 5
1905 ,'|'
1906 ,l_cnpj --field 6
1907 ,'|'
1908 ,SUBSTRB(l_state,1,2)
1909 ,'|'
1910 ,l_state_inscription
1911 ,'|'
1912 ,SUBSTRB(l_ibge_city_code,1,7)
1913 ,'|'
1914 ,l_municipal_inscription
1915 ,'|'
1916 ,g_special_situation_indicator
1917 ,'|'
1918 ,g_created_by
1919 ,g_creation_date
1920 ,g_last_updated_by
1921 ,g_last_update_date
1922 ,g_last_update_login);
1923 EXCEPTION
1924 WHEN OTHERS THEN
1925 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Inserting data into 0000 register');
1926 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
1927 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1928 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1929 END IF;
1930 g_errbuf := 'ERROR While inserting 0000 register '||SQLERRM;
1931 g_retcode := 2;
1932 return;
1933 END;
1934 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1935 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
1936 G_PKG_NAME||': ' ||l_api_name||'()-');
1937 END IF;
1938 EXCEPTION
1939 WHEN OTHERS THEN
1940 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1941 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Exception in 0000 register'||SQLERRM);
1942 END IF;
1943
1944
1945 END register_0000;
1946
1947 PROCEDURE register_0001 AS
1948 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_0001';
1949
1950 BEGIN
1951
1952 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1953 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
1954 G_PKG_NAME||': '||l_api_name||'()+');
1955 END IF;
1956
1957 INSERT INTO jl_br_sped_extr_data_t
1958 (request_id,
1959 block,
1960 record_seq,
1961 field1,
1962 separator1,
1963 field2,
1964 separator2,
1965 created_by,
1966 creation_date,
1967 last_updated_by,
1968 last_update_date,
1969 last_update_login)
1970 VALUES( g_concurrent_request_id,
1971 '0', --block
1972 jl_br_sped_extr_data_t_s.nextval, --record_seq
1973 '0001', --Register (field1)
1974 '|',
1975 0,-- null,--decode(count(*),0,1,0), --field2
1976 '|'
1977 ,g_created_by
1978 ,g_creation_date
1979 ,g_last_updated_by
1980 ,g_last_update_date
1981 ,g_last_update_login );
1982
1983 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
1984
1985 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1986 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
1987 G_PKG_NAME||': ' ||l_api_name||'()-');
1988 END IF;
1989
1990 EXCEPTION
1991 WHEN OTHERS THEN
1992 fnd_file.put_line(fnd_file.log,'error in 0001'||sqlcode||sqlerrm);
1993 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
1994 IF g_debug_flag = 'Y' THEN
1995 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
1996 END IF;
1997 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1998 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1999 END IF;
2000 g_errbuf := 'ERROR While inserting 0001 register '||SQLERRM;
2001 g_retcode := 2;
2002 return;
2003
2004 END register_0001;
2005
2006 PROCEDURE register_0007 AS
2007 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_0007';
2008
2009 BEGIN
2010
2011 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2012 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
2013 G_PKG_NAME||': '||l_api_name||'()+');
2014 END IF;
2015
2016 IF l_estb_acts_as_company = 'N' THEN --LE acts as company
2017
2018 INSERT INTO jl_br_sped_extr_data_t
2019 (request_id,
2020 block,
2021 record_seq,
2022 field1,
2023 separator1,
2024 field2,
2025 separator2,
2026 field3,
2027 separator3,
2028 created_by,
2029 creation_date,
2030 last_updated_by,
2031 last_update_date,
2032 last_update_login
2033 )
2034 SELECT g_concurrent_request_id
2035 ,'0' -- Block
2036 ,jl_br_sped_extr_data_t_s.nextval --record_seq
2037 ,'0007' -- Register (field 1)
2038 ,'|'
2039 ,reg.reg_information1 --field 2
2040 ,'|'
2041 ,decode(reg.reg_information1,'00',null,reg.registration_number) --field 3
2042 ,'|'
2043 ,g_created_by
2044 ,g_creation_date
2045 ,g_last_updated_by
2046 ,g_last_update_date
2047 ,g_last_update_login
2048 FROM xle_registrations reg
2049 WHERE reg.source_id = g_legal_entity_id
2050 AND reg.source_table = 'XLE_ENTITY_PROFILES'
2051 AND reg.reg_information1 IS NOT NULL
2052 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date --effective_from column can be null in xle_registrations table.
2053 AND (nvl(effective_to,sysdate) >= g_end_date OR effective_to IS NULL); -- Registration should be there for entire period.
2054
2055 ELSE --Establishment acts as company
2056
2057 INSERT INTO jl_br_sped_extr_data_t
2058 (request_id,
2059 block,
2060 record_seq,
2061 field1,
2062 separator1,
2063 field2,
2064 separator2,
2065 field3,
2066 separator3,
2067 created_by,
2068 creation_date,
2069 last_updated_by,
2070 last_update_date,
2071 last_update_login
2072 )
2073 SELECT g_concurrent_request_id
2074 ,'0' -- Block
2075 ,jl_br_sped_extr_data_t_s.nextval --record_seq
2076 ,'0007' -- Register (field 1)
2077 ,'|'
2078 ,reg.reg_information1 --field 2
2079 ,'|'
2080 ,decode(reg.reg_information1,'00',null,reg.registration_number) --field 3
2081 ,'|'
2082 ,g_created_by
2083 ,g_creation_date
2084 ,g_last_updated_by
2085 ,g_last_update_date
2086 ,g_last_update_login
2087 FROM xle_registrations reg
2088 WHERE reg.source_id = g_establishment_id
2089 AND reg.source_table = 'XLE_ETB_PROFILES'
2090 AND reg.reg_information1 IS NOT NULL
2091 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date --effective_from column can be null in xle_registrations table.
2092 AND (nvl(effective_to,sysdate) >= g_end_date OR effective_to IS NULL); -- Registration should be there for entire period.
2093
2094 END IF; -- End for IF l_estb_acts_as_company='N'
2095
2096 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
2097
2098 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2099 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
2100 G_PKG_NAME||': ' ||l_api_name||'()-');
2101 END IF;
2102
2103 EXCEPTION
2104 WHEN OTHERS THEN
2105
2106 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2107 IF g_debug_flag = 'Y' THEN
2108 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
2109 END IF;
2110 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2111 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2112 END IF;
2113 g_errbuf := 'ERROR While inserting 0007 register '||SQLERRM;
2114 g_retcode := 2;
2115 return;
2116
2117 END register_0007;
2118
2119 PROCEDURE register_0020 AS
2120 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_0020';
2121 l_main_estb_flag VARCHAR2(1);
2122 l_cnpj xle_registrations.registration_number%TYPE;
2123 l_state hr_locations.region_2%TYPE;
2124 l_state_inscription xle_registrations.registration_number%TYPE;
2125 l_municipal_inscription xle_registrations.registration_number%TYPE;
2126 l_ibge_city_code xle_entity_profiles.le_information4%TYPE;
2127 l_nire NUMBER(20); --check the data type
2128 l_establishment_id xle_etb_profiles.establishment_id%TYPE;
2129 l_count NUMBER := 0;
2130 CURSOR secondary_estbs_cur IS SELECT establishment_id
2131 FROM xle_etb_profiles
2132 WHERE legal_entity_id = g_legal_entity_id
2133 --AND main_establishment_flag='N'
2134 AND establishment_id NOT IN (SELECT establishment_id
2135 FROM xle_etb_profiles
2136 WHERE legal_entity_id = g_legal_entity_id
2137 AND main_establishment_flag = 'Y'
2138 AND TRUNC(g_start_date) >= TRUNC(NVL(main_effective_from,SYSDATE))
2139 AND TRUNC(g_end_date) <= TRUNC(NVL(main_effective_to,SYSDATE)))
2140 AND TRUNC(g_start_date) >= TRUNC(NVL(effective_from,SYSDATE))
2141 AND TRUNC(g_end_date) <= TRUNC(NVL(effective_to,SYSDATE));
2142
2143 BEGIN
2144
2145 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2146 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
2147 G_PKG_NAME||': ' ||l_api_name||'()+');
2148 END IF;
2149
2150
2151 IF UPPER(g_accounting_type) = 'CENTRALIZED' THEN
2152 RETURN;
2153 END IF;
2154
2155 BEGIN
2156
2157 SELECT 'Y'
2158 INTO l_main_estb_flag
2159 FROM xle_etb_profiles
2160 WHERE legal_entity_id = g_legal_entity_id
2161 AND establishment_id = g_establishment_id
2162 AND main_establishment_flag = 'Y'
2163 AND TRUNC(g_start_date) >= TRUNC(NVL(main_effective_from,SYSDATE))
2164 AND TRUNC(g_end_date) <= TRUNC(NVL(main_effective_to,SYSDATE));
2165 EXCEPTION
2166 WHEN NO_DATA_FOUND THEN
2167 l_main_estb_flag := 'N';
2168 WHEN OTHERS THEN
2169 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving main establishment flag');
2170 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
2171 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2172 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving main establishment flag');
2173 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2174 END IF;
2175 END;
2176
2177 IF l_main_estb_flag = 'N' THEN -- running the report for secondary establishment. need to display LE info in 0020 register.
2178
2179 BEGIN
2180
2181 SELECT loc.region_2, le.le_information4
2182 INTO l_state,l_ibge_city_code
2183 FROM xle_entity_profiles le,
2184 xle_registrations reg,
2185 hr_locations loc
2186 WHERE le.legal_entity_id = g_legal_entity_id
2187 AND reg.source_id = le.legal_entity_id
2188 AND reg.source_table = 'XLE_ENTITY_PROFILES'
2189 AND reg.identifying_flag = 'Y'
2190 AND reg.location_id = loc.location_id
2191 AND le.transacting_entity_flag = 'Y'
2192 AND rownum = 1 ;
2193
2194 EXCEPTION
2195 WHEN OTHERS THEN
2196 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving state and ibge_city_code');
2197 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
2198 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2199 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving state and ibge_city_code');
2200 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2201 END IF;
2202 END;
2203
2204 BEGIN -- retrieving cnpj
2205
2206 SELECT translate(reg.registration_number,'0123456789/-.', '0123456789')
2207 INTO l_cnpj
2208 FROM xle_registrations reg,
2209 xle_jurisdictions_vl jur
2210 WHERE reg.source_id = g_legal_entity_id
2211 AND reg.source_table = 'XLE_ENTITY_PROFILES'
2212 AND reg.jurisdiction_id = jur.jurisdiction_id
2213 AND jur.registration_code_le = 'CNPJ'
2214 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2215 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
2216 AND rownum=1;
2217
2218 SELECT decode(length(l_cnpj),15,substr(l_cnpj,2,14),l_cnpj) into l_cnpj from dual;
2219
2220 EXCEPTION
2221 WHEN OTHERS THEN
2222 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error while Retrieving cnpj of LE');
2223 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
2224 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2225 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving cnpj');
2226 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2227 END IF;
2228 END;
2229
2230 --Begin for retrieving NIRE.
2231 /* If any registration number exists with place of registration as 'NIRE' then, we need to retrieve it as 'NIRE'.
2232 otherwise, we need to retrieve the registration number with legislative category as 'COMMERCIAL_LAW'. */
2233
2234 SELECT count(*)
2235 INTO l_count
2236 FROM xle_registrations
2237 WHERE source_id = g_legal_entity_id
2238 AND source_table = 'XLE_ENTITY_PROFILES'
2239 AND UPPER(place_of_registration) = 'NIRE'
2240 AND nvl(effective_from ,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2241 AND (effective_to IS NULL OR effective_to >= g_end_date);
2242
2243 IF l_count > 0 THEN
2244 BEGIN
2245 SELECT registration_number
2246 INTO l_nire
2247 FROM xle_registrations
2248 WHERE source_id = g_legal_entity_id
2249 AND source_table = 'XLE_ENTITY_PROFILES'
2250 AND UPPER(place_of_registration) = 'NIRE'
2251 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2252 AND (effective_to IS NULL OR effective_to >= g_end_date)
2253 AND rownum =1;
2254
2255 EXCEPTION
2256 WHEN OTHERS THEN
2257 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2258 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving nire using place of registration');
2259 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2260 END IF;
2261 END;
2262 ELSE
2263
2264 BEGIN
2265 SELECT registration_number
2266 INTO l_nire
2267 FROM xle_registrations reg,
2268 xle_jurisdictions_vl jur
2269 WHERE source_id = g_legal_entity_id
2270 AND source_table = 'XLE_ENTITY_PROFILES'
2271 AND reg.jurisdiction_id = jur.jurisdiction_id
2272 AND jur.legislative_cat_code = 'COMMERCIAL_LAW'
2273 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2274 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
2275 AND rownum=1;
2276
2277 EXCEPTION
2278 WHEN OTHERS THEN
2279 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2280 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving nire using Commercial Law');
2281 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2282 END IF;
2283 END;
2284
2285 END IF;
2286 --End of retrieving NIRE
2287
2288 --Retrieving state inscription
2289 IF g_inscription_source ='XLE' THEN
2290 BEGIN
2291 SELECT registration_number
2292 INTO l_state_inscription
2293 FROM xle_registrations reg,
2294 xle_jurisdictions_vl jur
2295 WHERE reg.source_id = g_legal_entity_id
2296 AND reg.source_table = 'XLE_ENTITY_PROFILES'
2297 AND reg.jurisdiction_id = jur.jurisdiction_id
2298 AND jur.registration_code_le = g_le_state_reg_code
2299 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2300 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
2301 AND rownum=1;
2302
2303 EXCEPTION
2304 WHEN OTHERS THEN
2305 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2306 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving state inscription');
2307 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2308 END IF;
2309 END;
2310 BEGIN -- --Retrieving municipal inscription
2311 SELECT registration_number
2312 INTO l_municipal_inscription
2313 FROM xle_registrations reg,
2314 xle_jurisdictions_vl jur
2315 WHERE reg.source_id = g_legal_entity_id
2316 AND reg.source_table = 'XLE_ENTITY_PROFILES'
2317 AND reg.jurisdiction_id = jur.jurisdiction_id
2318 AND jur.registration_code_le = g_le_municipal_reg_code
2319 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2320 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
2321 AND rownum =1;
2322 EXCEPTION
2323 WHEN OTHERS THEN
2324 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2325 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving municipal inscription');
2326 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2327 END IF;
2328 END;
2329 ELSE -- g_inscription_source ='EBTax'('ZX')
2330
2331 BEGIN -- retreive state inscription
2332
2333 SELECT reg.registration_number
2334 INTO l_state_inscription
2335 FROM zx_registrations reg,
2336 xle_etb_profiles etb,
2337 zx_party_tax_profile ptp
2338 WHERE etb.legal_entity_id = g_legal_entity_id
2339 AND main_establishment_flag = 'Y' -- will fetch the registration number of main establishment for LE in case of EBtax.
2340 AND TRUNC(g_start_date) >= TRUNC(NVL(main_effective_from,SYSDATE)) -- conditions to check establishment is active as main estb
2341 AND TRUNC(g_end_date) <= TRUNC(NVL(main_effective_to,SYSDATE))
2342 AND etb.party_id = ptp.party_id
2343 AND ptp.party_tax_profile_id = reg.party_tax_profile_id
2344 AND ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
2345 AND reg.registration_type_code = g_ebtax_state_reg_code
2346 AND reg.tax = g_state_insc_tax
2347 AND reg.tax_regime_code = g_state_insc_tax_regime
2348 AND rownum =1;
2349 EXCEPTION
2350 WHEN OTHERS THEN
2351 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2352 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error in retreiving State inscription for EBTax');
2353 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2354 END IF;
2355 END;
2356
2357 BEGIN -- retreive municipal inscription
2358
2359 SELECT reg.registration_number
2360 INTO l_municipal_inscription
2361 FROM zx_registrations reg,
2362 xle_etb_profiles etb,
2363 zx_party_tax_profile ptp
2364 WHERE etb.legal_entity_id = g_legal_entity_id
2365 AND main_establishment_flag = 'Y' -- will fetch the registration number of main establishment for LE in case of EBtax.
2366 AND TRUNC(g_start_date) >= TRUNC(NVL(main_effective_from,SYSDATE)) -- conditions to check establishment is active as main estb
2367 AND TRUNC(g_end_date) <= TRUNC(NVL(main_effective_to,SYSDATE))
2368 AND etb.party_id = ptp.party_id
2369 AND ptp.party_tax_profile_id = reg.party_tax_profile_id
2370 AND ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
2371 AND reg.registration_type_code = g_ebtax_municipal_reg_code
2372 AND reg.tax = g_municipal_insc_tax
2373 AND reg.tax_regime_code = g_municipal_insc_tax_regime
2374 AND rownum =1;
2375 EXCEPTION
2376 WHEN OTHERS THEN
2377 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2378 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error in retreiving municipal inscription for EBTax');
2379 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2380 END IF;
2381 END;
2382
2383 END IF; -- END for p_insciption_source='XLE'
2384
2385 BEGIN
2386
2387 INSERT INTO jl_br_sped_extr_data_t
2388 (request_id,
2389 block,
2390 record_seq,
2391 field1,
2392 separator1,
2393 field2,
2394 separator2,
2395 field3,
2396 separator3,
2397 field4,
2398 separator4,
2399 field5,
2400 separator5,
2401 field6,
2402 separator6,
2403 field7,
2404 separator7,
2405 field8,
2406 separator8,
2407 created_by,
2408 creation_date,
2409 last_updated_by,
2410 last_update_date,
2411 last_update_login
2412 )
2413 VALUES(g_concurrent_request_id
2414 ,'0' -- Block
2415 ,jl_br_sped_extr_data_t_s.nextval --record_seq
2416 ,'0020' -- Register (field 1)
2417 ,'|'
2418 ,1 --LE
2419 ,'|'
2420 ,l_cnpj --field 3
2421 ,'|'
2422 ,SUBSTRB(l_state,1,2) --field 4
2423 ,'|'
2424 ,l_state_inscription -- field 5
2425 ,'|'
2426 ,SUBSTRB(l_ibge_city_code,1,7) --field6
2427 ,'|'
2428 ,l_municipal_inscription -- field 7
2429 ,'|'
2430 ,SUBSTRB(l_nire,11) --field 8
2431 ,'|'
2432 ,g_created_by
2433 ,g_creation_date
2434 ,g_last_updated_by
2435 ,g_last_update_date
2436 ,g_last_update_login);
2437 EXCEPTION
2438 WHEN OTHERS THEN
2439 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Inserting data into 0020 register');
2440 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
2441 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2442 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2443 END IF;
2444 g_errbuf := 'ERROR While inserting 0020 register '||SQLERRM;
2445 g_retcode := 2;
2446 return;
2447 END;
2448
2449 ELSE -- running the report for primary establishment.Need to display all secondary establishment's info in 0020 register.
2450
2451 FOR secondary_estb_rec in secondary_estbs_cur LOOP
2452 l_establishment_id := secondary_estb_rec.establishment_id ;
2453 l_state := null;
2454 l_ibge_city_code := null;
2455 l_state_inscription := null;
2456 l_municipal_inscription := null;
2457 l_cnpj := null;
2458 l_nire := null;
2459
2460 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2461 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Establishment_id : '||l_establishment_id);
2462 END IF;
2463
2464 BEGIN
2465 --retrieving cnpj,state,ibge_city_code
2466 SELECT loc.region_2, etb.etb_information4
2467 INTO l_state,l_ibge_city_code
2468 FROM xle_etb_profiles etb,
2469 xle_registrations reg,
2470 hr_locations loc
2471 WHERE etb.legal_entity_id = g_legal_entity_id
2472 AND etb.establishment_id = l_establishment_id
2473 AND reg.source_id = etb.establishment_id
2474 AND reg.source_table = 'XLE_ETB_PROFILES'
2475 AND reg.identifying_flag = 'Y'
2476 AND reg.location_id = loc.location_id
2477 AND rownum = 1;
2478
2479 EXCEPTION
2480 WHEN OTHERS THEN
2481 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving state and ibge_city_code');
2482 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
2483 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2484 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving state,ibge_city_code of ESTB');
2485 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2486 END IF;
2487 END;
2488
2489 --Begin for retrieving NIRE.
2490 /* If any registration number exists with place of registration as 'NIRE' then, we need to retrieve it as 'NIRE'.
2491 otherwise, we need to retrieve the registration number with legislative category as 'COMMERCIAL_LAW'. */
2492
2493 SELECT count(*)
2494 INTO l_count
2495 FROM xle_registrations
2496 WHERE source_id = l_establishment_id
2497 AND source_table = 'XLE_ETB_PROFILES'
2498 AND UPPER(place_of_registration) = 'NIRE'
2499 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2500 AND (effective_to IS NULL OR effective_to >= g_end_date);
2501
2502 IF l_count > 0 THEN
2503 BEGIN
2504 SELECT registration_number
2505 INTO l_nire
2506 FROM xle_registrations
2507 WHERE source_id = l_establishment_id
2508 AND source_table = 'XLE_ETB_PROFILES'
2509 AND UPPER(place_of_registration) = 'NIRE'
2510 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2511 AND (effective_to IS NULL OR effective_to >= g_end_date)
2512 AND rownum = 1;
2513
2514 EXCEPTION
2515 WHEN OTHERS THEN
2516 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2517 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving nire using place of registration');
2518 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2519 END IF;
2520 END;
2521 ELSE
2522
2523 BEGIN
2524 SELECT registration_number
2525 INTO l_nire
2526 FROM xle_registrations reg,
2527 xle_jurisdictions_vl jur
2528 WHERE source_id = l_establishment_id
2529 AND source_table = 'XLE_ETB_PROFILES'
2530 AND reg.jurisdiction_id = jur.jurisdiction_id
2531 AND jur.legislative_cat_code = 'COMMERCIAL_LAW'
2532 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2533 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
2534 AND rownum = 1;
2535
2536 EXCEPTION
2537 WHEN OTHERS THEN
2538 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2539 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving nire using Commercial Law');
2540 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2541 END IF;
2542 END;
2543
2544 END IF;
2545 --End of retrieving NIRE
2546
2547 BEGIN
2548 --retrieving cnpj
2549 SELECT translate(reg.registration_number,'0123456789/-.', '0123456789')
2550 INTO l_cnpj
2551 FROM xle_registrations reg,
2552 xle_jurisdictions_vl jur
2553 WHERE reg.source_id = l_establishment_id
2554 AND reg.source_table = 'XLE_ETB_PROFILES'
2555 AND reg.jurisdiction_id = jur.jurisdiction_id
2556 AND jur.registration_code_etb = 'CNPJ'
2557 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2558 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
2559 AND rownum=1;
2560
2561 SELECT decode(length(l_cnpj),15,substr(l_cnpj,2,14),l_cnpj) into l_cnpj from dual;
2562
2563 EXCEPTION
2564 WHEN OTHERS THEN
2565 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error while Retrieving cnpj of ESTB');
2566 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
2567 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2568 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error while Retrieving cnpj of ESTB');
2569 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2570 END IF;
2571 END;
2572
2573
2574 --Retrieving state inscription
2575
2576 IF g_inscription_source ='XLE' THEN
2577 BEGIN
2578 SELECT registration_number
2579 INTO l_state_inscription
2580 FROM xle_registrations reg,
2581 xle_jurisdictions_vl jur
2582 WHERE reg.source_id = l_establishment_id
2583 AND reg.source_table = 'XLE_ETB_PROFILES'
2584 AND reg.jurisdiction_id = jur.jurisdiction_id
2585 AND jur.registration_code_etb = g_le_state_reg_code
2586 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2587 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
2588 AND rownum=1;
2589
2590 EXCEPTION
2591 WHEN OTHERS THEN
2592 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2593 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving state inscription of ESTB from XLE');
2594 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2595 END IF;
2596 END;
2597 BEGIN --Retrieving municipal inscription
2598 SELECT registration_number
2599 INTO l_municipal_inscription
2600 FROM xle_registrations reg,
2601 xle_jurisdictions_vl jur
2602 WHERE reg.source_id = l_establishment_id
2603 AND reg.source_table = 'XLE_ETB_PROFILES'
2604 AND reg.jurisdiction_id = jur.jurisdiction_id
2605 AND jur.registration_code_etb = g_le_municipal_reg_code
2606 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
2607 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
2608 AND rownum=1;
2609 EXCEPTION
2610 WHEN OTHERS THEN
2611 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2612 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving municipal inscription of ESTB from XLE');
2613 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2614 END IF;
2615 END;
2616 ELSE -- g_inscription_source ='EBTax'('ZX')
2617
2618 BEGIN -- retreive state inscription
2619
2620 SELECT reg.registration_number
2621 INTO l_state_inscription
2622 FROM zx_registrations reg,
2623 xle_etb_profiles etb,
2624 zx_party_tax_profile ptp
2625 WHERE etb.legal_entity_id = g_legal_entity_id
2626 AND etb.establishment_id = l_establishment_id -- will fetch the registration number of main establishment for LE in case of EBtax.
2627 AND etb.party_id = ptp.party_id
2628 AND ptp.party_tax_profile_id = reg.party_tax_profile_id
2629 AND ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
2630 AND reg.registration_type_code = g_ebtax_state_reg_code
2631 AND reg.tax = g_state_insc_tax
2632 AND reg.tax_regime_code = g_state_insc_tax_regime
2633 AND rownum =1;
2634 EXCEPTION
2635 WHEN OTHERS THEN
2636 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2637 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error in retreiving State inscription for EBTax');
2638 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2639 END IF;
2640 END;
2641
2642 BEGIN -- retreive municipal inscription
2643
2644 SELECT reg.registration_number
2645 INTO l_municipal_inscription
2646 FROM zx_registrations reg,
2647 xle_etb_profiles etb,
2648 zx_party_tax_profile ptp
2649 WHERE etb.legal_entity_id = g_legal_entity_id
2650 AND etb.establishment_id = l_establishment_id -- will fetch the registration number of main establishment for LE in case of EBtax.
2651 AND etb.party_id = ptp.party_id
2652 AND ptp.party_tax_profile_id = reg.party_tax_profile_id
2653 AND ptp.party_type_code = 'LEGAL_ESTABLISHMENT'
2654 AND reg.registration_type_code = g_ebtax_municipal_reg_code
2655 AND reg.tax = g_municipal_insc_tax
2656 AND reg.tax_regime_code = g_municipal_insc_tax_regime
2657 AND rownum =1;
2658 EXCEPTION
2659 WHEN OTHERS THEN
2660 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2661 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error in retreiving municipal inscription for EBTax');
2662 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2663 END IF;
2664 END;
2665
2666 END IF; -- END for p_insciption_source='XLE'
2667
2668 BEGIN
2669
2670 INSERT INTO jl_br_sped_extr_data_t
2671 (request_id,
2672 block,
2673 record_seq,
2674 field1,
2675 separator1,
2676 field2,
2677 separator2,
2678 field3,
2679 separator3,
2680 field4,
2681 separator4,
2682 field5,
2683 separator5,
2684 field6,
2685 separator6,
2686 field7,
2687 separator7,
2688 field8,
2689 separator8,
2690 created_by,
2691 creation_date,
2692 last_updated_by,
2693 last_update_date,
2694 last_update_login
2695 )
2696 VALUES(g_concurrent_request_id
2697 ,'0' -- Block
2698 ,jl_br_sped_extr_data_t_s.nextval --record_seq
2699 ,'0020' -- Register (field 1)
2700 ,'|'
2701 ,0 --Establishment
2702 ,'|'
2703 ,l_cnpj --field 3
2704 ,'|'
2705 ,SUBSTRB(l_state,1,2) --field 4
2706 ,'|'
2707 ,l_state_inscription -- field 5
2708 ,'|'
2709 ,SUBSTRB(l_ibge_city_code,1,7) --field6
2710 ,'|'
2711 ,l_municipal_inscription -- field 7
2712 ,'|'
2713 ,SUBSTRB(l_nire,1,11) --field 8
2714 ,'|'
2715 ,g_created_by
2716 ,g_creation_date
2717 ,g_last_updated_by
2718 ,g_last_update_date
2719 ,g_last_update_login);
2720 EXCEPTION
2721 WHEN OTHERS THEN
2722 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Inserting data into 0020 register-establishments');
2723 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
2724 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2725 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2726 END IF;
2727 g_errbuf := 'ERROR While inserting 0020 register '||SQLERRM;
2728 g_retcode := 2;
2729 return;
2730 END;
2731 END LOOP;
2732
2733 END IF; -- End for l_main_estb_flag = 'N'
2734
2735
2736 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2737 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
2738 G_PKG_NAME||': ' ||l_api_name||'()-');
2739 END IF;
2740
2741 END register_0020;
2742
2743 PROCEDURE register_0150_0180 AS
2744 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_0150_0180';
2745 l_count NUMBER;
2746 CURSOR c_participants IS
2747 SELECT p.participant_code
2748 ,participant_name
2749 ,lpad(lc.meaning,5,'0') cbank_country_code
2750 ,decode(p.register_type,'2',decode(length(p.register_number),9,substrb(p.register_number,2,8)||p.register_subsidiary||p.register_digit,
2751 p.register_number||p.register_subsidiary||p.register_digit),null) cnpj
2752 ,decode(p.register_type,'1',p.register_number||p.register_digit,null) cpf
2753 ,p.nit
2754 ,p.state_code
2755 ,p.state_inscription
2756 ,p.state_inscription_substitute
2757 ,p.ibge_city_code
2758 ,p.municipal_inscription
2759 ,p.suframa_inscription_number
2760 FROM jl_br_sped_partic_codes p
2761 ,fnd_lookups lc
2762 WHERE ledger_id = g_ledger_id
2763 AND lc.lookup_type ='JLBR_CBANK_COUNTRY_CODES'
2764 AND lc.lookup_code = p.country_code
2765 AND p.enabled_flag = 'Y'
2766 AND ((g_participant_type in ('SUPPLIERS','CUSTOMERS','SUPPLIER_SITES','CUSTOMER_SITES') AND participant_type = g_participant_type) OR
2767 (g_participant_type = 'ACCOUNTING_FLEXFIELD_SEGMENT' AND p.segment_type = g_accounting_segment_type) OR
2768 (g_participant_type = 'SUPPLIERS_AND_CUSTOMERS' AND participant_type = 'SUPPLIERS') OR
2769 (g_participant_type = 'SUPPLIERS_AND_CUSTOMERS' AND participant_type = 'CUSTOMERS') OR
2770 (g_participant_type = 'SUPPLIER_AND_CUSTOMER_SITES' AND participant_type = 'SUPPLIER_SITES') OR
2771 (g_participant_type = 'SUPPLIER_AND_CUSTOMER_SITES' AND participant_type = 'CUSTOMER_SITES') )
2772 AND exists (select 1 from jl_br_sped_partic_rel rel
2773 where rel.participant_code = p.participant_code
2774 and rel.legal_entity_id = g_legal_entity_id
2775 and ((g_accounting_type='CENTRALIZED' AND ((l_estb_acts_as_company = 'Y' AND establishment_id = g_establishment_id)
2776 OR (l_estb_acts_as_company ='N' AND establishment_id is null)))
2777 OR
2778 (g_accounting_type='DECENTRALIZED' AND (establishment_id is null OR
2779 establishment_id=g_establishment_id)))
2780 and rel.effective_from <= g_end_date
2781 and nvl(rel.effective_to,sysdate) >= g_start_date);
2782
2783 BEGIN
2784
2785 IF g_bookkeeping_type <> 'B' THEN -- 0150 and 0180 are not required for book keeping type 'B'
2786
2787 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2788 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
2789 G_PKG_NAME||': '||l_api_name||'()+');
2790 END IF;
2791
2792 For partic_record in c_participants LOOP
2793
2794 INSERT INTO jl_br_sped_extr_data_t
2795 (request_id,
2796 block,
2797 record_seq,
2798 field1,
2799 separator1,
2800 field2,
2801 separator2,
2802 field3,
2803 separator3,
2804 field4,
2805 separator4,
2806 field5,
2807 separator5,
2808 field6,
2809 separator6,
2810 field7,
2811 separator7,
2812 field8,
2813 separator8,
2814 field9,
2815 separator9,
2816 field10,
2817 separator10,
2818 field11,
2819 separator11,
2820 field12,
2821 separator12,
2822 field13,
2823 separator13,
2824 created_by,
2825 creation_date,
2826 last_updated_by,
2827 last_update_date,
2828 last_update_login)
2829 values (g_concurrent_request_id
2830 ,'0' -- Block
2831 ,jl_br_sped_extr_data_t_s.nextval -- Record_seq
2832 ,'0150' -- Register (field 1)
2833 ,'|'
2834 , partic_record.participant_code --field 2
2835 ,'|'
2836 , partic_record.participant_name --field 3
2837 ,'|'
2838 , partic_record.cbank_country_code --field 4
2839 ,'|'
2840 , partic_record.cnpj --field 5
2841 ,'|'
2842 , partic_record.cpf --field 6
2843 ,'|'
2844 , partic_record.nit --field 7
2845 ,'|'
2846 , partic_record.state_code --field 8
2847 ,'|'
2848 , partic_record.state_inscription --field 9
2849 ,'|'
2850 , partic_record.state_inscription_substitute --field10
2851 , '|'
2852 , partic_record.ibge_city_code --field 11
2853 ,'|'
2854 , partic_record.municipal_inscription --field 12
2855 ,'|'
2856 ,partic_record.suframa_inscription_number --field 13
2857 ,'|'
2858 ,g_created_by
2859 ,g_creation_date
2860 ,g_last_updated_by
2861 ,g_last_update_date
2862 ,g_last_update_login );
2863
2864
2865 INSERT INTO jl_br_sped_extr_data_t
2866 (request_id,
2867 block,
2868 record_seq,
2869 field1,
2870 separator1,
2871 field2,
2872 separator2,
2873 field3,
2874 separator3,
2875 field4,
2876 separator4,
2877 created_by,
2878 creation_date,
2879 last_updated_by,
2880 last_update_date,
2881 last_update_login)
2882 SELECT g_concurrent_request_id
2883 ,'0' -- Block
2884 ,jl_br_sped_extr_data_t_s.nextval -- Record_seq
2885 ,'0180' -- Register (field 1)
2886 ,'|'
2887 ,relationship_code --field 2
2888 ,'|'
2889 ,to_char(effective_from,'ddmmyyyy')--field 3
2890 ,'|'
2891 ,to_char(effective_to,'ddmmyyyy') --field 4
2892 ,'|'
2893 ,g_created_by
2894 ,g_creation_date
2895 ,g_last_updated_by
2896 ,g_last_update_date
2897 ,g_last_update_login
2898 FROM jl_br_sped_partic_rel
2899 WHERE participant_code = partic_record.participant_code
2900 AND legal_entity_id = g_legal_entity_id
2901 AND ((l_estb_acts_as_company = 'Y' AND establishment_id = g_establishment_id)
2902 OR (l_estb_acts_as_company = 'N' AND establishment_id is null))
2903 AND effective_from <= g_end_date
2904 AND nvl(effective_to,sysdate) >= g_start_date ;
2905
2906 END LOOP;
2907
2908 SELECT COUNT(*) INTO l_count
2909 FROM jl_br_sped_extr_data_t
2910 WHERE request_id =g_concurrent_request_id
2911 AND block = '0'
2912 AND field1 = '0150';
2913
2914 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): 0150 Records Inserted : '||l_count);
2915
2916 SELECT COUNT(*) INTO l_count
2917 FROM jl_br_sped_extr_data_t
2918 WHERE request_id =g_concurrent_request_id
2919 AND block = '0'
2920 AND field1 = '0180';
2921 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): 0180 Records Inserted : '||l_count);
2922
2923 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2924 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
2925 G_PKG_NAME||': ' ||l_api_name||'()-');
2926 END IF;
2927
2928 END IF; -- End for IF g_bookkeeping_type <> 'B'
2929
2930 EXCEPTION
2931 WHEN OTHERS THEN
2932
2933 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2934 IF g_debug_flag = 'Y' THEN
2935 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
2936 END IF;
2937 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2938 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2939 END IF;
2940 g_errbuf := 'ERROR While inserting 0150 and 0180 register '||SQLERRM;
2941 g_retcode := 2;
2942 return;
2943 END register_0150_0180;
2944
2945 PROCEDURE register_0990 AS
2946 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_0990';
2947 BEGIN
2948
2949 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2950 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
2951 G_PKG_NAME||': '||l_api_name||'()+');
2952 END IF;
2953 INSERT INTO jl_br_sped_extr_data_t
2954 (request_id,
2955 block,
2956 record_seq,
2957 field1,
2958 separator1,
2959 field2,
2960 separator2,
2961 created_by,
2962 creation_date,
2963 last_updated_by,
2964 last_update_date,
2965 last_update_login
2966 )
2967 VALUES( g_concurrent_request_id
2968 ,'0' -- Block
2969 ,jl_br_sped_extr_data_t_s.nextval -- Record_seq
2970 ,'0990' -- Register (field 1)
2971 ,'|'
2972 ,0--,null --count(*) -- Field 2
2973 ,'|'
2974 ,g_created_by
2975 ,g_creation_date
2976 ,g_last_updated_by
2977 ,g_last_update_date
2978 ,g_last_update_login );
2979
2980 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
2981
2982 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2983 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
2984 G_PKG_NAME||': ' ||l_api_name||'()-');
2985 END IF;
2986 EXCEPTION
2987 WHEN OTHERS THEN
2988
2989 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
2990 IF g_debug_flag = 'Y' THEN
2991 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
2992 END IF;
2993 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2994 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2995 END IF;
2996 g_errbuf := 'ERROR While inserting 0990 register '||SQLERRM;
2997 g_retcode := 2;
2998 return;
2999 END register_0990;
3000
3001 PROCEDURE register_I001 AS
3002 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I001';
3003 BEGIN
3004
3005 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3006 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
3007 G_PKG_NAME||': '||l_api_name||'()+');
3008 END IF;
3009
3010 INSERT INTO jl_br_sped_extr_data_t
3011 (request_id,
3012 block,
3013 record_seq,
3014 field1,
3015 separator1,
3016 field2,
3017 separator2,
3018 created_by,
3019 creation_date,
3020 last_updated_by,
3021 last_update_date,
3022 last_update_login)
3023 VALUES( g_concurrent_request_id,
3024 'I', --block
3025 jl_br_sped_extr_data_t_s.nextval, --Record_seq
3026 'I001', --Register (field1)
3027 '|',
3028 0,--null,--decode(count(*),0,1,0), --field2
3029 '|'
3030 ,g_created_by
3031 ,g_creation_date
3032 ,g_last_updated_by
3033 ,g_last_update_date
3034 ,g_last_update_login );
3035
3036 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
3037
3038 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3039 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
3040 G_PKG_NAME||': ' ||l_api_name||'()-');
3041 END IF;
3042 EXCEPTION
3043 WHEN OTHERS THEN
3044 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3045 IF g_debug_flag = 'Y' THEN
3046 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
3047 END IF;
3048 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3049 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3050 END IF;
3051 g_errbuf := 'ERROR While inserting I0001 register '||SQLERRM;
3052 g_retcode := 2;
3053 return;
3054
3055 END register_I001;
3056
3057 PROCEDURE register_I010 AS
3058 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I010';
3059 BEGIN
3060
3061 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3062 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
3063 G_PKG_NAME||': '||l_api_name||'()+');
3064 END IF;
3065 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'G_BOOKKEEPING_TYPE: ' ||g_bookkeeping_type);
3066
3067 INSERT INTO jl_br_sped_extr_data_t
3068 (request_id,
3069 block,
3070 record_seq,
3071 field1,
3072 separator1,
3073 field2,
3074 separator2,
3075 field3,
3076 separator3,
3077 created_by,
3078 creation_date,
3079 last_updated_by,
3080 last_update_date,
3081 last_update_login)
3082 VALUES
3083 ( g_concurrent_request_id
3084 ,'I' -- Block
3085 ,jl_br_sped_extr_data_t_s.nextval -- Record_seq
3086 ,'I010' -- Register (field 1)
3087 ,'|'
3088 ,substr(g_bookkeeping_type,1,1) -- field 2
3089 ,'|'
3090 ,'1.00' --field3
3091 ,'|'
3092 ,g_created_by
3093 ,g_creation_date
3094 ,g_last_updated_by
3095 ,g_last_update_date
3096 ,g_last_update_login
3097 );
3098 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
3099
3100 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3101 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
3102 G_PKG_NAME||': ' ||l_api_name||'()-');
3103 END IF;
3104 EXCEPTION
3105 WHEN OTHERS THEN
3106
3107 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3108 IF g_debug_flag = 'Y' THEN
3109 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
3110 END IF;
3111 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3112 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3113 END IF;
3114 g_errbuf := 'ERROR While inserting I010 register '||SQLERRM;
3115 g_retcode := 2;
3116 return;
3117 END register_I010;
3118
3119 /* This register contains Book information. This procedure won't be called for book keeping type 'G'*/
3120 PROCEDURE register_I012 AS
3121 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I012';
3122
3123 BEGIN
3124
3125 IF g_bookkeeping_type <> 'G' THEN
3126
3127 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3128 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
3129 G_PKG_NAME||': '||l_api_name||'()+');
3130 END IF;
3131
3132 INSERT INTO jl_br_sped_extr_data_t
3133 (request_id,
3134 block,
3135 record_seq,
3136 field1,
3137 separator1,
3138 field2,
3139 separator2,
3140 field3,
3141 separator3,
3142 field4,
3143 separator4,
3144 field5,
3145 separator5,
3146 created_by,
3147 creation_date,
3148 last_updated_by,
3149 last_update_date,
3150 last_update_login)
3151 SELECT
3152 g_concurrent_request_id
3153 ,'I' -- Block
3154 ,jl_br_sped_extr_data_t_s.nextval -- Record_seq
3155 ,'I012' -- Register (field 1)
3156 ,'|'
3157 ,book_number -- field 2
3158 ,'|'
3159 ,book_name --field3
3160 ,'|'
3161 ,0 --field4
3162 ,'|'
3163 ,DECODE(g_bookkeeping_type,'R',g_hash_code,'B',g_hash_code,NULL)
3164 ,'|'
3165 ,g_created_by
3166 ,g_creation_date
3167 ,g_last_updated_by
3168 ,g_last_update_date
3169 ,g_last_update_login
3170 FROM jl_br_cinfos_books
3171 WHERE legal_entity_id = g_legal_entity_id
3172 AND ((l_estb_acts_as_company ='N' AND establishment_id is null)
3173 OR (l_estb_acts_as_company = 'Y' AND establishment_id=g_establishment_id)) --establishment acts as company
3174 AND bookkeeping_type = DECODE(g_bookkeeping_type,'R','A','B','A'
3175 ,'A/R','R','A/B','B')
3176 AND ((bookkeeping_type = 'A' AND auxiliary_book_flag = 'Y')
3177 OR bookkeeping_type <> 'A');
3178
3179 /* If we are running the report for book keeping type is 'R' or 'B' then we will
3180 display the auxiliary books for book keeping type 'A'.
3181 If we run with book keeping type 'A/R' then display book of 'R'
3182 If we run with book keeping type 'A/B' then display book of 'B'*/
3183
3184 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
3185
3186 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3187 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
3188 G_PKG_NAME||': ' ||l_api_name||'()-');
3189 END IF;
3190 END IF; -- End for IF g_bookkeeping_type <> 'G'
3191 EXCEPTION
3192 WHEN OTHERS THEN
3193
3194 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3195 IF g_debug_flag = 'Y' THEN
3196 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
3197 END IF;
3198 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3199 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3200 END IF;
3201 g_errbuf := 'ERROR While inserting I012 register '||SQLERRM;
3202 g_retcode := 2;
3203 return;
3204 END register_I012;
3205
3206 PROCEDURE register_I015 AS
3207 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I015';
3208 l_query VARCHAR2(6000);
3209
3210 BEGIN
3211
3212 IF g_bookkeeping_type = 'G' THEN
3213 return;
3214 END IF;
3215
3216 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3217 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
3218 G_PKG_NAME||': '||l_api_name||'()+');
3219 END IF;
3220
3221 l_query := 'INSERT INTO jl_br_sped_extr_data_t
3222 (request_id,
3223 block,
3224 record_seq,
3225 field1,
3226 separator1,
3227 field2,
3228 separator2,
3229 created_by,
3230 creation_date,
3231 last_updated_by,
3232 last_update_date,
3233 last_update_login
3234 )
3235 SELECT '||g_concurrent_request_id|| '
3236 ,''I'' -- Block
3237 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
3238 ,''I015'' -- Register (field 1)
3239 ,''|''
3240 ,natural_acct
3241 ,''|''
3242 ,'||g_created_by||'
3243 ,'''||g_creation_date||'''
3244 ,'||g_last_updated_by||'
3245 ,'''||g_last_update_date||'''
3246 ,'||g_last_update_login||'
3247 FROM (SELECT DISTINCT glcc.'||g_account_segment||' natural_acct
3248 FROM gl_je_headers jh
3249 ,gl_je_lines jl
3250 ,gl_import_references glimp
3251 ,xla_ae_lines xll
3252 ,xla_ae_headers xlh
3253 ,xla_distribution_links xld
3254 ,gl_code_combinations glcc
3255 WHERE jh.ledger_id = '||g_ledger_id||'
3256 AND jh.je_source in (''Payables'',''Receivables'')
3257 AND jh.je_header_id = jl.je_header_id
3258 AND glimp.je_header_id = jh.je_header_id
3259 AND xlh.ae_header_id = xll.ae_header_id
3260 AND xlh.EVENT_ID = xld.EVENT_ID
3261 AND xlh.application_id = xll.application_id
3262 AND xll.ae_header_id = xld.ae_header_id
3263 AND xll.ae_line_num = xld.ae_line_num
3264 AND xll.application_id = xld.application_id
3265 AND jl.je_line_num = glimp.je_line_num
3266 AND glimp.gl_sl_link_id = xll.gl_sl_link_id
3267 AND glimp.gl_sl_link_table = xll.gl_sl_link_table
3268 AND jl.code_combination_id = glcc.code_combination_id
3269 AND jh.status = ''P''
3270 AND jl.status = ''P''
3271 AND jh.default_effective_date between '''||g_start_date||''' and '''|| g_end_date||'''
3272 AND ('''||l_exclusive_mode||'''=''Y''
3273 OR ('''||l_exclusive_mode||'''=''N'' AND glcc.'||g_bsv_segment||' in (select jg_info_v1 from jg_zz_vat_trx_gt)))
3274 GROUP BY glimp.je_header_id,glimp.je_line_num,jl.code_combination_id,glcc.'||g_account_segment||'
3275 HAVING count(*) >1)';
3276
3277
3278 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'query:'||l_query);
3279
3280 EXECUTE IMMEDIATE l_query;
3281
3282 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
3283
3284 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3285 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
3286 G_PKG_NAME||': ' ||l_api_name||'()-');
3287 END IF;
3288
3289
3290 EXCEPTION
3291 WHEN OTHERS THEN
3292 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3293 IF g_debug_flag = 'Y' THEN
3294 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
3295 END IF;
3296 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3297 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3298 END IF;
3299 g_errbuf := 'ERROR While inserting I015 register '||SQLERRM;
3300 g_retcode := 2;
3301 return;
3302 END register_I015;
3303
3304 PROCEDURE register_I030 AS
3305 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I030';
3306 l_book_number jl_br_cinfos_books.book_number%TYPE;
3307 l_book_name jl_br_cinfos_books.book_name%TYPE;
3308 l_nire NUMBER(11);
3309 l_cnpj xle_registrations.registration_number%TYPE;
3310 l_registration_id xle_registrations.registration_id%TYPE;
3311 l_effective_from DATE;
3312 l_conversion_date DATE;
3313 l_city hr_locations.town_or_city%TYPE;
3314 l_count NUMBER(4) :=0;
3315
3316 BEGIN
3317
3318 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3319 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
3320 G_PKG_NAME||': ' ||l_api_name||'()+');
3321 END IF;
3322
3323 IF l_estb_acts_as_company = 'N' THEN --LE acts as company.
3324
3325 BEGIN
3326 --retreiving book info
3327 SELECT le.effective_from,bk.book_number,bk.book_name
3328 INTO l_effective_from,l_book_number,l_book_name
3329 FROM xle_entity_profiles le,
3330 jl_br_cinfos_books bk
3331 WHERE le.legal_entity_id = g_legal_entity_id
3332 AND bk.legal_entity_id = le.legal_entity_id
3333 AND bk.establishment_id IS NULL -- need to retrive the book info of LE.
3334 AND bookkeeping_type = substrb(g_bookkeeping_type,1,1)
3335 AND bk.auxiliary_book_flag ='N';
3336
3337 EXCEPTION
3338 WHEN OTHERS THEN
3339 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving the Book Information');
3340 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3341 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3342 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving the Book Information');
3343 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3344 END IF;
3345 END;
3346
3347 --Begin for retrieving NIRE.
3348 /* If any registration number exists with place of registration as 'NIRE' then, we need to retrieve it as 'NIRE'.
3349 otherwise, we need to retrieve the registration number with legislative category as 'COMMERCIAL_LAW'. */
3350
3351 SELECT count(*)
3352 INTO l_count
3353 FROM xle_registrations
3354 WHERE source_id = g_legal_entity_id
3355 AND source_table = 'XLE_ENTITY_PROFILES'
3356 AND UPPER(place_of_registration) = 'NIRE'
3357 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
3358 AND (effective_to IS NULL OR effective_to >= g_end_date);
3359
3360 IF l_count > 0 THEN
3361 BEGIN
3362 SELECT registration_number
3363 INTO l_nire
3364 FROM xle_registrations
3365 WHERE source_id = g_legal_entity_id
3366 AND source_table = 'XLE_ENTITY_PROFILES'
3367 AND UPPER(place_of_registration) = 'NIRE'
3368 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
3369 AND (effective_to IS NULL OR effective_to >= g_end_date)
3370 AND rownum=1;
3371
3372 EXCEPTION
3373 WHEN OTHERS THEN
3374 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving nire using place of registration');
3375 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3376 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3377 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving nire using place of registration');
3378 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3379 END IF;
3380 END;
3381 ELSE
3382
3383 BEGIN
3384 SELECT registration_number
3385 INTO l_nire
3386 FROM xle_registrations reg,
3387 xle_jurisdictions_vl jur
3388 WHERE source_id = g_legal_entity_id
3389 AND source_table = 'XLE_ENTITY_PROFILES'
3390 AND reg.jurisdiction_id = jur.jurisdiction_id
3391 AND jur.legislative_cat_code = 'COMMERCIAL_LAW'
3392 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
3393 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
3394 AND rownum=1;
3395
3396 EXCEPTION
3397 WHEN OTHERS THEN
3398 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving nire using Commercial Law');
3399 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3400 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3401 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving nire using Commercial Law');
3402 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3403 END IF;
3404 END;
3405
3406 END IF;
3407 --End of retrieving NIRE
3408
3409 BEGIN
3410 --retriving city
3411 SELECT loc.town_or_city
3412 INTO l_city
3413 FROM xle_registrations reg,hr_locations_all loc
3414 WHERE reg.source_id = g_legal_entity_id
3415 AND reg.source_table = 'XLE_ENTITY_PROFILES'
3416 AND reg.identifying_flag = 'Y'
3417 AND reg.location_id =loc.location_id
3418 AND rownum = 1 ;
3419
3420 EXCEPTION
3421 WHEN OTHERS THEN
3422 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving CNPJ');
3423 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3424 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3425 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3426 END IF;
3427 END;
3428
3429 BEGIN -- retrieving cnpj
3430
3431 SELECT translate(reg.registration_number,'0123456789/-.', '0123456789'),reg.registration_id
3432 INTO l_cnpj,l_registration_id
3433 FROM xle_registrations reg,
3434 xle_jurisdictions_vl jur
3435 WHERE reg.source_id = g_legal_entity_id
3436 AND reg.source_table = 'XLE_ENTITY_PROFILES'
3437 AND reg.jurisdiction_id = jur.jurisdiction_id
3438 AND jur.registration_code_le = 'CNPJ'
3439 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
3440 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
3441 AND rownum=1;
3442
3443 SELECT decode(length(l_cnpj),15,substr(l_cnpj,2,14),l_cnpj) into l_cnpj from dual;
3444
3445 EXCEPTION
3446 WHEN OTHERS THEN
3447 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving cnpj');
3448 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3449 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3450 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3451 END IF;
3452 END;
3453
3454 l_count :=0;
3455
3456 SELECT count(*)
3457 INTO l_count
3458 FROM xle_histories his
3459 WHERE source_table = 'XLE_REGISTRATIONS'
3460 AND source_id = l_registration_id
3461 AND source_column_name = 'EFFECTIVE_FROM';
3462
3463 IF l_count >= 1 THEN -- registration Effective From field was changed. so entry exists in history table.
3464
3465 BEGIN
3466 SELECT substr(source_column_value,1,11)
3467 INTO l_conversion_date
3468 FROM xle_histories his
3469 WHERE source_table = 'XLE_REGISTRATIONS'
3470 AND source_id = l_registration_id
3471 AND source_column_name = 'EFFECTIVE_FROM'
3472 AND effective_to IS NULL;
3473
3474 EXCEPTION
3475 WHEN OTHERS THEN
3476 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving conversion Date');
3477 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3478 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3479 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving conversion Date');
3480 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3481 END IF;
3482 END;
3483
3484 END IF; --End for IF l_count >=1
3485
3486 ELSE -- Establishment acts as company.
3487
3488 BEGIN
3489 --retreiving book info
3490 SELECT etb.effective_from,bk.book_number,bk.book_name
3491 INTO l_effective_from,l_book_number,l_book_name
3492 FROM xle_etb_profiles etb,
3493 jl_br_cinfos_books bk
3494 WHERE etb.legal_entity_id = g_legal_entity_id
3495 AND etb.establishment_id = g_establishment_id
3496 AND bk.legal_entity_id = etb.legal_entity_id
3497 AND bk.establishment_id = etb.establishment_id -- need to retrive the book info of ETB.
3498 AND bookkeeping_type = substrb(g_bookkeeping_type,1,1)
3499 AND bk.auxiliary_book_flag ='N';
3500
3501 EXCEPTION
3502 WHEN OTHERS THEN
3503 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving the Book Information');
3504 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3505 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3506 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3507 END IF;
3508 END;
3509
3510 --Begin for retrieving NIRE.
3511 /* If any registration number exists with place of registration as 'NIRE' then, we need to retrieve it as 'NIRE'.
3512 otherwise, we need to retrieve the registration number with legislative category as 'COMMERCIAL_LAW'. */
3513
3514 SELECT count(*)
3515 INTO l_count
3516 FROM xle_registrations
3517 WHERE source_id = g_establishment_id
3518 AND source_table = 'XLE_ETB_PROFILES'
3519 AND UPPER(place_of_registration) = 'NIRE'
3520 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
3521 AND (effective_to IS NULL OR effective_to >= g_end_date) ;
3522
3523 IF l_count > 0 THEN
3524 BEGIN
3525 SELECT registration_number
3526 INTO l_nire
3527 FROM xle_registrations
3528 WHERE source_id = g_establishment_id
3529 AND source_table = 'XLE_ETB_PROFILES'
3530 AND UPPER(place_of_registration) = 'NIRE'
3531 AND nvl(effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
3532 AND (effective_to IS NULL OR effective_to >= g_end_date)
3533 AND rownum = 1;
3534
3535 EXCEPTION
3536 WHEN OTHERS THEN
3537 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving nire using place of registration');
3538 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3539 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3540 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3541 END IF;
3542 END;
3543 ELSE
3544
3545 BEGIN
3546 SELECT registration_number
3547 INTO l_nire
3548 FROM xle_registrations reg,
3549 xle_jurisdictions_vl jur
3550 WHERE source_id = g_establishment_id
3551 AND source_table = 'XLE_ETB_PROFILES'
3552 AND reg.jurisdiction_id = jur.jurisdiction_id
3553 AND jur.legislative_cat_code = 'COMMERCIAL_LAW'
3554 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
3555 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
3556 AND rownum = 1;
3557
3558 EXCEPTION
3559 WHEN OTHERS THEN
3560 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving nire using Commercial Law');
3561 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3562 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3563 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3564 END IF;
3565 END;
3566
3567 END IF;
3568 --End of retrieving NIRE
3569
3570 BEGIN
3571 --retriving city
3572 SELECT loc.town_or_city
3573 INTO l_city
3574 FROM xle_registrations reg,hr_locations_all loc
3575 WHERE reg.source_id = g_establishment_id
3576 AND reg.source_table = 'XLE_ETB_PROFILES'
3577 AND reg.identifying_flag = 'Y'
3578 AND reg.location_id =loc.location_id
3579 AND rownum = 1 ;
3580
3581 EXCEPTION
3582 WHEN OTHERS THEN
3583 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving CNPJ');
3584 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3585 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3586 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3587 END IF;
3588 END;
3589 BEGIN -- retrieving cnpj
3590
3591 SELECT translate(reg.registration_number,'0123456789/-.', '0123456789'),reg.registration_id
3592 INTO l_cnpj,l_registration_id
3593 FROM xle_registrations reg,
3594 xle_jurisdictions_vl jur
3595 WHERE reg.source_id = g_establishment_id
3596 AND reg.source_table = 'XLE_ETB_PROFILES'
3597 AND reg.jurisdiction_id = jur.jurisdiction_id
3598 AND jur.registration_code_le = 'CNPJ'
3599 AND nvl(reg.effective_from,to_date('01-01-1950','DD-MM-YYYY')) <= g_start_date
3600 AND (reg.effective_to IS NULL OR reg.effective_to >= g_end_date)
3601 AND rownum=1;
3602
3603 SELECT decode(length(l_cnpj),15,substr(l_cnpj,2,14),l_cnpj) into l_cnpj from dual;
3604
3605 EXCEPTION
3606 WHEN OTHERS THEN
3607 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving cnpj');
3608 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3609 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3610 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3611 END IF;
3612 END;
3613
3614 l_count :=0;
3615
3616 SELECT count(*)
3617 INTO l_count
3618 FROM xle_histories his
3619 WHERE source_table = 'XLE_REGISTRATIONS'
3620 AND source_id = l_registration_id
3621 AND source_column_name = 'EFFECTIVE_FROM';
3622
3623 IF l_count >= 1 THEN -- registration Effective From field was changed. so entry exists in history table.
3624
3625 BEGIN
3626 SELECT substr(source_column_value,1,11)
3627 INTO l_conversion_date
3628 FROM xle_histories his
3629 WHERE source_table = 'XLE_REGISTRATIONS'
3630 AND source_id = l_registration_id
3631 AND source_column_name = 'EFFECTIVE_FROM'
3632 AND effective_to IS NULL;
3633
3634 EXCEPTION
3635 WHEN OTHERS THEN
3636 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Retrieving conversion Date');
3637 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3638 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3639 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While Retrieving conversion Date');
3640 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3641 END IF;
3642 END;
3643
3644 END IF; -- End for l_count >=1
3645
3646 END IF; -- End for l_estb_acts_as_company='N'
3647
3648 -- inserting data into data extract table
3649 BEGIN
3650
3651 INSERT INTO jl_br_sped_extr_data_t
3652 (request_id,
3653 block,
3654 record_seq,
3655 field1,
3656 separator1,
3657 field2,
3658 separator2,
3659 field3,
3660 separator3,
3661 field4,
3662 separator4,
3663 field5,
3664 separator5,
3665 field6,
3666 separator6,
3667 field7,
3668 separator7,
3669 field8,
3670 separator8,
3671 field9,
3672 separator9,
3673 field10,
3674 separator10,
3675 field11,
3676 separator11,
3677 created_by,
3678 creation_date,
3679 last_updated_by,
3680 last_update_date,
3681 last_update_login)
3682 VALUES(g_concurrent_request_id
3683 ,'I' -- Block
3684 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
3685 ,'I030' -- Register (field 1)
3686 ,'|'
3687 ,'TERMO DE ABERTURA' -- Fixed Text (field 2)
3688 ,'|'
3689 ,l_book_number --(field 3)
3690 ,'|'
3691 ,l_book_name --(field 4)
3692 ,'|'
3693 ,null --field5
3694 ,'|'
3695 ,g_company_name --field6
3696 ,'|'
3697 ,SUBSTRB(l_nire,1,11) --field7
3698 ,'|'
3699 ,l_cnpj -- field8
3700 ,'|'
3701 ,to_char(l_effective_from,'DDMMYYYY') -- field9
3702 ,'|'
3703 ,to_char(l_conversion_date,'DDMMYYYY') -- field10
3704 ,'|'
3705 ,l_city -- field11
3706 ,'|'
3707 ,g_created_by
3708 ,g_creation_date
3709 ,g_last_updated_by
3710 ,g_last_update_date
3711 ,g_last_update_login);
3712 EXCEPTION
3713 WHEN OTHERS THEN
3714 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error While Inserting Data into I030 register');
3715 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
3716 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3717 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3718 END IF;
3719 g_errbuf := 'ERROR While inserting 0000 register '||SQLERRM;
3720 g_retcode := 2;
3721 return;
3722 END;
3723 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3724 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
3725 G_PKG_NAME||': ' ||l_api_name||'()-');
3726 END IF;
3727
3728 END register_I030;
3729
3730
3731 PROCEDURE register_I050 AS
3732 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I050';
3733
3734 TYPE tab_fv_last_update_date IS TABLE OF
3735 fnd_flex_values.last_update_date%TYPE INDEX BY BINARY_INTEGER;
3736
3737 TYPE tab_fv_account_type IS TABLE OF
3738 VARCHAR2(10) INDEX BY BINARY_INTEGER;
3739
3740 TYPE tab_fv_summary_flag IS TABLE OF
3741 VARCHAR2(10) INDEX BY BINARY_INTEGER;
3742
3743 TYPE tab_fv_value_level IS TABLE OF
3744 NUMBER INDEX BY BINARY_INTEGER;
3745
3746 TYPE tab_fv_flex_value IS TABLE OF
3747 fnd_flex_values.flex_value%TYPE INDEX BY BINARY_INTEGER;
3748
3749 TYPE tab_fv_flex_value_id IS TABLE OF
3750 fnd_flex_values.flex_value_id%TYPE INDEX BY BINARY_INTEGER;
3751
3752 TYPE tab_fv_description IS TABLE OF
3753 VARCHAR2(250) INDEX BY BINARY_INTEGER;
3754
3755 fv_last_update_date tab_fv_last_update_date;
3756 fv_id tab_fv_flex_value_id;
3757 fv_summary_flag tab_fv_summary_flag;
3758 fv_parent_value_level tab_fv_value_level;
3759 fv_parent_value tab_fv_flex_value;
3760 fv_child_value tab_fv_flex_value;
3761 fv_description tab_fv_description;
3762
3763 l_query varchar2(6000);
3764
3765 l_childs_exist NUMBER := 0;
3766 l_prev_level1_parent VARCHAR2(10) := '-1';
3767
3768 l_fv_last_update_date fnd_flex_values.last_update_date%TYPE;
3769 l_fv_id fnd_flex_values.flex_value_id%TYPE;
3770 l_fv_summary_flag VARCHAR2(10);
3771 l_fv_description VARCHAR2(250);
3772
3773 BEGIN
3774
3775 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3776 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
3777 G_PKG_NAME||': '||l_api_name||'()+');
3778 END IF;
3779
3780 FND_FILE.put_line(fnd_file.log,'Start Of I050');
3781
3782 l_query := 'SELECT V.last_update_date
3783 ,V.flex_value_id
3784 ,V.summary_flag
3785 ,level parent_level
3786 ,V.parent_flex_value parent
3787 ,V.child_flex_value child
3788 ,V.description
3789 FROM ( SELECT b.last_update_date
3790 ,b.flex_value_id
3791 ,b.summary_flag
3792 ,a.parent_flex_value
3793 ,b.flex_value child_flex_value
3794 ,b.description
3795 FROM fnd_flex_value_norm_hierarchy a, -- Hierarquia compilada
3796 FND_FLEX_VALUES_VL b, -- Valores do segmento
3797 fnd_id_flex_segments c -- Segmentos da estrutura
3798 WHERE c.application_id = 101
3799 AND c.id_flex_code = ''GL#''
3800 AND c.id_flex_num = '||g_chart_of_accounts_id||
3801 ' AND c.application_column_name = '''||g_account_segment||'''
3802 AND b.flex_value_set_id = '||g_account_value_set_id||
3803 ' AND b.flex_value_set_id = c.flex_value_set_id
3804 AND b.flex_value >= a.child_flex_value_low
3805 AND b.flex_value <= a.child_flex_value_high
3806 AND a.flex_value_set_id = b.flex_value_set_id
3807 AND nvl(DECODE(b.flex_value, ''T'', ''O'', substrb( fnd_global.newline
3808 ||b.compiled_value_attributes
3809 ||fnd_global.newline, instrb( fnd_global.newline
3810 ||b.compiled_value_attributes
3811 ||fnd_global.newline, fnd_global.newline,1,'|| g_exclusion_qualifier_position||')+1, 1 )),''N'') <> ''Y'') V
3812 WHERE V.summary_flag= ''Y''
3813 OR exists (SELECT 1
3814 FROM gl_code_combinations glcc
3815 WHERE glcc.chart_of_accounts_id = '||g_chart_of_accounts_id||
3816 ' AND glcc.summary_flag = ''N''
3817 AND ('''||l_exclusive_mode||'''=''Y'' OR
3818 ('''||l_exclusive_mode||'''=''N'' AND glcc.'||g_bsv_segment||' in (select jg_info_v1 from jg_zz_vat_trx_gt)))
3819 AND glcc.'||g_account_segment||' =V.child_flex_value
3820 )
3821 CONNECT BY V.parent_flex_value = PRIOR V.child_flex_value
3822 START WITH V.parent_flex_value IN
3823 ( SELECT b.flex_value
3824 FROM FND_FLEX_VALUES_VL b
3825 WHERE b.flex_value_set_id = '||g_account_value_set_id||
3826 ' AND nvl(DECODE(b.flex_value, ''T'', ''O'', substrb( fnd_global.newline
3827 ||b.compiled_value_attributes
3828 ||fnd_global.newline, instrb( fnd_global.newline
3829 ||b.compiled_value_attributes
3830 ||fnd_global.newline, fnd_global.newline,1,'|| g_exclusion_qualifier_position||')+1, 1 )),''N'') <> ''Y''
3831 AND NOT EXISTS (SELECT 1 FROM fnd_flex_value_norm_hierarchy a
3832 WHERE a.flex_value_set_id = '||g_account_value_set_id||
3833 ' AND b.flex_value >= a.child_flex_value_low
3834 AND b.flex_value <= a.child_flex_value_high))';
3835
3836 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3837 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'I050-Query',l_query);
3838 END IF;
3839
3840
3841 --FND_FILE.put_line(fnd_file.log,l_query);
3842
3843 EXECUTE IMMEDIATE l_query
3844 BULK COLLECT INTO fv_last_update_date
3845 ,fv_id
3846 ,fv_summary_flag
3847 ,fv_parent_value_level
3848 ,fv_parent_value
3849 ,fv_child_value
3850 ,fv_description;
3851
3852 -- Deleting parent accounts which has no childs.
3853 BEGIN
3854 IF fv_id.COUNT > 0 THEN
3855 FOR i in 1..fv_id.LAST
3856 LOOP
3857
3858 IF fv_summary_flag (i) = 'Y' THEN
3859
3860 l_childs_exist := '-1';
3861 FOR j in 1..fv_id.LAST
3862 LOOP
3863 IF fv_parent_value.EXISTS(j) THEN
3864 IF fv_parent_value(j) = fv_child_value(i) THEN
3865 l_childs_exist := '1';
3866 EXIT;
3867 END If;
3868 END IF;
3869 END LOOP;
3870
3871 IF l_childs_exist= '-1' and fv_id.EXISTS(i) THEN
3872
3873 fv_last_update_date.DELETE(i);
3874 fv_id.DELETE(i);
3875 fv_summary_flag.DELETE(i);
3876 fv_parent_value_level.DELETE(i);
3877 fv_parent_value.DELETE(i);
3878 fv_child_value.DELETE(i);
3879 fv_description.DELETE(i);
3880 END IF;
3881
3882 END If; --IF fv_summary_flag (i) = 'Y' THEN
3883
3884 END LOOP;
3885 END IF; -- End for If fv_id.COUNT >0.
3886 EXCEPTION
3887 WHEN OTHERS THEN
3888 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3889 IF g_debug_flag = 'Y' THEN
3890 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
3891 END IF;
3892 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3893 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3894 END IF;
3895 g_errbuf := 'ERROR While deleting the parent accounts in I050 register '||SQLERRM;
3896 g_retcode := 2;
3897 return;
3898 END;
3899 IF fv_id.COUNT > 0 THEN
3900 FOR i IN 1..fv_id.LAST
3901 LOOP
3902
3903 IF fv_id.EXISTS(i) THEN
3904
3905 IF fv_parent_value_level(i) = 1 and l_prev_level1_parent <> fv_parent_value(i) THEN
3906
3907 l_prev_level1_parent := fv_parent_value(i);
3908
3909 BEGIN
3910
3911 SELECT last_update_date
3912 ,flex_value_id
3913 ,summary_flag
3914 ,description
3915 INTO l_fv_last_update_date
3916 ,l_fv_id
3917 ,l_fv_summary_flag
3918 ,l_fv_description
3919 FROM FND_FLEX_VALUES_VL
3920 WHERE flex_value = fv_parent_value(i)
3921 AND flex_value_set_id = g_account_value_set_id; -- GL Account segment value set id
3922 EXCEPTION
3923 WHEN OTHERS THEN
3924 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
3925 IF g_debug_flag = 'Y' THEN
3926 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
3927 END IF;
3928 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
3929 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR in I050, While getting level 1 parent information Flex Value := '||fv_parent_value(i)||' '||SQLERRM);
3930 END IF;
3931 g_errbuf := 'ERROR in I050, While getting level 1 parent information Flex Value := '||fv_parent_value(i)||' '||SQLERRM;
3932 g_retcode := 2;
3933 return;
3934 END;
3935
3936
3937 INSERT INTO jl_br_sped_extr_data_t
3938 (request_id,
3939 block,
3940 record_seq,
3941 field1,
3942 separator1,
3943 field2,
3944 separator2,
3945 field3,
3946 separator3,
3947 field4,
3948 separator4,
3949 field5,
3950 separator5,
3951 field6,
3952 separator6,
3953 --field7,
3954 separator7,
3955 field8,
3956 separator8,
3957 created_by,
3958 creation_date,
3959 last_updated_by,
3960 last_update_date,
3961 last_update_login)
3962 VALUES( g_concurrent_request_id
3963 ,'I' -- Block
3964 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
3965 ,'I050' -- Register (field 1)
3966 ,'|'
3967 , to_char(l_fv_last_update_date,'DDMMYYYY') --field 2
3968 ,'|'
3969 , JL_BR_SPED_DATA_EXTRACT_PKG.get_account_type(l_fv_id) --field 3
3970 ,'|'
3971 , decode(l_fv_summary_flag,'N','A','S') --field 4 summary flag has 'Y','N' values.
3972 ,'|'
3973 ,fv_parent_value_level(i) --field 5
3974 ,'|'
3975 ,fv_parent_value(i) --field 6
3976 ,'|'
3977 -- ,fv_parent_value(i) --field 7
3978 ,'|'
3979 ,l_fv_description --field 8
3980 ,'|'
3981 ,g_created_by
3982 ,g_creation_date
3983 ,g_last_updated_by
3984 ,g_last_update_date
3985 ,g_last_update_login
3986 );
3987
3988 END IF; -- IF fv_parent_value_level(i) = 1 and l_prev_level1_parent <> fv_parent_value(i) THEN
3989
3990
3991 INSERT INTO jl_br_sped_extr_data_t
3992 (request_id,
3993 block,
3994 record_seq,
3995 field1,
3996 separator1,
3997 field2,
3998 separator2,
3999 field3,
4000 separator3,
4001 field4,
4002 separator4,
4003 field5,
4004 separator5,
4005 field6,
4006 separator6,
4007 field7,
4008 separator7,
4009 field8,
4010 separator8,
4011 created_by,
4012 creation_date,
4013 last_updated_by,
4014 last_update_date,
4015 last_update_login)
4016 VALUES( g_concurrent_request_id
4017 ,'I' -- Block
4018 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
4019 ,'I050' -- Register (field 1)
4020 ,'|'
4021 , to_char(fv_last_update_date(i),'DDMMYYYY') --field 2
4022 ,'|'
4023 , JL_BR_SPED_DATA_EXTRACT_PKG.get_account_type(fv_id(i)) --field 3
4024 ,'|'
4025 , decode(fv_summary_flag(i),'N','A','S') --field 4 summary flag has 'Y','N' values.
4026 ,'|'
4027 ,fv_parent_value_level(i)+1 --field 5
4028 ,'|'
4029 ,fv_child_value(i) --field 6
4030 ,'|'
4031 ,fv_parent_value(i) --field 7
4032 ,'|'
4033 ,fv_description(i) --field 8
4034 ,'|'
4035 ,g_created_by
4036 ,g_creation_date
4037 ,g_last_updated_by
4038 ,g_last_update_date
4039 ,g_last_update_login
4040 );
4041
4042 IF fv_summary_flag(i) = 'N' THEN
4043 --FND_FILE.put_line(fnd_file.log,'Before I051'||fv_child_value(i));
4044 register_I051(fv_child_value(i));
4045
4046 IF g_bookkeeping_type ='G' OR g_bookkeeping_type = 'R' OR g_bookkeeping_type = 'B' THEN
4047 /* I052 is to display agglutination codes. As we get the agglutination codes
4048 for fsg, if the fsg request ids are null then there is no need to call I052 */
4049 IF g_balance_statement_request_id IS NOT NULL AND g_income_statement_request_id IS NOT NULL THEN
4050 register_I052(fv_child_value(i));
4051 END IF;
4052 END IF;
4053
4054 END IF;
4055
4056 END IF; --IF fv_id.EXISTS(i) THEN
4057
4058 END LOOP;
4059 END IF; -- IF fv_id.COUNT > 0 THEN
4060 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4061 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
4062 G_PKG_NAME||': ' ||l_api_name||'()-');
4063 END IF;
4064
4065 EXCEPTION
4066 WHEN OTHERS THEN
4067
4068 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4069 IF g_debug_flag = 'Y' THEN
4070 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4071 END IF;
4072 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4073 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4074 END IF;
4075 g_errbuf := 'ERROR While inserting I050 register '||SQLERRM;
4076 g_retcode := 2;
4077 return;
4078 END register_I050;
4079
4080 PROCEDURE register_I051(p_account_flex_value fnd_flex_values.flex_value%TYPE ) AS
4081 l_institution_resp_code VARCHAR2(250);
4082 l_referential_account gl_cons_flex_hierarchies.parent_flex_value%TYPE;
4083 l_cnt NUMBER;
4084 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I051';
4085 BEGIN
4086
4087 --fnd_file.put_line(fnd_file.log,'coa_id '||g_coa_mapping_id);
4088
4089 IF g_coa_mapping_id IS NULL THEN
4090 RETURN;
4091 END IF;
4092
4093 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4094 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
4095 G_PKG_NAME||': '||l_api_name||'()+');
4096 END IF;
4097
4098 -- fnd_file.put_line(fnd_file.log,'Felx value :'||p_account_flex_value||' G_coa_maping_id :'||g_coa_mapping_id);
4099
4100 BEGIN
4101
4102 SELECT count(distinct parent_flex_value) into l_cnt
4103 FROM gl_coa_mappings C
4104 ,gl_cons_segment_map cm
4105 ,gl_cons_flex_hierarchies ch
4106 WHERE c.coa_mapping_id = g_coa_mapping_id
4107 AND cm.coa_mapping_id = c.coa_mapping_id
4108 AND cm.segment_map_type = 'R' --Detail Rollup Ranges
4109 AND cm.segment_map_id = ch.segment_map_id
4110 AND p_account_flex_value BETWEEN ch.child_flex_value_low AND ch.child_flex_value_high;
4111
4112 EXCEPTION
4113 WHEN NO_DATA_FOUND THEN
4114 l_referential_account := NULL;
4115 WHEN OTHERS THEN
4116 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4117 IF g_debug_flag = 'Y' THEN
4118 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4119 END IF;
4120 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4121 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4122 END IF;
4123 g_errbuf := 'ERROR While finding Number of referential chart of accounts associated for an account in I051 register '||SQLERRM;
4124 g_retcode := 2;
4125 return;
4126 END;
4127
4128 IF l_cnt > 1 THEN
4129 FND_FILE.PUT_LINE(FND_FILE.LOG,'Consolidation is not proper. '||p_account_flex_value||' is associated with more than one referential chart of account');
4130 END IF;
4131
4132 BEGIN
4133 SELECT parent_flex_value into l_referential_account
4134 FROM (SELECT ch.parent_flex_value
4135 FROM gl_coa_mappings C
4136 ,gl_cons_segment_map cm
4137 ,gl_cons_flex_hierarchies ch
4138 WHERE c.coa_mapping_id = g_coa_mapping_id
4139 AND cm.coa_mapping_id = c.coa_mapping_id
4140 AND cm.segment_map_type = 'R' --Detail Rollup Ranges
4141 AND cm.segment_map_id = ch.segment_map_id
4142 AND p_account_flex_value BETWEEN ch.child_flex_value_low AND ch.child_flex_value_high
4143 ORDER BY ch.last_update_date DESC)
4144 WHERE ROWNUM = 1;
4145
4146 EXCEPTION
4147 WHEN NO_DATA_FOUND THEN
4148 l_referential_account := NULL;
4149 WHEN OTHERS THEN
4150 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4151 IF g_debug_flag = 'Y' THEN
4152 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4153 END IF;
4154 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4155 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4156 END IF;
4157 g_errbuf := 'ERROR While finding referential chart of accounts mapping in I051 register '||SQLERRM;
4158 g_retcode := 2;
4159 return;
4160 END;
4161
4162 --fnd_file.put_line(fnd_file.log,'l_ref_account :'||l_referential_account);
4163 BEGIN
4164
4165
4166 /* GETTING ENTITY_RESP_REFERENTIAL_COA IS NOT CONFIRMED. NEED TO RECHECK AGAIN */
4167
4168 IF UPPER(g_accounting_type) = 'CENTRALIZED' AND g_establishment_id IS NOT NULL THEN
4169
4170 SELECT etb_information5
4171 INTO l_institution_resp_code
4172 FROM xle_etb_profiles
4173 WHERE legal_entity_id = g_legal_entity_id
4174 AND establishment_id = g_establishment_id;
4175
4176 ELSE
4177
4178 SELECT le_information5
4179 INTO l_institution_resp_code
4180 FROM xle_entity_profiles
4181 WHERE legal_entity_id = g_legal_entity_id ;
4182
4183 END IF;
4184
4185 EXCEPTION
4186 WHEN NO_DATA_FOUND THEN
4187 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4188 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'No Data Found for Entity_RESP_REFERENTIAL_COA -'||SQLERRM);
4189 END IF;
4190 l_institution_resp_code := NULL; -- verify
4191 WHEN OTHERS THEN
4192 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4193 IF g_debug_flag = 'Y' THEN
4194 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4195 END IF;
4196 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4197 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4198 END IF;
4199 g_errbuf := 'ERROR While finding institution responsibility code in I051 register '||SQLERRM;
4200 g_retcode := 2;
4201 return;
4202 END;
4203
4204 IF l_referential_account IS NOT NULL THEN
4205
4206 INSERT INTO jl_br_sped_extr_data_t
4207 (request_id,
4208 block,
4209 record_seq,
4210 field1,
4211 separator1,
4212 field2,
4213 separator2,
4214 field3,
4215 separator3,
4216 field4,
4217 separator4,
4218 created_by,
4219 creation_date,
4220 last_updated_by,
4221 last_update_date,
4222 last_update_login)
4223 VALUES (g_concurrent_request_id
4224 ,'I' -- Block
4225 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
4226 ,'I051' -- Register (field 1)
4227 ,'|'
4228 , SUBSTR(l_institution_resp_code,1,2) --field 2
4229 ,'|'
4230 , NULL --field 3
4231 ,'|'
4232 , l_referential_account --field 4
4233 ,'|'
4234 ,g_created_by
4235 ,g_creation_date
4236 ,g_last_updated_by
4237 ,g_last_update_date
4238 ,g_last_update_login
4239 );
4240
4241 END IF; --END for IF l_referential_account IS NOT NULL THEN
4242
4243 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4244 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
4245 G_PKG_NAME||': ' ||l_api_name||'()-');
4246 END IF;
4247 EXCEPTION
4248 WHEN OTHERS THEN
4249
4250 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4251 IF g_debug_flag = 'Y' THEN
4252 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4253 END IF;
4254 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4255 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4256 END IF;
4257 g_errbuf := 'ERROR While inserting data into I051 register '||SQLERRM;
4258 g_retcode := 2;
4259 return;
4260 END register_I051;
4261
4262 PROCEDURE register_I052(p_account_flex_value fnd_flex_values.flex_value%TYPE) AS
4263 l_bal_agglutination_code rg_report_axes_v.description%TYPE;
4264 l_income_agglutination_code rg_report_axes_v.description%TYPE;
4265 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I052';
4266 sql_stmt VARCHAR2(5000);
4267 BEGIN
4268
4269 IF nvl(g_closing_period_flag,'N') <> 'Y' THEN
4270 RETURN;
4271 END IF;
4272
4273 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4274 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
4275 G_PKG_NAME||': '||l_api_name||'()+');
4276 END IF;
4277
4278
4279 /* Inserts all agglutination_codes defined for balance_statement_report_id*/
4280 sql_stmt := 'INSERT INTO jl_br_sped_extr_data_t
4281 (request_id,
4282 block,
4283 record_seq,
4284 field1,
4285 separator1,
4286 field2,
4287 separator2,
4288 field3,
4289 separator3,
4290 created_by,
4291 creation_date,
4292 last_updated_by,
4293 last_update_date,
4294 last_update_login
4295 )
4296 SELECT '||g_concurrent_request_id||'
4297 ,''I'' -- Block
4298 ,jl_br_sped_extr_data_t_s.nextval
4299 ,''I052'' -- Register (field 1)
4300 ,''|''
4301 , NULL --field 2
4302 ,''|''
4303 , row_seq_ident
4304 ,''|''
4305 ,'||g_created_by||'
4306 ,'''||g_creation_date||'''
4307 ,'||g_last_updated_by||'
4308 ,'''||g_last_update_date||'''
4309 ,'||g_last_update_login||'
4310 FROM
4311 (SELECT DECODE('''||g_agglutination_code_source||''',''FSG_LINE'',to_char(r3.sequence),r3.description) row_seq_ident
4312 FROM rg_reports r1
4313 ,rg_report_axis_sets r2
4314 ,rg_report_axes_v r3
4315 ,rg_report_axis_contents r4
4316 WHERE r1.report_id = '||g_balance_statement_report_id||'
4317 AND r1.row_set_id = r2.axis_set_id
4318 AND r2.axis_set_id = r3.axis_set_id
4319 AND r3.axis_set_id = r4.axis_set_id
4320 AND r3.sequence = r4.axis_seq
4321 AND :p_account_flex_value >='||g_account_segment||'_LOW
4322 AND :p_account_flex_value <='|| g_account_segment||'_HIGH)';
4323
4324 --FND_FILE.PUT_LINE(FND_FILE.LOG, sql_stmt);
4325
4326 EXECUTE IMMEDIATE sql_stmt using p_account_flex_value,p_account_flex_value;
4327
4328
4329 /* Inserts all agglutination_codes defined for income_statement_report_id*/
4330 sql_stmt := 'INSERT INTO jl_br_sped_extr_data_t
4331 (request_id,
4332 block,
4333 record_seq,
4334 field1,
4335 separator1,
4336 field2,
4337 separator2,
4338 field3,
4339 separator3,
4340 created_by,
4341 creation_date,
4342 last_updated_by,
4343 last_update_date,
4344 last_update_login
4345 )
4346 SELECT '||g_concurrent_request_id||'
4347 ,''I'' -- Block
4348 ,jl_br_sped_extr_data_t_s.nextval
4349 ,''I052'' -- Register (field 1)
4350 ,''|''
4351 , NULL --field 2
4352 ,''|''
4353 ,row_seq_ident
4354 ,''|''
4355 ,'||g_created_by||'
4356 ,'''||g_creation_date||'''
4357 ,'||g_last_updated_by||'
4358 ,'''||g_last_update_date||'''
4359 ,'||g_last_update_login||'
4360 FROM
4361 (SELECT DECODE('''||g_agglutination_code_source||''',''FSG_LINE'',to_char(r3.sequence),r3.description) row_seq_ident
4362 FROM rg_reports r1
4363 ,rg_report_axis_sets r2
4364 ,rg_report_axes_v r3
4365 ,rg_report_axis_contents r4
4366 WHERE r1.report_id = '||g_income_statement_report_id||'
4367 AND r1.row_set_id = r2.axis_set_id
4368 AND r2.axis_set_id = r3.axis_set_id
4369 AND r3.axis_set_id = r4.axis_set_id
4370 AND r3.sequence = r4.axis_seq
4371 AND :p_account_flex_value >='||g_account_segment||'_LOW
4372 AND :p_account_flex_value <='|| g_account_segment||'_HIGH)';
4373
4374 --FND_FILE.PUT_LINE(FND_FILE.LOG, sql_stmt);
4375
4376 EXECUTE IMMEDIATE sql_stmt using p_account_flex_value,p_account_flex_value;
4377
4378
4379 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4380 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
4381 G_PKG_NAME||': ' ||l_api_name||'()-');
4382 END IF;
4383
4384 EXCEPTION
4385 WHEN OTHERS THEN
4386
4387 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4388 IF g_debug_flag = 'Y' THEN
4389 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4390 END IF;
4391 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4392 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4393 END IF;
4394 g_errbuf := 'ERROR While inserting data into I052 register '||SQLERRM;
4395 g_retcode := 2;
4396 return;
4397
4398 END register_I052;
4399
4400 PROCEDURE register_I100 AS
4401 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I100';
4402 l_query VARCHAR2(6000);
4403 BEGIN
4404 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4405 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
4406 G_PKG_NAME||': '||l_api_name||'()+');
4407 END IF;
4408
4409 -- FND_FILE.PUT_LINE(FND_FILE.LOG,' in register I100');
4410
4411 IF l_cc_exists_flag = 0 THEN
4412
4413 RETURN;
4414
4415 END IF;
4416
4417 l_query := 'INSERT INTO jl_br_sped_extr_data_t
4418 (request_id,
4419 block,
4420 record_seq,
4421 field1,
4422 separator1,
4423 field2, separator2,
4424 field3, separator3,
4425 field4, separator4,
4426 created_by, creation_date, last_updated_by,
4427 last_update_date,
4428 last_update_login
4429 )
4430 SELECT '||g_concurrent_request_id||
4431 ',''I'' -- Block
4432 ,jl_br_sped_extr_data_t_s.nextval --record_seq
4433 ,''I100'' -- Register (field 1)
4434 ,''|''
4435 ,to_char(fv.last_update_date,''DDMMYYYY'')
4436 ,''|''
4437 ,fv.flex_value
4438 ,''|''
4439 ,fv.description
4440 ,''|''
4441 ,'||g_created_by|| ','''||g_creation_date||''''||
4442 ','||g_last_updated_by|| ','''||g_last_update_date||''''||
4443 ','||g_last_update_login|| ' FROM fnd_flex_values_vl fv
4444 WHERE fv.flex_value_set_id = '||g_cost_center_value_set_id||
4445 ' AND EXISTS (SELECT 1
4446 FROM gl_code_combinations glcc
4447 WHERE glcc.chart_of_accounts_id = '||g_chart_of_accounts_id||
4448 ' AND glcc.summary_flag = ''N''
4449 AND ('''||l_exclusive_mode||'''=''Y''
4450 OR ('''||l_exclusive_mode ||'''=''N'' AND glcc.'||g_bsv_segment||' in (select jg_info_v1 from jg_zz_vat_trx_gt)))
4451 AND glcc.'||g_cost_center_segment||' =fv.flex_value)';
4452
4453 -- fnd_file.put_line(fnd_file.log,l_query);
4454
4455 execute immediate l_query;
4456
4457 -- FND_FILE.PUT_LINE(FND_FILE.LOG,' after I100');
4458
4459 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
4460
4461 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4462 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
4463 G_PKG_NAME||': ' ||l_api_name||'()-');
4464 END IF;
4465
4466 EXCEPTION
4467 WHEN OTHERS THEN
4468 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4469 IF g_debug_flag = 'Y' THEN
4470 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4471 END IF;
4472 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4473 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4474 END IF;
4475 g_errbuf := 'ERROR While inserting data into I100 register '||SQLERRM;
4476 g_retcode := 2;
4477 return;
4478 END register_I100;
4479
4480 /* This register will store the period's information like start_date and end_date parameters*/
4481
4482 PROCEDURE register_I150 AS
4483 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I150';
4484 BEGIN
4485
4486 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4487 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
4488 G_PKG_NAME||': ' ||l_api_name||'()+');
4489 END IF;
4490
4491 INSERT INTO jl_br_sped_extr_data_t
4492 (request_id,
4493 block,
4494 record_seq,
4495 field1,
4496 separator1,
4497 field2,
4498 separator2,
4499 field3,
4500 separator3,
4501 created_by,
4502 creation_date,
4503 last_updated_by,
4504 last_update_date,
4505 last_update_login
4506 )
4507 VALUES (g_concurrent_request_id
4508 ,'I' -- Block
4509 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
4510 ,'I150' -- Register (field 1)
4511 ,'|'
4512 ,to_char(g_start_date,'DDMMYYYY') --filed2
4513 ,'|'
4514 ,to_char(g_end_date,'DDMMYYYY') --field3
4515 ,'|'
4516 ,g_created_by
4517 ,g_creation_date
4518 ,g_last_updated_by
4519 ,g_last_update_date
4520 ,g_last_update_login
4521 );
4522
4523 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
4524
4525 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4526 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
4527 G_PKG_NAME||': ' ||l_api_name||'()-');
4528 END IF;
4529
4530 EXCEPTION
4531 WHEN OTHERS THEN
4532
4533 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4534 IF g_debug_flag = 'Y' THEN
4535 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4536 END IF;
4537 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4538 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4539 END IF;
4540 g_errbuf := 'ERROR While inserting data into I150 register '||SQLERRM;
4541 g_retcode := 2;
4542 return;
4543 END register_I150;
4544
4545 -- field2 is for digital signature, which will be added by customer. This register is required only for bookkeeping type 'B'
4546 PROCEDURE register_I151 AS
4547 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I151';
4548 BEGIN
4549
4550 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4551 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
4552 G_PKG_NAME||': ' ||l_api_name||'()+');
4553 END IF;
4554
4555 INSERT INTO jl_br_sped_extr_data_t
4556 (request_id,
4557 block,
4558 record_seq,
4559 field1,
4560 separator1,
4561 separator2,
4562 created_by,
4563 creation_date,
4564 last_updated_by,
4565 last_update_date,
4566 last_update_login
4567 )
4568 VALUES (g_concurrent_request_id
4569 ,'I' -- Block
4570 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
4571 ,'I151' -- Register (field 1)
4572 ,'|'
4573 ,'|'
4574 ,g_created_by
4575 ,g_creation_date
4576 ,g_last_updated_by
4577 ,g_last_update_date
4578 ,g_last_update_login
4579 );
4580
4581 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
4582
4583 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4584 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
4585 G_PKG_NAME||': ' ||l_api_name||'()-');
4586 END IF;
4587
4588 EXCEPTION
4589 WHEN OTHERS THEN
4590
4591 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4592 IF g_debug_flag = 'Y' THEN
4593 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4594 END IF;
4595 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4596 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4597 END IF;
4598 g_errbuf := 'ERROR While inserting data into I151 register '||SQLERRM;
4599 g_retcode := 2;
4600 return;
4601 END register_I151;
4602
4603 PROCEDURE register_I155 AS
4604 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I155';
4605 l_query1 VARCHAR2(16000);
4606
4607 BEGIN
4608
4609 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4610 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
4611 G_PKG_NAME||': '||l_api_name||'()+');
4612 END IF;
4613
4614
4615 l_query1 :=
4616 'INSERT INTO jl_br_sped_extr_data_t
4617 (request_id,
4618 block,
4619 record_seq,
4620 field1,
4621 separator1,
4622 field2,
4623 separator2,
4624 field3,
4625 separator3,
4626 field4,
4627 separator4,
4628 field5,
4629 separator5,
4630 field6,
4631 separator6,
4632 field7,
4633 separator7,
4634 field8,
4635 separator8,
4636 field9,
4637 separator9,
4638 created_by,
4639 creation_date,
4640 last_updated_by,
4641 last_update_date,
4642 last_update_login
4643 )
4644 SELECT '||g_concurrent_request_id||
4645 ',''I'' -- Block
4646 ,jl_br_sped_extr_data_t_s.nextval --record_seq
4647 ,''I155'' -- Register (field 1)
4648 ,''|''
4649 ,natural_acct
4650 ,''|''
4651 ,cost_center
4652 ,''|''
4653 ,begin_bal
4654 ,''|''
4655 ,begin_bal_type
4656 ,''|''
4657 ,period_dr
4658 ,''|''
4659 ,period_cr
4660 ,''|''
4661 ,end_bal
4662 ,''|''
4663 ,end_bal_type
4664 ,''|''
4665 ,'||g_created_by||
4666 ','''||g_creation_date||''''||
4667 ','||g_last_updated_by||
4668 ','''||g_last_update_date||''''||
4669 ','||g_last_update_login||
4670 ' FROM (SELECT glcc.'||g_account_segment||' natural_acct
4671 ,''|''
4672 ,decode('||l_cc_exists_flag||',0,null,glcc.'||g_cost_center_segment||') cost_center
4673 ,''|''
4674 ,TRIM(TO_CHAR(ABS(NVL(SUM(DECODE(glb.period_name
4675 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR,0)),0))
4676 ,''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) begin_bal
4677 ,''|''
4678 ,DECODE(SIGN(NVL(SUM(DECODE(glb.period_name
4679 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR,0)),0))
4680 ,1,''D'',''C'') begin_bal_type
4681 ,''|''
4682 ,TRIM(TO_CHAR(NVL(SUM(DECODE(glb.period_name,'''||g_period_name||''',PERIOD_NET_DR,0))
4683 +SUM(DECODE(glb.period_name,'''||g_adjustment_period_name||''',PERIOD_NET_DR,0))
4684 ,0),''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) period_dr
4685 ,''|''
4686 ,TRIM(TO_CHAR(NVL(SUM(DECODE(glb.period_name,'''||g_period_name||''',PERIOD_NET_CR,0))
4687 +SUM(DECODE(glb.period_name,'''||g_adjustment_period_name||''',PERIOD_NET_CR,0))
4688 ,0),''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) period_cr
4689 ,''|''
4690 ,TRIM(TO_CHAR(ABS(NVL(SUM(
4691 DECODE(NVL('''||g_adjustment_period_name||''',''-1'')
4692 ,''-1'' , DECODE(glb.period_name
4693 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4694 ,0)
4695 ,DECODE(glb.period_name,
4696 '''||g_adjustment_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4697 ,0 )
4698 )
4699 ),0)),''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) end_bal
4700 ,''|''
4701 ,DECODE(SIGN(NVL(SUM(
4702 DECODE(NVL('''||g_adjustment_period_name||''',''-1'')
4703 ,''-1'' , DECODE(glb.period_name
4704 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4705 ,0)
4706 ,DECODE(glb.period_name,
4707 '''||g_adjustment_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4708 ,0 )
4709 )
4710 ),0)),1,''D'',''C'') end_bal_type
4711 FROM gl_balances glb
4712 ,gl_code_combinations glcc
4713 WHERE period_name in('''||g_period_name||''' , '''||g_adjustment_period_name||''')
4714 AND glb.ledger_id = '||g_ledger_id||
4715 ' AND glb.currency_code = '''||g_currency_code||'''
4716 AND glb.code_combination_id= glcc.code_combination_id
4717 AND ('''||l_exclusive_mode||'''=''Y'' OR ('''||l_exclusive_mode||'''=''N'' AND glcc.'||g_bsv_segment||' in (select jg_info_v1 from jg_zz_vat_trx_gt))) AND glcc.summary_flag = ''N''
4718 AND glb.actual_flag = ''A''
4719 GROUP BY glcc.'||g_account_segment||',decode('||l_cc_exists_flag||',0,null,glcc.'||g_cost_center_segment ||')
4720 HAVING NVL(SUM(DECODE(glb.period_name
4721 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR,0)),0) <> 0 OR
4722 NVL(SUM(DECODE(glb.period_name,'''||g_period_name||''',PERIOD_NET_DR,0))
4723 + SUM(DECODE(glb.period_name,'''||g_adjustment_period_name||''',PERIOD_NET_DR,0)),0) <> 0 OR
4724 NVL(SUM(DECODE(glb.period_name,'''||g_period_name||''',PERIOD_NET_CR,0))
4725 +SUM(DECODE(glb.period_name,'''||g_adjustment_period_name||''',PERIOD_NET_CR,0)),0) <> 0 OR
4726 NVL(SUM(
4727 DECODE(NVL('''||g_adjustment_period_name||''',''-1'')
4728 ,''-1'' , DECODE(glb.period_name
4729 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4730 ,0)
4731 ,DECODE(glb.period_name,
4732 '''||g_adjustment_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4733 ,0 )
4734 )
4735 ),0) <> 0 )';
4736
4737
4738 -- fnd_file.put_line(fnd_file.log,'I155_query:'||l_query1);
4739
4740 execute immediate 'INSERT INTO jl_br_sped_extr_data_t
4741 (request_id,
4742 block,
4743 record_seq,
4744 field1,
4745 separator1,
4746 field2,
4747 separator2,
4748 field3,
4749 separator3,
4750 field4,
4751 separator4,
4752 field5,
4753 separator5,
4754 field6,
4755 separator6,
4756 field7,
4757 separator7,
4758 field8,
4759 separator8,
4760 field9,
4761 separator9,
4762 created_by,
4763 creation_date,
4764 last_updated_by,
4765 last_update_date,
4766 last_update_login
4767 )
4768 SELECT '||g_concurrent_request_id||
4769 ',''I'' -- Block
4770 ,jl_br_sped_extr_data_t_s.nextval --record_seq
4771 ,''I155'' -- Register (field 1)
4772 ,''|''
4773 ,natural_acct
4774 ,''|''
4775 ,cost_center
4776 ,''|''
4777 ,begin_bal
4778 ,''|''
4779 ,begin_bal_type
4780 ,''|''
4781 ,period_dr
4782 ,''|''
4783 ,period_cr
4784 ,''|''
4785 ,end_bal
4786 ,''|''
4787 ,end_bal_type
4788 ,''|''
4789 ,'||g_created_by||
4790 ','''||g_creation_date||''''||
4791 ','||g_last_updated_by||
4792 ','''||g_last_update_date||''''||
4793 ','||g_last_update_login||
4794 ' FROM (SELECT glcc.'||g_account_segment||' natural_acct
4795 ,''|''
4796 ,decode('||l_cc_exists_flag||',0,null,glcc.'||g_cost_center_segment||') cost_center
4797 ,''|''
4798 ,TRIM(TO_CHAR(ABS(NVL(SUM(DECODE(glb.period_name
4799 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR,0)),0))
4800 ,''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) begin_bal
4801 ,''|''
4802 ,DECODE(SIGN(NVL(SUM(DECODE(glb.period_name
4803 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR,0)),0))
4804 ,1,''D'',''C'') begin_bal_type
4805 ,''|''
4806 ,TRIM(TO_CHAR(NVL(SUM(DECODE(glb.period_name,'''||g_period_name||''',PERIOD_NET_DR,0))
4807 +SUM(DECODE(glb.period_name,'''||g_adjustment_period_name||''',PERIOD_NET_DR,0))
4808 ,0),''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) period_dr
4809 ,''|''
4810 ,TRIM(TO_CHAR(NVL(SUM(DECODE(glb.period_name,'''||g_period_name||''',PERIOD_NET_CR,0))
4811 +SUM(DECODE(glb.period_name,'''||g_adjustment_period_name||''',PERIOD_NET_CR,0))
4812 ,0),''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) period_cr
4813 ,''|''
4814 ,TRIM(TO_CHAR(ABS(NVL(SUM(
4815 DECODE(NVL('''||g_adjustment_period_name||''',''-1'')
4816 ,''-1'' , DECODE(glb.period_name
4817 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4818 ,0)
4819 ,DECODE(glb.period_name,
4820 '''||g_adjustment_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4821 ,0 )
4822 )
4823 ),0)),''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) end_bal
4824 ,''|''
4825 ,DECODE(SIGN(NVL(SUM(
4826 DECODE(NVL('''||g_adjustment_period_name||''',''-1'')
4827 ,''-1'' , DECODE(glb.period_name
4828 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4829 ,0)
4830 ,DECODE(glb.period_name,
4831 '''||g_adjustment_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4832 ,0 )
4833 )
4834 ),0)),1,''D'',''C'') end_bal_type
4835 FROM gl_balances glb
4836 ,gl_code_combinations glcc
4837 WHERE period_name in('''||g_period_name||''' , '''||g_adjustment_period_name||''')
4838 AND glb.ledger_id = '||g_ledger_id||
4839 ' AND glb.currency_code = '''||g_currency_code||'''
4840 AND glb.code_combination_id= glcc.code_combination_id
4841 AND ('''||l_exclusive_mode||'''=''Y'' OR ('''||l_exclusive_mode||'''=''N'' AND glcc.'||g_bsv_segment||' in (select jg_info_v1 from jg_zz_vat_trx_gt)))
4842 AND glcc.summary_flag = ''N''
4843 AND glb.actual_flag = ''A''
4844 GROUP BY glcc.'||g_account_segment||',decode('||l_cc_exists_flag||',0,null,glcc.'||g_cost_center_segment ||')
4845 HAVING NVL(SUM(DECODE(glb.period_name
4846 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR,0)),0) <> 0 OR
4847 NVL(SUM(DECODE(glb.period_name,'''||g_period_name||''',PERIOD_NET_DR,0))
4848 + SUM(DECODE(glb.period_name,'''||g_adjustment_period_name||''',PERIOD_NET_DR,0)),0) <> 0 OR
4849 NVL(SUM(DECODE(glb.period_name,'''||g_period_name||''',PERIOD_NET_CR,0))
4850 +SUM(DECODE(glb.period_name,'''||g_adjustment_period_name||''',PERIOD_NET_CR,0)),0) <> 0 OR
4851 NVL(SUM(
4852 DECODE(NVL('''||g_adjustment_period_name||''',''-1'')
4853 ,''-1'' , DECODE(glb.period_name
4854 ,'''||g_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4855 ,0)
4856 ,DECODE(glb.period_name,
4857 '''||g_adjustment_period_name||''',BEGIN_BALANCE_DR - BEGIN_BALANCE_CR +PERIOD_NET_DR -PERIOD_NET_CR
4858 ,0 )
4859 )
4860 ),0) <> 0 )';
4861
4862
4863 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
4864
4865 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4866 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
4867 G_PKG_NAME||': ' ||l_api_name||'()-');
4868 END IF;
4869
4870 EXCEPTION
4871 WHEN OTHERS THEN
4872
4873 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4874 IF g_debug_flag = 'Y' THEN
4875 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
4876 END IF;
4877 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
4878 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4879 END IF;
4880 g_errbuf := 'ERROR While inserting data into I155 register '||SQLERRM;
4881 g_retcode := 2;
4882 return;
4883 END register_I155;
4884
4885 PROCEDURE register_I200 AS
4886 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I200';
4887 l_period_flag VARCHAR2(1) := NULL;
4888 l_end_date DATE;
4889 l_jounrnal_flag VARCHAR2(1) := NULL;
4890 CURSOR c_journals IS
4891 SELECT j.name||'-'||j.je_batch_id name
4892 ,j.default_effective_date
4893 ,j.running_total_accounted_dr
4894 ,j.je_header_id
4895 ,j.je_source
4896 ,j.je_category
4897 ,j.period_name
4898 FROM gl_je_headers j
4899 WHERE j.ledger_id = g_ledger_id
4900 AND j.actual_flag = 'A'
4901 AND j.status = 'P'
4902 AND j.currency_code <> 'STAT' -- filtering statistic journals. Introduced thid condition for new sped enhancement
4903 AND j.period_name in (g_period_name,g_adjustment_period_name)
4904 AND ((j.default_effective_date between g_start_date and g_end_date)
4905 OR (j.default_effective_date between g_adjustment_period_start_date and g_adjustment_period_end_date))
4906 AND j.je_source NOT IN (SELECT fl.lookup_code
4907 FROM fnd_lookups fl
4908 WHERE fl.lookup_type = 'JLBR_SPED_LEGACY_SOURCES'
4909 AND fl.ENABLED_FLAG = 'Y')
4910 AND EXISTS (SELECT 1
4911 FROM gl_je_lines jl
4912 WHERE jl.je_header_id= j.je_header_id
4913 AND jl.ledger_id=g_ledger_id
4914 AND (l_exclusive_mode = 'Y' OR
4915 (l_exclusive_mode = 'N' AND get_segment_value(jl.code_combination_id,g_bsv_segment) in (select jg_info_v1 from jg_zz_vat_trx_gt)))
4916 );
4917
4918 BEGIN
4919
4920 IF g_bookkeeping_type = 'B' THEN
4921 return;
4922 END IF;
4923
4924
4925 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4926 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
4927 G_PKG_NAME||': '||l_api_name||'()+');
4928 END IF;
4929
4930 FOR c_journal_header in c_journals LOOP
4931
4932 IF g_closing_period_flag = 'Y' THEN
4933
4934 IF g_adjustment_period_name IS NOT NULL THEN
4935 IF c_journal_header.period_name = g_adjustment_period_name THEN
4936 l_jounrnal_flag := 'E';
4937 ELSE
4938 l_jounrnal_flag := 'N';
4939 END IF;
4940 END IF;
4941 ELSE
4942 l_jounrnal_flag := 'N';
4943 END IF;
4944
4945 INSERT INTO jl_br_sped_extr_data_t
4946 (request_id,
4947 block,
4948 record_seq,
4949 field1,
4950 separator1,
4951 field2,
4952 separator2,
4953 field3,
4954 separator3,
4955 field4,
4956 separator4,
4957 field5,
4958 separator5,
4959 created_by,
4960 creation_date,
4961 last_updated_by,
4962 last_update_date,
4963 last_update_login
4964 )
4965 VALUES (g_concurrent_request_id
4966 ,'I' -- Block
4967 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
4968 ,'I200' -- field 1
4969 ,'|'
4970 ,c_journal_header.name --field 2
4971 ,'|'
4972 ,to_char(c_journal_header.default_effective_date,'DDMMYYYY') --field 3
4973 ,'|'
4974 ,TRIM(TO_CHAR(c_journal_header.running_total_accounted_dr,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) --field 4
4975 ,'|'
4976 ,l_jounrnal_flag --field 5
4977 ,'|'
4978 ,g_created_by
4979 ,g_creation_date
4980 ,g_last_updated_by
4981 ,g_last_update_date
4982 ,g_last_update_login
4983 );
4984
4985 register_I250(c_journal_header.je_header_id,c_journal_header.name,c_journal_header.je_source,c_journal_header.je_category);
4986
4987 END LOOP;
4988
4989 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4990 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
4991 G_PKG_NAME||': ' ||l_api_name||'()-');
4992 END IF;
4993
4994
4995 EXCEPTION
4996 WHEN OTHERS THEN
4997
4998 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
4999 IF g_debug_flag = 'Y' THEN
5000 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
5001 END IF;
5002 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5003 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5004 END IF;
5005 g_errbuf := 'ERROR While inserting data into I200 register '||SQLERRM;
5006 g_retcode := 2;
5007 return;
5008
5009 END register_I200;
5010
5011
5012
5013 PROCEDURE register_I250(p_journal_header_id gl_je_headers.je_header_id%TYPE,
5014 p_journal_name gl_je_headers.name%TYPE,
5015 p_journal_source gl_je_headers.je_source%TYPE,
5016 p_je_category gl_je_headers.je_category%TYPE) AS
5017
5018
5019 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I250';
5020 l_bordero_id jl_br_ar_occurrence_docs.bordero_id%TYPE;
5021 l_cnt_bordero_id NUMBER;
5022 l_occurrence_type jl_br_ar_occurrence_docs.bank_occurrence_type%TYPE;
5023 l_ap_auxbook_exst NUMBER;
5024 l_ar_auxbook_exst NUMBER;
5025 l_description VARCHAR2(500);
5026 BEGIN
5027
5028
5029 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5030 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Journal Header : '||p_journal_header_id||' Journal Source : '||p_journal_source);
5031 END IF;
5032
5033 IF SUBSTR(g_bookkeeping_type,1,1) <> 'A' OR (p_journal_source='Payables' AND g_ap_ar_auxbook_exist=0)
5034 OR (p_journal_source='Receivables' AND g_ap_ar_auxbook_exist=0)
5035 OR (p_journal_source <> 'Payables' AND p_journal_source <> 'Receivables') THEN
5036 BEGIN
5037
5038 -- Debit Lines
5039
5040 INSERT INTO jl_br_sped_extr_data_t
5041 (request_id,
5042 block,
5043 record_seq,
5044 field1,
5045 separator1,
5046 field2,
5047 separator2,
5048 field3,
5049 separator3,
5050 field4,
5051 separator4,
5052 field5,
5053 separator5,
5054 field6,
5055 separator6,
5056 field7,
5057 separator7,
5058 field8,
5059 separator8,
5060 field9,
5061 separator9,
5062 created_by,
5063 creation_date,
5064 last_updated_by,
5065 last_update_date,
5066 last_update_login
5067 )
5068 SELECT g_concurrent_request_id
5069 ,'I' -- Block
5070 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
5071 ,'I250' -- field 1
5072 ,'|'
5073 ,get_segment_value(jl.code_combination_id,g_account_segment) natural_Acct
5074 ,'|'
5075 ,decode(l_cc_exists_flag,0,null,get_segment_value(jl.code_combination_id,g_cost_center_segment)) cost_center
5076 ,'|'
5077 ,TRIM(TO_CHAR(jl.accounted_dr,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) -- removed abs() as part of ER#11653651
5078 ,'|'
5079 ,'D' --,DECODE(SIGN(nvl(jl.accounted_dr,0)-nvl(jl.accounted_cr,0)),-1,'C','D')
5080 ,'|'
5081 ,p_journal_name
5082 ,'|'
5083 ,NULL
5084 ,'|'
5085 ,jl.description
5086 ,'|'
5087 ,get_participant_code(jl.je_header_id,jl.je_line_num,p_journal_source,jl.code_combination_id,NULL,NULL)
5088 ,'|'
5089 ,g_created_by
5090 ,g_creation_date
5091 ,g_last_updated_by
5092 ,g_last_update_date
5093 ,g_last_update_login
5094 FROM gl_je_lines jl
5095 WHERE jl.je_header_id = p_journal_header_id
5096 AND jl.accounted_dr is not null
5097 AND jl.ledger_id = g_ledger_id
5098 AND (l_exclusive_mode='Y' OR (l_exclusive_mode='N' AND get_segment_value(jl.code_combination_id,g_bsv_segment) in (SELECT jg_info_v1 FROM jg_zz_vat_trx_gt))); -- need to modify
5099
5100
5101 -- Credit Lines
5102
5103 INSERT INTO jl_br_sped_extr_data_t
5104 (request_id,
5105 block,
5106 record_seq,
5107 field1,
5108 separator1,
5109 field2,
5110 separator2,
5111 field3,
5112 separator3,
5113 field4,
5114 separator4,
5115 field5,
5116 separator5,
5117 field6,
5118 separator6,
5119 field7,
5120 separator7,
5121 field8,
5122 separator8,
5123 field9,
5124 separator9,
5125 created_by,
5126 creation_date,
5127 last_updated_by,
5128 last_update_date,
5129 last_update_login
5130 )
5131 SELECT g_concurrent_request_id
5132 ,'I' -- Block
5133 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
5134 ,'I250' -- field 1
5135 ,'|'
5136 ,get_segment_value(jl.code_combination_id,g_account_segment) natural_Acct
5137 ,'|'
5138 ,decode(l_cc_exists_flag,0,null,get_segment_value(jl.code_combination_id,g_cost_center_segment)) cost_center
5139 ,'|'
5140 ,TRIM(TO_CHAR(jl.accounted_cr,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) --removed abs() as part of ER#11653651
5141 ,'|'
5142 ,'C' --,DECODE(SIGN(nvl(jl.accounted_dr,0)-nvl(jl.accounted_cr,0)),-1,'C','D')
5143 ,'|'
5144 ,p_journal_name
5145 ,'|'
5146 ,NULL
5147 ,'|'
5148 ,jl.description
5149 ,'|'
5150 ,get_participant_code(jl.je_header_id,jl.je_line_num,p_journal_source,jl.code_combination_id,NULL,NULL)
5151 ,'|'
5152 ,g_created_by
5153 ,g_creation_date
5154 ,g_last_updated_by
5155 ,g_last_update_date
5156 ,g_last_update_login
5157 FROM gl_je_lines jl
5158 WHERE jl.je_header_id = p_journal_header_id
5159 AND jl.accounted_cr is not null
5160 AND jl.ledger_id = g_ledger_id
5161 AND (l_exclusive_mode='Y' OR (l_exclusive_mode='N' AND get_segment_value(jl.code_combination_id,g_bsv_segment) in (SELECT jg_info_v1 FROM jg_zz_vat_trx_gt))); -- need to modify
5162
5163
5164 EXCEPTION
5165 WHEN OTHERS THEN
5166 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5167 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While inserting data into I250 register for the Header Id :'||p_journal_header_id);
5168 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5169 END IF;
5170 END;
5171 ELSE -- If g_bookkeeping_type = 'A/R' or 'A/B' and auxiliary book exists.
5172
5173
5174 --Extract the detail lines by drill down to xla_ae_lines_all and xla_distributions_links table.
5175
5176 BEGIN
5177 INSERT INTO jl_br_sped_extr_data_t
5178 (request_id,
5179 block,
5180 record_seq,
5181 field1,
5182 separator1,
5183 field2,
5184 separator2,
5185 field3,
5186 separator3,
5187 field4,
5188 separator4,
5189 field5,
5190 separator5,
5191 field6,
5192 separator6,
5193 field7,
5194 separator7,
5195 field8,
5196 separator8,
5197 field9,
5198 separator9,
5199 created_by,
5200 creation_date,
5201 last_updated_by,
5202 last_update_date,
5203 last_update_login
5204 )
5205 SELECT g_concurrent_request_id
5206 , 'I' -- Block
5207 , jl_br_sped_extr_data_t_s.nextval -- record_seq
5208 , 'I250' -- field 1
5209 , '|'
5210 , get_segment_value(xll.code_combination_id, g_account_segment)
5211 , '|'
5212 , decode(l_cc_exists_flag, 0, NULL, get_segment_value(xll.code_combination_id, g_cost_center_segment))
5213 , '|'
5214 , TRIM(TO_CHAR(xld.UNROUNDED_ACCOUNTED_DR, '99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) --modified as part of ER#11653651
5215 , '|'
5216 , 'D'
5217 , '|'
5218 , p_journal_name
5219 , '|'
5220 , NULL
5221 , '|'
5222 , nvl(xll.description, p_journal_name || '-' || xll.ae_line_num)
5223 , '|'
5224 , get_participant_code(glimp.je_header_id, glimp.je_line_num, p_journal_source, xll.code_combination_id, xll.party_id, xll.party_site_id)
5225 , '|'
5226 , g_created_by
5227 , g_creation_date
5228 , g_last_updated_by
5229 , g_last_update_date
5230 , g_last_update_login
5231 FROM gl_import_references glimp,
5232 xla_ae_lines xll,
5233 xla_ae_headers xlh,
5234 XLA_DISTRIBUTION_LINKS xld
5235 WHERE glimp.je_header_id = p_journal_header_id
5236 AND xlh.ledger_id = g_ledger_id
5237 AND xlh.application_id = xll.application_id
5238 AND xll.gl_sl_link_id = glimp.gl_sl_link_id
5239 AND xll.gl_sl_link_table= glimp.gl_sl_link_table
5240 AND xlh.ae_header_id = xll.ae_header_id
5241 AND xll.ae_header_id = xld.ae_header_id
5242 AND xll.application_id = xld.application_id
5243 AND xlh.EVENT_ID = xld.EVENT_ID
5244 AND xll.ae_line_num = xld.ae_line_num --p_je_line_num
5245 AND xld.UNROUNDED_ACCOUNTED_DR IS NOT NULL
5246 AND (l_exclusive_mode='Y' OR (l_exclusive_mode='N' AND get_segment_value(xll.code_combination_id,g_bsv_segment) in (SELECT jg_info_v1 from jg_zz_vat_trx_gt))); --- Need to modify
5247
5248 -- inserts credit lines. added as part of ER#11653651
5249 INSERT INTO jl_br_sped_extr_data_t
5250 (request_id,
5251 block,
5252 record_seq,
5253 field1,
5254 separator1,
5255 field2,
5256 separator2,
5257 field3,
5258 separator3,
5259 field4,
5260 separator4,
5261 field5,
5262 separator5,
5263 field6,
5264 separator6,
5265 field7,
5266 separator7,
5267 field8,
5268 separator8,
5269 field9,
5270 separator9,
5271 created_by,
5272 creation_date,
5273 last_updated_by,
5274 last_update_date,
5275 last_update_login
5276 )
5277 SELECT g_concurrent_request_id
5278 , 'I' -- Block
5279 , jl_br_sped_extr_data_t_s.nextval -- record_seq
5280 , 'I250' -- field 1
5281 , '|'
5282 , get_segment_value(xll.code_combination_id, g_account_segment)
5283 , '|'
5284 , decode(l_cc_exists_flag, 0, NULL, get_segment_value(xll.code_combination_id, g_cost_center_segment))
5285 , '|'
5286 , TRIM(TO_CHAR(xld.UNROUNDED_ACCOUNTED_CR, '99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
5287 , '|'
5288 , 'C'
5289 , '|'
5290 , p_journal_name
5291 , '|'
5292 , NULL
5293 , '|'
5294 , nvl(xll.description, p_journal_name || '-' || xll.ae_line_num)
5295 , '|'
5296 , get_participant_code(glimp.je_header_id, glimp.je_line_num, p_journal_source, xll.code_combination_id, xll.party_id, xll.party_site_id)
5297 , '|'
5298 , g_created_by
5299 , g_creation_date
5300 , g_last_updated_by
5301 , g_last_update_date
5302 , g_last_update_login
5303 FROM gl_import_references glimp,
5304 xla_ae_lines xll,
5305 xla_ae_headers xlh,
5306 XLA_DISTRIBUTION_LINKS xld
5307 WHERE glimp.je_header_id = p_journal_header_id
5308 AND xlh.ledger_id = g_ledger_id
5309 AND xlh.application_id = xll.application_id
5310 AND xll.gl_sl_link_id = glimp.gl_sl_link_id
5311 AND xll.gl_sl_link_table= glimp.gl_sl_link_table
5312 AND xlh.ae_header_id = xll.ae_header_id
5313 AND xll.ae_header_id = xld.ae_header_id
5314 AND xll.application_id = xld.application_id
5315 AND xlh.EVENT_ID = xld.EVENT_ID
5316 AND xll.ae_line_num = xld.ae_line_num --p_je_line_num
5317 AND xld.UNROUNDED_ACCOUNTED_CR IS NOT NULL
5318 AND (l_exclusive_mode='Y' OR (l_exclusive_mode='N' AND get_segment_value(xll.code_combination_id,g_bsv_segment) in (SELECT jg_info_v1 from jg_zz_vat_trx_gt))); --- Need to modify
5319
5320 EXCEPTION
5321 WHEN OTHERS THEN
5322 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5323 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While inserting data into I250 register for the Header Id :'||p_journal_header_id);
5324 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5325 END IF;
5326 END;
5327
5328 END IF; --End for substr(Bookkeeping_type,1,1) <> 'A' ..
5329
5330 END register_I250;
5331
5332
5333 PROCEDURE register_I300_I310 AS
5334
5335 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I300_I310';
5336 l_previous_date DATE := g_start_date-1;
5337
5338 TYPE tab_effective_date IS TABLE OF
5339 gl_je_lines.effective_date%TYPE INDEX BY BINARY_INTEGER;
5340
5341 TYPE tab_flex_value IS TABLE OF
5342 fnd_flex_values.flex_value%TYPE INDEX BY BINARY_INTEGER;
5343
5344 TYPE tab_num IS TABLE OF
5345 NUMBER INDEX BY BINARY_INTEGER;
5346
5347 effective_date tab_effective_date;
5348 natural_acct tab_flex_value;
5349 cost_center_acct tab_flex_value;
5350 accounted_dr tab_num;
5351 accounted_cr tab_num;
5352
5353 l_query varchar2(6000);
5354 l_estb_check VARCHAR2(2000);
5355
5356 BEGIN
5357
5358 IF g_bookkeeping_type <> 'B' THEN
5359 return;
5360 END IF;
5361
5362
5363 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5364 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
5365 G_PKG_NAME||': '||l_api_name||'()+');
5366 END IF;
5367
5368
5369 l_query := ' SELECT jl.effective_date
5370 ,glcc.'||g_account_segment||' natural_acct
5371 ,decode('||l_cc_exists_flag||',0,null,glcc.'||g_cost_center_segment||') cost_center_acct
5372 ,NVL(SUM(jl.accounted_dr),0) accounted_dr
5373 ,NVL(SUM(jl.accounted_cr),0) accounted_cr
5374 FROM gl_je_headers jh
5375 ,gl_je_lines jl
5376 ,gl_code_combinations glcc
5377 WHERE jh.ledger_id = '||g_ledger_id||'
5378 AND jh.default_effective_date BETWEEN '''||g_start_date||''' AND '''||g_end_date||'''
5379 AND jh.je_header_id = jl.je_header_id
5380 AND jh.actual_flag = ''A''
5381 AND jh.status = ''P''
5382 AND jh.currency_code <> ''STAT'' -- filtering statistic journals. Introduced thid condition for new sped enhancement
5383 AND glcc.code_combination_id = jl.code_combination_id
5384 AND glcc.chart_of_accounts_id = '||g_chart_of_accounts_id||'
5385 AND ('''||l_exclusive_mode||'''=''Y'' OR ('''||l_exclusive_mode||'''=''N'' AND glcc.'||g_bsv_segment||' in (select jg_info_v1 from jg_zz_vat_trx_gt)))
5386 GROUP BY jl.effective_date
5387 ,glcc.'||g_account_segment||'
5388 ,decode('||l_cc_exists_flag||',0,null,glcc.'||g_cost_center_segment||')
5389 ORDER BY jl.effective_date
5390 ,natural_acct
5391 ,cost_center_acct';
5392
5393 EXECUTE IMMEDIATE l_query
5394 BULK COLLECT INTO effective_date
5395 ,natural_acct
5396 ,cost_center_acct
5397 ,accounted_dr
5398 ,accounted_cr;
5399
5400 FOR i IN 1..effective_date.COUNT
5401 LOOP
5402
5403 IF effective_date(i) <> l_previous_date THEN
5404
5405 INSERT INTO jl_br_sped_extr_data_t
5406 (request_id,
5407 block,
5408 record_seq,
5409 field1,
5410 separator1,
5411 field2,
5412 separator2,
5413 created_by,
5414 creation_date,
5415 last_updated_by,
5416 last_update_date,
5417 last_update_login
5418 )
5419 VALUES (g_concurrent_request_id
5420 ,'I' -- Block
5421 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
5422 ,'I300' -- field 1
5423 ,'|'
5424 ,to_char(effective_date(i),'DDMMYYYY')
5425 ,'|'
5426 ,g_created_by
5427 ,g_creation_date
5428 ,g_last_updated_by
5429 ,g_last_update_date
5430 ,g_last_update_login
5431 );
5432
5433 l_previous_date := effective_date(i);
5434 END IF;
5435
5436 INSERT INTO jl_br_sped_extr_data_t
5437 (request_id,
5438 block,
5439 record_seq,
5440 field1,
5441 separator1,
5442 field2,
5443 separator2,
5444 field3,
5445 separator3,
5446 field4,
5447 separator4,
5448 field5,
5449 separator5,
5450 created_by,
5451 creation_date,
5452 last_updated_by,
5453 last_update_date,
5454 last_update_login
5455 )
5456 VALUES (g_concurrent_request_id
5457 ,'I' -- Block
5458 ,jl_br_sped_extr_data_t_s.nextval --record_seq
5459 ,'I310' -- field 1
5460 ,'|'
5461 ,natural_acct(i)
5462 ,'|'
5463 ,cost_center_Acct(i)
5464 ,'|'
5465 ,TRIM(TO_CHAR(accounted_dr(i),'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
5466 ,'|'
5467 ,TRIM(TO_CHAR(accounted_cr(i),'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
5468 ,'|'
5469 ,g_created_by
5470 ,g_creation_date
5471 ,g_last_updated_by
5472 ,g_last_update_date
5473 ,g_last_update_login );
5474
5475 END LOOP;
5476
5477 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5478 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
5479 G_PKG_NAME||': ' ||l_api_name||'()-');
5480 END IF;
5481
5482 EXCEPTION
5483 WHEN OTHERS THEN
5484
5485 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5486 IF g_debug_flag = 'Y' THEN
5487 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
5488 END IF;
5489 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5490 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5491 END IF;
5492 g_errbuf := 'ERROR While inserting into I300 and I310 registers '||SQLERRM;
5493 g_retcode := 2;
5494 return;
5495 END register_I300_I310;
5496
5497
5498 PROCEDURE register_I350 AS
5499 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I350';
5500 BEGIN
5501
5502 IF SUBSTRB(g_bookkeeping_type,1,1) = 'A' THEN
5503 RETURN;
5504 END IF;
5505
5506 IF nvl(g_closing_period_flag,'N') <> 'Y' THEN
5507 RETURN;
5508 END IF;
5509
5510 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5511 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
5512 G_PKG_NAME||': '||l_api_name||'()+');
5513 END IF;
5514
5515
5516
5517 INSERT INTO jl_br_sped_extr_data_t
5518 (request_id,
5519 block,
5520 record_seq,
5521 field1,
5522 separator1,
5523 field2,
5524 separator2,
5525 created_by,
5526 creation_date,
5527 last_updated_by,
5528 last_update_date,
5529 last_update_login
5530 )
5531 VALUES (g_concurrent_request_id
5532 ,'I' -- Block
5533 ,jl_br_sped_extr_data_t_s.nextval -- record_seq
5534 ,'I350' -- field 1
5535 ,'|'
5536 ,to_char(g_end_date,'DDMMYYYY')
5537 ,'|'
5538 ,g_created_by
5539 ,g_creation_date
5540 ,g_last_updated_by
5541 ,g_last_update_date
5542 ,g_last_update_login );
5543
5544 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
5545
5546 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5547 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
5548 G_PKG_NAME||': ' ||l_api_name||'()-');
5549 END IF;
5550
5551 EXCEPTION
5552 WHEN OTHERS THEN
5553
5554 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5555 IF g_debug_flag = 'Y' THEN
5556 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
5557 END IF;
5558 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5559 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5560 END IF;
5561 g_errbuf := 'ERROR While inserting into I350 register '||SQLERRM;
5562 g_retcode := 2;
5563 return;
5564
5565 END register_I350;
5566
5567 PROCEDURE register_I355 AS
5568 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I355';
5569 l_query VARCHAR2(6000);
5570 l_estb_check VARCHAR2(2000);
5571
5572 BEGIN
5573
5574
5575 IF SUBSTRB(g_bookkeeping_type,1,1) = 'A' THEN
5576 RETURN;
5577 END IF;
5578
5579 IF nvl(g_closing_period_flag,'N') <> 'Y' THEN
5580 RETURN;
5581 END IF;
5582
5583 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5584 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
5585 G_PKG_NAME||': '||l_api_name||'()+');
5586 END IF;
5587
5588 IF g_adjustment_period_name IS NOT NULL THEN -- It will be true always. so is this check require???
5589
5590 l_query := 'INSERT INTO jl_br_sped_extr_data_t
5591 (request_id,
5592 block,
5593 record_seq,
5594 field1,
5595 separator1,
5596 field2,
5597 separator2,
5598 field3,
5599 separator3,
5600 field4,
5601 separator4,
5602 field5,
5603 separator5,
5604 created_by,
5605 creation_date,
5606 last_updated_by,
5607 last_update_date,
5608 last_update_login
5609 )
5610 SELECT '|| g_concurrent_request_id||
5611 ',''I'' Block
5612 ,jl_br_sped_extr_data_t_s.nextval
5613 ,''I355''
5614 ,''|''
5615 , natural_acct
5616 ,''|''
5617 ,costcenter_value
5618 ,''|''
5619 ,amount
5620 ,''|''
5621 ,amount_flag
5622 ,''|''
5623 ,'||g_created_by||
5624 ','''||g_creation_date||''''||
5625 ','||g_last_updated_by||
5626 ','''||g_last_update_date||''''||
5627 ','||g_last_update_login||
5628 ' FROM (SELECT glcc.'||g_account_segment||' natural_acct '|| ',decode('||l_cc_exists_flag||',0,null,glcc.'||g_cost_center_segment||') costcenter_value'||
5629 ',TRIM(TO_CHAR(abs(sum(((glb.BEGIN_BALANCE_DR - glb.BEGIN_BALANCE_CR)
5630 + (glb.PERIOD_NET_DR - glb.PERIOD_NET_CR)))),''99999999999999990D00'',''NLS_NUMERIC_CHARACTERS = '''',.'''''')) amount
5631 ,DECODE(SIGN(sum((glb.BEGIN_BALANCE_DR - glb.BEGIN_BALANCE_CR)
5632 + (glb.PERIOD_NET_DR - glb.PERIOD_NET_CR))),1,''D'',''C'') amount_flag
5633 FROM gl_balances glb
5634 ,gl_code_combinations glcc
5635 WHERE glb.period_name = '''||g_period_name||''''||
5636 ' AND glb.code_combination_id = glcc.code_combination_id
5637 AND glb.ledger_id = '||g_ledger_id||
5638 ' AND glcc.chart_of_accounts_id = '||g_chart_of_accounts_id||
5639 ' AND glcc.account_type in (''E'',''R'')
5640 AND glcc.summary_flag = ''N''
5641 AND glb.actual_flag = ''A''
5642 AND glb.currency_code = '''||g_currency_code||'''
5643 AND ('''||l_exclusive_mode||'''=''Y'' OR ('''||l_exclusive_mode||'''=''N'' AND glcc.'||g_bsv_segment||' in (select jg_info_v1 from jg_zz_vat_trx_gt)))
5644 GROUP BY glcc.'||g_account_segment||',decode('||l_cc_exists_flag||',0,null,glcc.'||g_cost_center_segment||')
5645 HAVING sum(((glb.BEGIN_BALANCE_DR - glb.BEGIN_BALANCE_CR)
5646 + (glb.PERIOD_NET_DR - glb.PERIOD_NET_CR)))<>0) ';
5647
5648 END IF;
5649
5650
5651 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'I355 Query :'|| l_query);
5652
5653 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Before execution of dynamic query');
5654
5655 execute immediate l_query;
5656
5657 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'After execution of dynamic query');
5658
5659 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5660 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
5661 G_PKG_NAME||': ' ||l_api_name||'()-');
5662 END IF;
5663
5664 EXCEPTION
5665 WHEN OTHERS THEN
5666
5667 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5668 IF g_debug_flag = 'Y' THEN
5669 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
5670 END IF;
5671 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5672 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5673 END IF;
5674 g_errbuf := 'ERROR While inserting data into I355 register'||SQLERRM;
5675 g_retcode := 2;
5676 return;
5677
5678 END register_I355;
5679
5680 PROCEDURE register_I990 AS
5681 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_I990';
5682
5683 BEGIN
5684
5685 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5686 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
5687 G_PKG_NAME||': '||l_api_name||'()+');
5688 END IF;
5689
5690 INSERT INTO jl_br_sped_extr_data_t
5691 (request_id,
5692 block,
5693 record_seq,
5694 field1,
5695 separator1,
5696 field2,
5697 separator2,
5698 created_by,
5699 creation_date,
5700 last_updated_by,
5701 last_update_date,
5702 last_update_login)
5703 VALUES( g_concurrent_request_id,
5704 'I', --block
5705 jl_br_sped_extr_data_t_s.nextval, --record_seq
5706 'I990', --Register (field1)
5707 '|',
5708 null,--count(*), --field2
5709 '|',
5710 g_created_by,
5711 g_creation_date,
5712 g_last_updated_by,
5713 g_last_update_date,
5714 g_last_update_login);
5715
5716 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
5717
5718 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5719 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
5720 G_PKG_NAME||': ' ||l_api_name||'()-');
5721 END IF;
5722
5723 EXCEPTION
5724 WHEN OTHERS THEN
5725
5726 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5727 IF g_debug_flag = 'Y' THEN
5728 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
5729 END IF;
5730 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5731 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5732 END IF;
5733 g_errbuf := 'ERROR While inserting data into I990 registers '||SQLERRM;
5734 g_retcode := 2;
5735 return;
5736 END register_I990;
5737
5738 PROCEDURE register_J001 AS
5739 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_J001';
5740
5741 BEGIN
5742
5743 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5744 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
5745 G_PKG_NAME||': '||l_api_name||'()+');
5746 END IF;
5747
5748 INSERT INTO jl_br_sped_extr_data_t
5749 (request_id,
5750 block,
5751 record_seq,
5752 field1,
5753 separator1,
5754 field2,
5755 separator2,
5756 created_by,
5757 creation_date,
5758 last_updated_by,
5759 last_update_date,
5760 last_update_login)
5761 VALUES( g_concurrent_request_id,
5762 'J', --block
5763 jl_br_sped_extr_data_t_s.nextval, --record_seq
5764 'J001', --Register (field1)
5765 '|',
5766 0,-- null, --decode(count(*),0,1,0), --field2
5767 '|',
5768 g_created_by,
5769 g_creation_date,
5770 g_last_updated_by,
5771 g_last_update_date,
5772 g_last_update_login );
5773
5774 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
5775
5776 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5777 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
5778 G_PKG_NAME||': ' ||l_api_name||'()-');
5779 END IF;
5780
5781 EXCEPTION
5782 WHEN OTHERS THEN
5783
5784 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5785 IF g_debug_flag = 'Y' THEN
5786 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
5787 END IF;
5788 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5789 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5790 END IF;
5791 g_errbuf := 'ERROR While inserting data into J001 register'||SQLERRM;
5792 g_retcode := 2;
5793 return;
5794
5795 END register_J001;
5796
5797 PROCEDURE register_J005 AS
5798 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_J005';
5799
5800 BEGIN
5801
5802 IF nvl(g_closing_period_flag,'N') <> 'Y' THEN
5803 RETURN;
5804 END IF;
5805
5806 IF g_acct_stmt_ident IS NULL THEN
5807 RETURN;
5808 END IF;
5809
5810 IF g_bookkeeping_type = 'G' OR g_bookkeeping_type = 'R' OR g_bookkeeping_type = 'B' THEN
5811
5812 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5813 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
5814 G_PKG_NAME||': '||l_api_name||'()+');
5815 END IF;
5816
5817 INSERT INTO jl_br_sped_extr_data_t
5818 (request_id,
5819 block,
5820 record_seq,
5821 field1,
5822 separator1,
5823 field2,
5824 separator2,
5825 field3,
5826 separator3,
5827 field4,
5828 separator4,
5829 field5,
5830 separator5,
5831 created_by,
5832 creation_date,
5833 last_updated_by,
5834 last_update_date,
5835 last_update_login)
5836 VALUES( g_concurrent_request_id,
5837 'J', --block
5838 jl_br_sped_extr_data_t_s.nextval, --record_seq
5839 'J005', --Register (field1)
5840 '|',
5841 to_char(g_start_date,'ddmmyyyy'), --field2
5842 '|',
5843 to_char(g_end_date,'ddmmyyyy'), --field3
5844 '|',
5845 g_acct_stmt_ident,
5846 '|',
5847 decode(g_acct_stmt_ident,2,g_acct_stmt_header,null),
5848 '|',
5849 g_created_by,
5850 g_creation_date,
5851 g_last_updated_by,
5852 g_last_update_date,
5853 g_last_update_login);
5854
5855 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
5856
5857 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5858 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
5859 G_PKG_NAME||': ' ||l_api_name||'()-');
5860 END IF;
5861
5862 END IF; -- END for checking on book keeping type
5863
5864 EXCEPTION
5865 WHEN OTHERS THEN
5866
5867 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
5868 IF g_debug_flag = 'Y' THEN
5869 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
5870 END IF;
5871 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
5872 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
5873 END IF;
5874 g_errbuf := 'ERROR While inserting data into J001 register'||SQLERRM;
5875 g_retcode := 2;
5876 return;
5877
5878 END register_J005;
5879
5880 /* register_J100 will have balance statement report information.
5881 Actually before calling this J100 register, a concurrent program will be submitted to
5882 read balance statement and income statement reports xml data. This JCP program will insert
5883 records into sped extract temparory table with some imp info like row_sequence_number(into field8),
5884 sped extract concurrent request,field1(as J100), and filed6 with amount. So by using
5885 row_sequence stored in J100 record, we need to update other fields of this register.
5886 After all Updations, update field8 as null.
5887
5888 */
5889 PROCEDURE register_J100 AS
5890 l_api_name CONSTANT VARCHAR2(30) :='register_J100';
5891 l_cnt NUMBER := 0;
5892 l_amount NUMBER := 0;
5893 l_amount_sign NUMBER := 0;
5894 l_format VARCHAR2(40);
5895 l_amount_in_char VARCHAR2(30);
5896 l_acct_type NUMBER;
5897 l_prev_acct_type NUMBER:= 0;
5898 l_row_set_name rg_report_axis_sets.name%TYPE;
5899 l_row_name rg_report_axes.description%TYPE;
5900 acct_low NUMBER;
5901 acct_high NUMBER;
5902 l_row_set_id NUMBER;
5903 l_acct_axis_seq VARCHAR2(10);
5904 l_axis_seq VARCHAR2(10);
5905 l_calc_acct_type VARCHAR2(10);
5906 l_icx_num_format VARCHAR2(50);
5907 TYPE ref_cursor is REF CURSOR;
5908 acct_cur ref_cursor;
5909 CURSOR J100_recs_by_jcp IS
5910 SELECT field6, -- amount
5911 field8 -- row_sequence
5912 FROM jl_br_sped_extr_data_t
5913 WHERE request_id = g_concurrent_request_id
5914 AND field1 = 'J100'
5915 ORDER BY record_seq;
5916
5917 CURSOR calculations_cursor IS
5918 SELECT field8
5919 FROM jl_br_sped_extr_data_t
5920 WHERE request_id = g_concurrent_request_id
5921 AND field1 = 'J100'
5922 AND field4 IS NULL;
5923
5924 BEGIN
5925
5926
5927 IF nvl(g_closing_period_flag,'N') <> 'Y' THEN
5928 RETURN;
5929 END IF;
5930
5931 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5932 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
5933 G_PKG_NAME||': '||l_api_name||'()+');
5934 END IF;
5935
5936 SELECT row_set_id
5937 INTO l_row_set_id
5938 FROM rg_reports
5939 WHERE report_id =g_balance_statement_report_id;
5940
5941 l_icx_num_format := NVL(fnd_profile.value('ICX_NUMERIC_CHARACTERS'),',.');
5942
5943 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
5944 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
5945 G_PKG_NAME||': ' ||l_api_name||'(): ICX Numeric Format: '||l_icx_num_format);
5946 END IF;
5947
5948
5949 /* SELECT fmt
5950 INTO l_format
5951 FROM (SELECT nvl2(ra.display_format,decode(instr(ra.display_format,'.'),0,'999,999,999,999',
5952 '999,999,999,999.9999'),'999,999,999,999.9999') fmt
5953 FROM rg_reports r,
5954 rg_report_axes_v ra
5955 WHERE r.report_id =g_balance_statement_report_id
5956 AND r.column_set_id =ra.axis_set_id
5957 ORDER BY ra.sequence)
5958 WHERE ROWNUM=1; */
5959
5960 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Format of number for Balance sheet report :'||l_format);
5961
5962 FOR J100_rec in J100_recs_by_jcp LOOP
5963
5964 l_amount := 0;
5965 l_amount_sign := 1;
5966
5967 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Amount before conversion :'||J100_rec.field6);
5968
5969 l_amount_in_char := trim(J100_rec.field6);
5970
5971 IF l_icx_num_format = ',.' THEN -- If the data is in 9.999,99 format changing it to 9,999.99 format
5972
5973 l_amount_in_char := translate(l_amount_in_char,'.,',',.');
5974
5975 END IF;
5976
5977
5978 IF substr(l_amount_in_char,1,1) = '<' OR substr(l_amount_in_char,1,1) = '-' THEN
5979 l_amount_sign := -1;
5980 IF substr(l_amount_in_char,1,1) = '<' THEN
5981 l_amount := to_number(substr(l_amount_in_char,2,length(l_amount_in_char)-2),'999,999,999.999999');
5982 ELSE
5983 l_amount := to_number(substr(l_amount_in_char,2,length(l_amount_in_char)-1),'999,999,999.999999');
5984 END IF;
5985 ELSE
5986 l_amount := to_number(l_amount_in_char,'999,999,999.999999');
5987 END IF;
5988
5989 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Amount after conversion :'||l_amount);
5990
5991 l_cnt := 0;
5992 SELECT COUNT(*) -- Checking for account assignements
5993 INTO l_cnt
5994 FROM rg_report_axis_contents
5995 WHERE axis_set_id = l_row_set_id
5996 AND axis_seq = J100_rec.field8;
5997
5998 IF l_cnt > 0 THEN --account assignments exists
5999 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'In acct assignments');
6000 -- FND_FILE.PUT_LINE(FND_FILE.LOG,J100_rec.field8||' '||J100_rec.field6);
6001 l_prev_acct_type := 0;
6002
6003 OPEN acct_cur FOR 'SELECT '||g_account_segment||'_LOW,'||g_account_segment||'_HIGH
6004 FROM rg_report_axis_contents
6005 WHERE axis_set_id ='|| l_row_set_id||
6006 'AND axis_seq ='||J100_rec.field8;
6007 LOOP
6008 FETCH acct_cur INTO acct_low,acct_high;
6009 EXIT WHEN acct_cur%NOTFOUND;
6010
6011 BEGIN
6012
6013 SELECT DISTINCT DECODE(DECODE(vs.flex_value, 'T', 'O', substrb( fnd_global.newline
6014 ||vs.compiled_value_attributes
6015 ||fnd_global.newline, instrb( fnd_global.newline
6016 ||vs.compiled_value_attributes
6017 ||fnd_global.newline, fnd_global.newline,1,g_account_qualifier_position)+1, 1 )),'A',1,'L',2,'O',2,null)
6018 INTO l_acct_type
6019 FROM fnd_flex_values vs
6020 WHERE flex_value_set_id = g_account_value_set_id
6021 AND flex_value BETWEEN acct_low AND acct_high;
6022
6023 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'acct_type for axis_seq '||J100_rec.field8||' is '||l_acct_type);
6024
6025 EXCEPTION
6026 WHEN NO_DATA_FOUND THEN
6027 l_acct_type := null;
6028 FND_FILE.PUT_LINE(FND_FILE.LOG,'No Account Type found for Report Id:'||g_balance_statement_report_id||' And Axis Num :'||J100_rec.field8);
6029 WHEN TOO_MANY_ROWS THEN --Multiple account types assigned for a account range.
6030 l_acct_type := null;
6031 FND_FILE.PUT_LINE(FND_FILE.LOG,'More Account Types found for Report Id:'||g_balance_statement_report_id||' And Axis Num :'||J100_rec.field8);
6032 WHEN OTHERS THEN
6033 l_acct_type := null;
6034 FND_FILE.PUT_LINE(FND_FILE.LOG,'Exception occured while fetching the Acct Type for Report Id:'||g_balance_statement_report_id||' And Axis Num :'||J100_rec.field8);
6035 FND_FILE.PUT_LINE(FND_FILE.LOG,SQLERRM);
6036 END;
6037 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Acct low: '||acct_low||' acct high: '||acct_high);
6038
6039 IF l_acct_type is not null THEN
6040 IF l_prev_acct_type <> l_acct_type THEN
6041 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'In chk'||l_prev_acct_type||' '||l_acct_type);
6042 IF l_prev_acct_type = 0 THEN
6043 l_prev_acct_type := l_acct_type;
6044 ELSE -- the Account type of multiple account assignments are not same.
6045 -- l_acct_type := null;
6046 FND_FILE.PUT_LINE(FND_FILE.LOG,'More Account Types found for Report Id:'||g_balance_statement_report_id||' And Axis Num :'||J100_rec.field8);
6047 END IF;
6048 END IF;
6049 END IF;
6050 END LOOP;
6051 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'acct_type : '||l_acct_type||'l_prev_acct_type : '||l_prev_acct_type);
6052 CLOSE acct_cur;
6053 ELSE /* If no account assignments exists (means if the fsg row is because of caluculation)*/
6054 l_acct_type := null;
6055 l_prev_acct_type := null;
6056 END IF;
6057
6058
6059 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Before Update');
6060 /*Updating J100 records for account assignments */
6061 UPDATE jl_br_sped_extr_data_t tmp
6062 SET (field2, field3,separator3,
6063 field4 ,
6064 separator4,field5, separator5,field6,separator6,
6065 field7, separator7) = (SELECT --jl_br_sped_extr_data_t_s.nextval,
6066 decode(g_agglutination_code_source,'FSG_LINE',to_char(r2.axis_seq),r2.description),
6067 r2.number_characters_indented,
6068 '|',
6069 --get_account_type(get_segment_range_value(g_account_segment,r3.axis_set_id,r3.axis_seq,'LOW')), --field4 --account qualifier for segment_low
6070 nvl(l_acct_type,l_prev_acct_type), --field4
6071 '|',
6072 r2.description,
6073 '|',
6074 TRIM(TO_CHAR(l_amount,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')),
6075 '|',
6076 decode(l_amount_sign,-1,'C','D'), --field7
6077 '|'
6078 FROM rg_reports r1
6079 ,rg_report_axes r2
6080 WHERE r1.report_id = g_balance_statement_report_id
6081 AND r1.row_set_id = r2.axis_set_id
6082 AND r2.axis_seq = J100_rec.field8)
6083 WHERE request_id = g_concurrent_request_id
6084 AND field1 = 'J100'
6085 AND field8 = J100_rec.field8;
6086 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'after Update');
6087
6088 UPDATE jl_br_sped_extr_data_t
6089 SET record_seq = jl_br_sped_extr_data_t_s.nextval,
6090 -- field8 = null,
6091 creation_date = g_creation_date,
6092 created_by = g_created_by,
6093 last_update_date = g_last_update_date,
6094 last_updated_by = g_last_updated_by,
6095 last_update_login = g_last_update_login
6096 WHERE request_id = g_concurrent_request_id
6097 AND field1 = 'J100'
6098 AND field8 = J100_rec.field8;
6099 END LOOP;
6100 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updating Acct Type for Calculation rows');
6101 FOR calc_rec in calculations_cursor LOOP
6102 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'seq: '||calc_rec.field8);
6103 l_axis_seq := trim(calc_rec.field8);
6104
6105 WHILE l_axis_seq IS NOT NULL
6106 LOOP
6107 BEGIN
6108 SELECT axis_seq_low
6109 INTO l_acct_axis_seq
6110 FROM rg_report_calculations
6111 WHERE axis_set_id = l_row_set_id
6112 AND axis_seq = l_axis_seq
6113 AND ROWNUM < 2;
6114 EXCEPTION
6115 WHEN OTHERS THEN
6116 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error while getting the acct seq for a calculation');
6117 END;
6118 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'l_acct_axis_seq: '||l_acct_axis_seq);
6119 l_cnt := 0;
6120 SELECT COUNT(*) -- Checking for account assignements
6121 INTO l_cnt
6122 FROM rg_report_axis_contents
6123 WHERE axis_set_id = l_row_set_id
6124 AND axis_seq = l_acct_axis_seq;
6125 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'l_cnt: '||l_cnt);
6126
6127 IF l_cnt >0 THEN
6128 BEGIN
6129 SELECT trim(field4)
6130 INTO l_calc_acct_type
6131 FROM jl_br_sped_extr_data_t
6132 WHERE request_id = g_concurrent_request_id
6133 AND field1 = 'J100'
6134 AND trim(field8) = trim(l_acct_axis_seq);
6135 EXCEPTION
6136 WHEN OTHERS THEN
6137 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error while getting the acct type of account''s axis_seq for calculation');
6138 END;
6139
6140 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'l_calc_acct_type: '||l_calc_acct_type);
6141 UPDATE jl_br_sped_extr_data_t
6142 SET field4 = l_calc_acct_type
6143 WHERE request_id = g_concurrent_request_id
6144 AND field1 = 'J100'
6145 AND trim(field8) = trim(calc_rec.field8) ;
6146
6147 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'after Update');
6148 EXIT;
6149 ELSE
6150 l_axis_seq := trim(l_acct_axis_seq);
6151 END IF;
6152 END LOOP;
6153 END LOOP;
6154
6155 UPDATE jl_br_sped_extr_data_t
6156 SET field8 = null
6157 WHERE request_id = g_concurrent_request_id
6158 AND field1 ='J100';
6159
6160 UPDATE jl_br_sped_extr_data_t
6161 SET field4 = null
6162 WHERE request_id = g_concurrent_request_id
6163 AND field1 ='J100'
6164 AND field4 = '0'; --field4=0 means all the accounts in the specified account assignments are of not same acct type.
6165
6166 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6167 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
6168 G_PKG_NAME||': '||l_api_name||'()-');
6169 END IF;
6170
6171 EXCEPTION
6172 WHEN OTHERS THEN
6173
6174 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6175 IF g_debug_flag = 'Y' THEN
6176 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6177 END IF;
6178 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6179 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6180 END IF;
6181 g_errbuf := 'ERROR While processing data Of J100 register '||SQLERRM;
6182 g_retcode := 2;
6183 return;
6184
6185 END register_J100;
6186
6187 PROCEDURE register_J150 AS
6188 l_api_name CONSTANT VARCHAR2(30) :='register_J150';
6189 l_cnt NUMBER := 0;
6190 l_amount NUMBER := 0;
6191 l_amount_in_char VARCHAR2(30);
6192 l_amount_sign NUMBER := 0;
6193 l_format VARCHAR2(40);
6194 l_row_set_id NUMBER;
6195 l_icx_num_format VARCHAR2(50);
6196 TYPE ref_cursor is REF CURSOR;
6197 acct_cur ref_cursor;
6198 CURSOR J150_recs_by_jcp IS
6199 SELECT field5, -- amount
6200 field8 -- row_sequence
6201 FROM jl_br_sped_extr_data_t
6202 WHERE request_id = g_concurrent_request_id
6203 AND field1 = 'J150'
6204 ORDER BY record_seq;
6205 BEGIN
6206
6207 IF nvl(g_closing_period_flag,'N') <> 'Y' THEN
6208 RETURN;
6209 END IF;
6210
6211 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6212 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
6213 G_PKG_NAME||': '||l_api_name||'()+');
6214 END IF;
6215
6216 SELECT row_set_id
6217 INTO l_row_set_id
6218 FROM rg_reports
6219 WHERE report_id =g_income_statement_report_id;
6220
6221 l_icx_num_format :=fnd_profile.value('ICX_NUMERIC_CHARACTERS');
6222
6223 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
6224 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
6225 G_PKG_NAME||': ' ||l_api_name||'(): ICX Numeric Format: '||l_icx_num_format);
6226 END IF;
6227
6228 /* SELECT fmt
6229 INTO l_format
6230 FROM (SELECT nvl2(ra.display_format,decode(instr(ra.display_format,'.'),0,'999,999,999,999',
6231 '999,999,999,999.9999'),'999,999,999,999.9999') fmt
6232 FROM rg_reports r,
6233 rg_report_axes_v ra
6234 WHERE r.report_id =g_income_statement_report_id
6235 AND r.column_set_id =ra.axis_set_id
6236 ORDER BY ra.sequence)
6237 WHERE ROWNUM=1; */
6238
6239 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Format of number for Income statement report :'||l_format);
6240
6241 FOR J150_rec IN J150_recs_by_jcp LOOP
6242 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'IN LOOP'||J150_rec.field8||J150_rec.field5);
6243
6244
6245 l_amount := 0;
6246 l_amount_sign := 1;
6247
6248 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Amount before conversion :'||J150_rec.field5);
6249 l_amount_in_char := trim(J150_rec.field5);
6250
6251 IF l_icx_num_format = ',.' THEN -- If the data is in 9.999,99 format changing it to 9,999.99 format
6252
6253 l_amount_in_char := translate(l_amount_in_char,'.,',',.');
6254
6255 END IF;
6256
6257 IF substr(l_amount_in_char,1,1) = '<' OR substr(l_amount_in_char,1,1) = '-' THEN
6258 l_amount_sign := -1;
6259 IF substr(l_amount_in_char,1,1) = '<' THEN
6260 l_amount := to_number(substr(l_amount_in_char,2,length(l_amount_in_char)-2),'999,999,999.999999');
6261 ELSE
6262 l_amount := to_number(substr(l_amount_in_char,2,length(l_amount_in_char)-1),'999,999,999.999999');
6263 END IF;
6264 ELSE
6265 l_amount := to_number(l_amount_in_char,'999,999,999.999999');
6266 END IF;
6267
6268 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Amount after conversion :'||l_amount);
6269
6270 l_cnt := 0;
6271 SELECT COUNT(*) -- Checking for account assignements
6272 INTO l_cnt
6273 FROM rg_report_axis_contents
6274 WHERE axis_set_id = l_row_set_id
6275 AND axis_seq = J150_rec.field8;
6276
6277 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'After cnt'||l_cnt);
6278
6279 IF l_cnt > 0 THEN --account assignments exists
6280
6281 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'In acct assignments');
6282 -- FND_FILE.PUT_LINE(FND_FILE.LOG,J150_rec.field8||' '||J150_rec.field5);
6283
6284
6285 UPDATE jl_br_sped_extr_data_t tmp
6286 SET (field2, field3,separator3, field4 ,separator4,field5,separator5,
6287 field6, separator6) = (SELECT --jl_br_sped_extr_data_t_s.nextval,
6288 decode(g_agglutination_code_source,'FSG_LINE',to_char(r2.axis_seq),r2.description), --field2
6289 r2.number_characters_indented, --field3
6290 '|',
6291 r2.description, --field4
6292 '|',
6293 TRIM(TO_CHAR(l_amount,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')),
6294 '|',
6295 decode(l_amount_sign,-1,'R','D'), --field6
6296 '|'
6297 FROM rg_report_axes r2
6298 WHERE r2.axis_set_id = l_row_set_id
6299 AND r2.axis_seq = J150_rec.field8
6300 AND ROWNUM = 1) --There may exist multiple records in rg_report_contents for a axis_set_id and axis_seq
6301 WHERE request_id = g_concurrent_request_id
6302 AND field1 = 'J150'
6303 AND field8 = J150_rec.field8;
6304 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'After update of account assignements');
6305
6306 ELSE -- If the row is of type calculations.
6307 UPDATE jl_br_sped_extr_data_t tmp
6308 SET (field2, field3,separator3, field4 ,separator4,field5,separator5,
6309 field6, separator6) = (SELECT --jl_br_sped_extr_data_t_s.nextval,
6310 decode(g_agglutination_code_source,'FSG_LINE',to_char(r2.axis_seq),r2.description), --field2
6311 r2.number_characters_indented, --field3
6312 '|',
6313 r2.description, --field4
6314 '|',
6315 TRIM(TO_CHAR(l_amount,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')),
6316 '|',
6317 decode(l_amount_sign,-1,'P','N'), --field6
6318 '|'
6319 FROM rg_report_axes r2
6320 WHERE r2.axis_set_id = l_row_set_id
6321 AND r2.axis_seq = J150_rec.field8
6322 AND ROWNUM = 1) --There may exist multiple records in rg_report_calculations for a axis_set_id and axis_seq
6323 WHERE request_id = g_concurrent_request_id
6324 AND field1 = 'J150'
6325 AND field8 = J150_rec.field8;
6326 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'After update of calculations');
6327 END IF;
6328
6329 UPDATE jl_br_sped_extr_data_t
6330 SET record_seq = jl_br_sped_extr_data_t_s.nextval,
6331 field8 = null,
6332 creation_date = g_creation_date,
6333 created_by = g_created_by,
6334 last_update_date = g_last_update_date,
6335 last_updated_by = g_last_updated_by,
6336 last_update_login = g_last_update_login
6337 WHERE request_id = g_concurrent_request_id
6338 AND field1 = 'J150'
6339 AND field8 = J150_rec.field8;
6340
6341 END LOOP;
6342
6343 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6344 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
6345 G_PKG_NAME||': '||l_api_name||'()-');
6346 END IF;
6347
6348 EXCEPTION
6349 WHEN OTHERS THEN
6350
6351 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6352 IF g_debug_flag = 'Y' THEN
6353 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6354 END IF;
6355 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6356 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6357 END IF;
6358 g_errbuf := 'ERROR While processing data Of J150 register'||SQLERRM;
6359 g_retcode := 2;
6360 return;
6361
6362 END register_J150;
6363
6364 PROCEDURE register_J800 AS
6365 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_J800';
6366 l_file_id fnd_attached_docs_form_vl.media_id%TYPE;
6367 l_lob_data BLOB;
6368 l_data_length NUMBER;
6369 l_amount_to_read NUMBER := 255;
6370 l_data_var_raw RAW(255);
6371 l_data_var_char VARCHAR2(255);
6372 l_read_length NUMBER := 1;
6373 CURSOR file_ids_cur(p_journal_for_rtf NUMBER) IS
6374 SELECT DISTINCT media_id file_id
6375 FROM fnd_attached_docs_form_vl
6376 WHERE entity_name = 'GL_JE_HEADERS'
6377 AND pk2_value = p_journal_for_rtf
6378 AND file_name like '%.txt';
6379 BEGIN
6380
6381 IF nvl(g_closing_period_flag,'N') <> 'Y' THEN
6382 RETURN;
6383 END IF;
6384
6385 IF g_journal_for_rtf IS NULL THEN
6386 RETURN;
6387 END IF;
6388
6389 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Journal for RTF is :'||g_journal_for_rtf);
6390
6391 IF g_bookkeeping_type = 'G' OR g_bookkeeping_type = 'R' OR g_bookkeeping_type = 'B' THEN
6392
6393 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6394 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
6395 G_PKG_NAME||': '||l_api_name||'()+');
6396 END IF;
6397
6398 FOR l_file_ids_rec IN file_ids_cur(g_journal_for_rtf) LOOP
6399
6400 l_read_length := 1; --reinitializing for next file
6401
6402 BEGIN
6403
6404 SELECT file_data
6405 INTO l_lob_data
6406 FROM FND_LOBS
6407 WHERE file_id = l_file_ids_rec.file_id;
6408
6409 EXCEPTION
6410 WHEN NO_DATA_FOUND THEN
6411 EXIT;
6412 WHEN OTHERS THEN
6413 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6414 IF g_debug_flag = 'Y' THEN
6415 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6416 END IF;
6417 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6418 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6419 END IF;
6420 END;
6421
6422 l_data_length := DBMS_LOB.GETLENGTH(l_lob_data); --getting the total length of rtf file
6423
6424 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): Length of '||l_file_ids_rec.file_id ||' is:' ||l_data_length);
6425
6426 WHILE (l_read_length < l_data_length )
6427 LOOP
6428
6429 DBMS_LOB.READ(l_lob_data,l_amount_to_read,l_read_length,l_data_var_raw); --reading lob data. l_amount_to_read is IN OUT parameter.
6430
6431 l_data_var_char := UTL_RAW.CAST_TO_VARCHAR2(TO_CHAR(l_data_var_raw));
6432
6433 INSERT INTO jl_br_sped_extr_data_t
6434 (request_id,
6435 block,
6436 record_seq,
6437 field1,
6438 separator1,
6439 field2,
6440 separator2,
6441 field3,
6442 separator3,
6443 created_by,
6444 creation_date,
6445 last_updated_by,
6446 last_update_date,
6447 last_update_login)
6448 VALUES (g_concurrent_request_id,
6449 'J',
6450 jl_br_sped_extr_data_t_s.nextval,
6451 decode(l_read_length,1,'J800',null), --filed1
6452 decode(l_read_length,1,'|',null), --seperator1
6453 l_data_var_char, --field2
6454 decode(sign(l_data_length - (l_read_length + l_amount_to_read)),1,null,'|'), --separator2
6455 decode(sign(l_data_length - (l_read_length + l_amount_to_read)),1,null,'J800FIM'), --field3
6456 decode(sign(l_data_length - (l_read_length + l_amount_to_read)),1,null,'|'), --separator3
6457 g_created_by,
6458 g_creation_date,
6459 g_last_updated_by,
6460 g_last_update_date,
6461 g_last_update_login
6462 );
6463
6464 l_read_length := l_read_length + l_amount_to_read ;
6465
6466 END LOOP; -- for while
6467 END LOOP; -- for cursor loop
6468
6469 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6470 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
6471 G_PKG_NAME||': ' ||l_api_name||'()-');
6472 END IF;
6473
6474 END IF; -- End for book keeping type checking
6475
6476 EXCEPTION
6477 WHEN OTHERS THEN
6478 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6479 IF g_debug_flag = 'Y' THEN
6480 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6481 END IF;
6482 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6483 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6484 END IF;
6485 g_errbuf := 'ERROR While inserting data into J800 register'||SQLERRM;
6486 g_retcode := 2;
6487 return;
6488
6489 END register_J800;
6490
6491
6492 PROCEDURE register_J900 AS
6493 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_J900';
6494 l_booktype_desc VARCHAR2(80);
6495 l_book_number NUMBER; -- change
6496 l_company_name VARCHAR2(200);
6497 BEGIN
6498
6499 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6500 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
6501 G_PKG_NAME||': '||l_api_name||'()+');
6502 END IF;
6503
6504 SELECT SUBSTR(meaning,1,80)
6505 INTO l_booktype_desc
6506 FROM fnd_lookups
6507 WHERE lookup_type = 'JLBR_SPED_BOOK_TYPES'
6508 AND lookup_code = g_bookkeeping_type;
6509
6510 BEGIN
6511
6512 SELECT book_number
6513 INTO l_book_number
6514 FROM jl_br_cinfos_books
6515 WHERE ((upper(g_accounting_type) = 'DECENTRALIZED' AND legal_entity_id = g_legal_entity_id AND establishment_id IS NULL)
6516 OR (upper(g_accounting_type) = 'CENTRALIZED' AND g_establishment_id IS NULL AND legal_entity_id = g_legal_entity_id)
6517 OR (upper(g_accounting_type) = 'CENTRALIZED' AND g_establishment_id IS NOT NULL AND legal_entity_id = g_legal_entity_id AND establishment_id=g_establishment_id))
6518 AND bookkeeping_type = substrb(g_bookkeeping_type,1,1)
6519 AND auxiliary_book_flag = 'N';
6520
6521 EXCEPTION
6522 WHEN NO_DATA_FOUND THEN
6523 l_book_number := null;
6524 WHEN OTHERS THEN
6525 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6526 IF g_debug_flag = 'Y' THEN
6527 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6528 END IF;
6529 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6530 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6531 END IF;
6532 END;
6533
6534
6535 INSERT INTO jl_br_sped_extr_data_t
6536 (request_id,
6537 block,
6538 record_seq,
6539 field1,
6540 separator1,
6541 field2,
6542 separator2,
6543 field3,
6544 separator3,
6545 field4,
6546 separator4,
6547 field5,
6548 separator5,
6549 field6,
6550 separator6,
6551 field7,
6552 separator7,
6553 field8,
6554 separator8,
6555 created_by,
6556 creation_date,
6557 last_updated_by,
6558 last_update_date,
6559 last_update_login)
6560 VALUES (g_concurrent_request_id,
6561 'J', --block
6562 jl_br_sped_extr_data_t_s.nextval, --record_seq
6563 'J900', --Register (field1)
6564 '|',
6565 'TERMO DE ENCERRAMENTO', -- field2
6566 '|',
6567 l_book_number, --field3
6568 '|',
6569 l_booktype_desc, -- field4
6570 '|',
6571 g_company_name,
6572 -- decode(upper(g_accounting_type),'DECENTRALIZED',g_legal_entity_name,NVL(g_establishment_name,g_legal_entity_name)) , --field5
6573 '|',
6574 null, --field6
6575 '|',
6576 to_char(g_start_date,'ddmmyyyy'), --field7
6577 '|',
6578 to_char(g_end_date,'ddmmyyyy'), --field8
6579 '|',
6580 g_created_by,
6581 g_creation_date,
6582 g_last_updated_by,
6583 g_last_update_date,
6584 g_last_update_login );
6585
6586
6587 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
6588
6589 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6590 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
6591 G_PKG_NAME||': ' ||l_api_name||'()-');
6592 END IF;
6593
6594 EXCEPTION
6595 WHEN OTHERS THEN
6596
6597 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6598 IF g_debug_flag = 'Y' THEN
6599 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6600 END IF;
6601 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6602 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6603 END IF;
6604 g_errbuf := 'ERROR While inserting data into J900 register'||SQLERRM;
6605 g_retcode := 2;
6606 return;
6607
6608 END register_J900;
6609
6610
6611 --J930 Logic : (contact info)
6612
6613 PROCEDURE register_J930 AS
6614 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_J930';
6615 BEGIN
6616
6617 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6618 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
6619 G_PKG_NAME||': '||l_api_name||'()+');
6620 END IF;
6621
6622 IF ((upper(g_accounting_type) = 'CENTRALIZED' AND g_establishment_id is null) --LE is the company
6623 OR upper(g_accounting_type) = 'DECENTRALIZED')
6624 THEN
6625
6626 INSERT INTO jl_br_sped_extr_data_t
6627 (request_id,
6628 block,
6629 record_seq,
6630 field1,
6631 separator1,
6632 field2,
6633 separator2,
6634 field3,
6635 separator3,
6636 field4,
6637 separator4,
6638 field5,
6639 separator5,
6640 field6,
6641 separator6,
6642 created_by,
6643 creation_date,
6644 last_updated_by,
6645 last_update_date,
6646 last_update_login)
6647 select g_concurrent_request_id,
6648 'J',
6649 jl_br_sped_extr_data_t_s.nextval,
6650 'J930',
6651 '|',
6652 hp.party_name,
6653 '|',
6654 hp.jgzz_fiscal_code,
6655 '|',
6656 lk.meaning,
6657 '|',
6658 crole.lookup_code,
6659 '|',
6660 hp.person_identifier,
6661 '|',
6662 g_created_by,
6663 g_creation_date,
6664 g_last_updated_by,
6665 g_last_update_date,
6666 g_last_update_login
6667 from xle_entity_profiles le,
6668 xle_contact_legal_roles crole,
6669 hz_parties hp,
6670 xle_lookups lk
6671 where le.legal_entity_id =g_legal_entity_id
6672 and le.party_id = crole.le_etb_party_id
6673 and crole.source_table = 'XLE_ENTITY_PROFILES'
6674 and crole.lookup_type = 'XLE_CONTACT_ROLE'
6675 and crole.contact_party_id = hp.party_id
6676 and lk.lookup_type = crole.lookup_type
6677 and lk.lookup_code = crole.lookup_code;
6678
6679 ELSE -- means running in 'CENTRALIZED' mode and establishment acts as company
6680
6681 INSERT INTO jl_br_sped_extr_data_t
6682 (request_id,
6683 block,
6684 record_seq,
6685 field1,
6686 separator1,
6687 field2,
6688 separator2,
6689 field3,
6690 separator3,
6691 field4,
6692 separator4,
6693 field5,
6694 separator5,
6695 field6,
6696 separator6,
6697 created_by,
6698 creation_date,
6699 last_updated_by,
6700 last_update_date,
6701 last_update_login)
6702 select g_concurrent_request_id,
6703 'J',
6704 jl_br_sped_extr_data_t_s.nextval,
6705 'J930',
6706 '|',
6707 hp.party_name,
6708 '|',
6709 hp.jgzz_fiscal_code,
6710 '|',
6711 lk.meaning,
6712 '|',
6713 crole.lookup_code,
6714 '|',
6715 hp.person_identifier,
6716 '|',
6717 g_created_by,
6718 g_creation_date,
6719 g_last_updated_by,
6720 g_last_update_date,
6721 g_last_update_login
6722 from xle_etb_profiles etb,
6723 xle_contact_legal_roles crole,
6724 hz_parties hp,
6725 xle_lookups lk
6726 where etb.legal_entity_id =g_legal_entity_id
6727 and etb.establishment_id =g_establishment_id
6728 and etb.party_id = crole.le_etb_party_id
6729 and crole.source_table = 'XLE_ETB_PROFILES'
6730 and crole.lookup_type = 'XLE_CONTACT_ROLE'
6731 and crole.contact_party_id = hp.party_id
6732 and lk.lookup_type = crole.lookup_type
6733 and lk.lookup_code = crole.lookup_code;
6734
6735 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6736 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
6737 G_PKG_NAME||': ' ||l_api_name||'()-');
6738 END IF;
6739 END IF;
6740
6741 EXCEPTION
6742 WHEN OTHERS THEN
6743
6744 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6745 IF g_debug_flag = 'Y' THEN
6746 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6747 END IF;
6748 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6749 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6750 END IF;
6751 g_errbuf := 'ERROR While inserting data into J930 register'||SQLERRM;
6752 g_retcode := 2;
6753 return;
6754
6755 END register_J930;
6756
6757 PROCEDURE register_J990 AS
6758 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_J990';
6759
6760 BEGIN
6761
6762 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6763 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
6764 G_PKG_NAME||': '||l_api_name||'()+');
6765 END IF;
6766
6767 INSERT INTO jl_br_sped_extr_data_t
6768 (request_id,
6769 block,
6770 record_seq,
6771 field1,
6772 separator1,
6773 field2,
6774 separator2,
6775 created_by,
6776 creation_date,
6777 last_updated_by,
6778 last_update_date,
6779 last_update_login)
6780 VALUES( g_concurrent_request_id,
6781 'J', --block
6782 jl_br_sped_extr_data_t_s.nextval, --record_seq
6783 'J990', --Register (field1)
6784 '|',
6785 null, --count(*), --field2
6786 '|',
6787 g_created_by,
6788 g_creation_date,
6789 g_last_updated_by,
6790 g_last_update_date,
6791 g_last_update_login);
6792
6793 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
6794
6795 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6796 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
6797 G_PKG_NAME||': ' ||l_api_name||'()-');
6798 END IF;
6799
6800 EXCEPTION
6801 WHEN OTHERS THEN
6802
6803 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6804 IF g_debug_flag = 'Y' THEN
6805 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6806 END IF;
6807 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6808 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6809 END IF;
6810 g_errbuf := 'ERROR While inserting data into J990 register'||SQLERRM;
6811 g_retcode := 2;
6812 return;
6813 END register_J990;
6814
6815 /* This procedure inserts one record through which we can identify whether data is
6816 reported for block '9' or not
6817 0- Block with data reported;
6818 1- Block without data reported */
6819
6820 PROCEDURE register_9001 AS
6821 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_9001';
6822
6823 BEGIN
6824
6825 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6826 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
6827 G_PKG_NAME||': '||l_api_name||'()+');
6828 END IF;
6829
6830 INSERT INTO jl_br_sped_extr_data_t
6831 (request_id,
6832 block,
6833 record_seq,
6834 field1,
6835 separator1,
6836 field2,
6837 separator2,
6838 created_by,
6839 creation_date,
6840 last_updated_by,
6841 last_update_date,
6842 last_update_login)
6843 VALUES( g_concurrent_request_id,
6844 '9', --block
6845 jl_br_sped_extr_data_t_s.nextval, --record_seq
6846 '9001', --Register (field1)
6847 '|',
6848 0,--null, --decode(count(*),0,1,0), --field2
6849 '|',
6850 g_created_by,
6851 g_creation_date,
6852 g_last_updated_by,
6853 g_last_update_date,
6854 g_last_update_login );
6855
6856 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
6857
6858 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6859 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
6860 G_PKG_NAME||': ' ||l_api_name||'()-');
6861 END IF;
6862
6863 EXCEPTION
6864 WHEN OTHERS THEN
6865
6866 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
6867 IF g_debug_flag = 'Y' THEN
6868 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
6869 END IF;
6870 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
6871 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
6872 END IF;
6873 g_errbuf := 'ERROR While inserting data into 9001 register'||SQLERRM;
6874 g_retcode := 2;
6875 return;
6876
6877 END register_9001;
6878
6879 /* This procedure will inserts one row for each register got created by this extract prg.
6880 Each row contains the details like the register_name and total number of lines
6881 created for that register */
6882
6883 PROCEDURE register_9900 AS
6884 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_9900';
6885
6886 BEGIN
6887
6888 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
6889 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
6890 G_PKG_NAME||': '||l_api_name||'()+');
6891 END IF;
6892
6893 INSERT INTO jl_br_sped_extr_data_t
6894 (request_id,
6895 block,
6896 record_seq,
6897 field1,
6898 separator1,
6899 field2,
6900 separator2,
6901 field3,
6902 separator3,
6903 created_by,
6904 creation_date,
6905 last_updated_by,
6906 last_update_date,
6907 last_update_login)
6908 SELECT g_concurrent_request_id,
6909 '9', --block
6910 jl_br_sped_extr_data_t_s.nextval, --record_seq
6911 '9900', --Register (field1)
6912 '|',
6913 reg, --field2
6914 '|',
6915 cnt,
6916 '|',
6917 g_created_by,
6918 g_creation_date,
6919 g_last_updated_by,
6920 g_last_update_date,
6921 g_last_update_login
6922 FROM (SELECT field1 reg,
6923 COUNT(*) cnt
6924 FROM jl_br_sped_extr_data_t
6925 WHERE request_id = g_concurrent_request_id
6926 AND field1 IS NOT NULL
6927 AND field1 <> '9001'
6928 GROUP BY field1);
6929
6930 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
6931
6932 /*9900 register should contain the number of records for each register.
6933 At the time of call to this register_9900, records doesn't exists for 9900, 9990 and 9999 registers.
6934 So need to insert the records 9990 and 9999 registers*/
6935 INSERT INTO jl_br_sped_extr_data_t
6936 (request_id,
6937 block,
6938 record_seq,
6939 field1,
6940 separator1,
6941 field2,
6942 separator2,
6943 field3,
6944 separator3,
6945 created_by,
6946 creation_date,
6947 last_updated_by,
6948 last_update_date,
6949 last_update_login)
6950 VALUES (g_concurrent_request_id,
6951 '9', --block
6952 jl_br_sped_extr_data_t_s.nextval, --record_seq
6953 '9900', --Register (field1)
6954 '|',
6955 '9001', --field2
6956 '|',
6957 1,
6958 '|',
6959 g_created_by,
6960 g_creation_date,
6961 g_last_updated_by,
6962 g_last_update_date,
6963 g_last_update_login );
6964
6965 INSERT INTO jl_br_sped_extr_data_t
6966 (request_id,
6967 block,
6968 record_seq,
6969 field1,
6970 separator1,
6971 field2,
6972 separator2,
6973 field3,
6974 separator3,
6975 created_by,
6976 creation_date,
6977 last_updated_by,
6978 last_update_date,
6979 last_update_login)
6980 VALUES (g_concurrent_request_id,
6981 '9', --block
6982 jl_br_sped_extr_data_t_s.nextval, --record_seq
6983 '9900', --Register (field1)
6984 '|',
6985 '9900', --field2
6986 '|',
6987 1,
6988 '|',
6989 g_created_by,
6990 g_creation_date,
6991 g_last_updated_by,
6992 g_last_update_date,
6993 g_last_update_login );
6994
6995 INSERT INTO jl_br_sped_extr_data_t
6996 (request_id,
6997 block,
6998 record_seq,
6999 field1,
7000 separator1,
7001 field2,
7002 separator2,
7003 field3,
7004 separator3,
7005 created_by,
7006 creation_date,
7007 last_updated_by,
7008 last_update_date,
7009 last_update_login)
7010 VALUES (g_concurrent_request_id,
7011 '9', --block
7012 jl_br_sped_extr_data_t_s.nextval, --record_seq
7013 '9900', --Register (field1)
7014 '|',
7015 '9990', --field2
7016 '|',
7017 1,
7018 '|',
7019 g_created_by,
7020 g_creation_date,
7021 g_last_updated_by,
7022 g_last_update_date,
7023 g_last_update_login );
7024
7025 INSERT INTO jl_br_sped_extr_data_t
7026 (request_id,
7027 block,
7028 record_seq,
7029 field1,
7030 separator1,
7031 field2,
7032 separator2,
7033 field3,
7034 separator3,
7035 created_by,
7036 creation_date,
7037 last_updated_by,
7038 last_update_date,
7039 last_update_login)
7040 VALUES (g_concurrent_request_id,
7041 '9', --block
7042 jl_br_sped_extr_data_t_s.nextval, --record_seq
7043 '9900', --Register (field1)
7044 '|',
7045 '9999', --field2
7046 '|',
7047 1,
7048 '|',
7049 g_created_by,
7050 g_creation_date,
7051 g_last_updated_by,
7052 g_last_update_date,
7053 g_last_update_login );
7054
7055
7056 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7057 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
7058 G_PKG_NAME||': ' ||l_api_name||'()-');
7059 END IF;
7060
7061 EXCEPTION
7062 WHEN OTHERS THEN
7063
7064 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7065 IF g_debug_flag = 'Y' THEN
7066 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
7067 END IF;
7068 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
7069 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
7070 END IF;
7071 g_errbuf := 'ERROR While inserting data into 9900 register'||SQLERRM;
7072 g_retcode := 2;
7073 return;
7074
7075 END register_9900;
7076
7077 /* This register contains total number of lines generated in block '9' */
7078 PROCEDURE register_9990 AS
7079 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_9990';
7080
7081 BEGIN
7082
7083 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7084 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
7085 G_PKG_NAME||': '||l_api_name||'()+');
7086 END IF;
7087
7088 INSERT INTO jl_br_sped_extr_data_t
7089 (request_id,
7090 block,
7091 record_seq,
7092 field1,
7093 separator1,
7094 field2,
7095 separator2,
7096 created_by,
7097 creation_date,
7098 last_updated_by,
7099 last_update_date,
7100 last_update_login)
7101 VALUES( g_concurrent_request_id,
7102 '9', --block
7103 jl_br_sped_extr_data_t_s.nextval, --record_seq
7104 '9990', --Register (field1)
7105 '|',
7106 null, --count(*), --field2
7107 '|',
7108 g_created_by,
7109 g_creation_date,
7110 g_last_updated_by,
7111 g_last_update_date,
7112 g_last_update_login );
7113
7114 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
7115
7116 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7117 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
7118 G_PKG_NAME||': ' ||l_api_name||'()-');
7119 END IF;
7120
7121 EXCEPTION
7122 WHEN OTHERS THEN
7123
7124 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7125 IF g_debug_flag = 'Y' THEN
7126 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
7127 END IF;
7128 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
7129 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
7130 END IF;
7131 g_errbuf := 'ERROR While inserting data into 9990 register'||SQLERRM;
7132 g_retcode := 2;
7133 return;
7134
7135 END register_9990;
7136
7137 /* This register contains total number of lines generated for sped file */
7138
7139 PROCEDURE register_9999 AS
7140 l_api_name CONSTANT VARCHAR2(30) :='REGISTER_9999';
7141
7142 BEGIN
7143
7144 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7145 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
7146 G_PKG_NAME||': '||l_api_name||'()+');
7147 END IF;
7148
7149 INSERT INTO jl_br_sped_extr_data_t
7150 (request_id,
7151 block,
7152 record_seq,
7153 field1,
7154 separator1,
7155 field2,
7156 separator2,
7157 created_by,
7158 creation_date,
7159 last_updated_by,
7160 last_update_date,
7161 last_update_login)
7162 VALUES( g_concurrent_request_id,
7163 '9', --block
7164 jl_br_sped_extr_data_t_s.nextval, --record_seq
7165 '9999', --Register (field1)
7166 '|',
7167 null, --count(*), --field2 This field will be updated in update_register_cnt proc at the end of data extraction
7168 '|',
7169 g_created_by,
7170 g_creation_date,
7171 g_last_updated_by,
7172 g_last_update_date,
7173 g_last_update_login);
7174
7175 -- FND_FILE.PUT_LINE(FND_FILE.LOG, G_PKG_NAME||': '||l_api_name||'(): No of Records Inserted:' ||SQL%ROWCOUNT);
7176
7177 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7178 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
7179 G_PKG_NAME||': ' ||l_api_name||'()-');
7180 END IF;
7181
7182 EXCEPTION
7183 WHEN OTHERS THEN
7184
7185 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7186 IF g_debug_flag = 'Y' THEN
7187 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
7188 END IF;
7189 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
7190 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
7191 END IF;
7192 g_errbuf := 'ERROR While inserting data into 9999 register'||SQLERRM;
7193 g_retcode := 2;
7194 return;
7195
7196 END register_9999;
7197
7198 PROCEDURE update_register_cnt AS
7199 l_api_name CONSTANT VARCHAR2(30) :='UPDATE_REGISTER_CNT';
7200 BEGIN
7201
7202 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7203 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
7204 G_PKG_NAME||': '||l_api_name||'()+');
7205 END IF;
7206
7207 /*This procedure is to update the details about number of records inserted into sped temp table.
7208 This will be called at the end of data extraction(after calling all registers) as
7209 the insertion of data will be completed at this time.
7210 */
7211
7212 UPDATE jl_br_sped_extr_data_t
7213 SET field2 = (SELECT DECODE(COUNT(*),0,1,0)
7214 FROM jl_br_sped_extr_data_t
7215 WHERE block='0'
7216 AND request_id = g_concurrent_request_id)
7217 WHERE field1 = '0001'
7218 AND request_id = g_concurrent_request_id;
7219
7220 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated 0001 register');
7221
7222 UPDATE jl_br_sped_extr_data_t
7223 SET field2 = (SELECT COUNT(*)
7224 FROM jl_br_sped_extr_data_t
7225 WHERE block='0'
7226 AND request_id = g_concurrent_request_id)
7227 WHERE field1 = '0990'
7228 AND request_id = g_concurrent_request_id;
7229
7230 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated 0990 register');
7231
7232 UPDATE jl_br_sped_extr_data_t
7233 SET field2 = (SELECT DECODE(COUNT(*),0,1,0)
7234 FROM jl_br_sped_extr_data_t
7235 WHERE block='I'
7236 AND request_id = g_concurrent_request_id)
7237 WHERE field1 = 'I001'
7238 AND request_id = g_concurrent_request_id;
7239
7240 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated I001 register');
7241
7242 UPDATE jl_br_sped_extr_data_t
7243 SET field2 = (SELECT COUNT(*)
7244 FROM jl_br_sped_extr_data_t
7245 WHERE block='I'
7246 AND request_id = g_concurrent_request_id)
7247 WHERE field1 = 'I990'
7248 AND request_id = g_concurrent_request_id;
7249
7250 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated I990 register');
7251
7252 UPDATE jl_br_sped_extr_data_t
7253 SET field2 = (SELECT DECODE(COUNT(*),0,1,0)
7254 FROM jl_br_sped_extr_data_t
7255 WHERE block='J'
7256 AND request_id = g_concurrent_request_id)
7257 WHERE field1 = 'J001'
7258 AND request_id = g_concurrent_request_id;
7259
7260 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated J001 register');
7261
7262 UPDATE jl_br_sped_extr_data_t
7263 SET field6 = (SELECT COUNT(*)
7264 FROM jl_br_sped_extr_data_t
7265 WHERE request_id = g_concurrent_request_id
7266 AND field1 IS NOT NULL)
7267 WHERE field1 = 'J900'
7268 AND request_id = g_concurrent_request_id;
7269
7270 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated J990 register');
7271
7272 UPDATE jl_br_sped_extr_data_t
7273 SET field2 = (SELECT COUNT(*)
7274 FROM jl_br_sped_extr_data_t
7275 WHERE block='J'
7276 AND request_id = g_concurrent_request_id
7277 AND field1 IS NOT NULL)
7278 WHERE field1 = 'J990'
7279 AND request_id = g_concurrent_request_id;
7280
7281 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated J990 register');
7282
7283 UPDATE jl_br_sped_extr_data_t
7284 SET field2 = (SELECT DECODE(COUNT(*),0,1,0)
7285 FROM jl_br_sped_extr_data_t
7286 WHERE block='9'
7287 AND request_id = g_concurrent_request_id)
7288 WHERE field1 = '9001'
7289 AND request_id = g_concurrent_request_id;
7290
7291 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated 9001 register');
7292
7293 UPDATE jl_br_sped_extr_data_t
7294 SET field3 = (SELECT COUNT(*)
7295 FROM jl_br_sped_extr_data_t
7296 WHERE field1='9900'
7297 AND request_id = g_concurrent_request_id)
7298 WHERE field1 = '9900'
7299 AND field2 = '9900'
7300 AND request_id = g_concurrent_request_id;
7301
7302 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated 9900 register');
7303
7304 UPDATE jl_br_sped_extr_data_t
7305 SET field2 = (SELECT COUNT(*)
7306 FROM jl_br_sped_extr_data_t
7307 WHERE block='9'
7308 AND request_id = g_concurrent_request_id)
7309 WHERE field1 = '9990'
7310 AND request_id = g_concurrent_request_id;
7311
7312 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated 9990 register');
7313
7314 UPDATE jl_br_sped_extr_data_t
7315 SET field5 = (SELECT COUNT(*)
7316 FROM jl_br_sped_extr_data_t
7317 WHERE request_id = g_concurrent_request_id
7318 AND field1 IS NOT NULL)
7319 WHERE field1 = 'I030'
7320 AND request_id = g_concurrent_request_id;
7321
7322 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated I030 register');
7323
7324 UPDATE jl_br_sped_extr_data_t
7325 SET field2 = (SELECT COUNT(*)
7326 FROM jl_br_sped_extr_data_t
7327 WHERE request_id = g_concurrent_request_id
7328 AND field1 IS NOT NULL)
7329 WHERE field1 = '9999'
7330 AND request_id = g_concurrent_request_id;
7331
7332 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Updated 9999 register');
7333
7334 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7335 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
7336 G_PKG_NAME||': '||l_api_name||'()-');
7337 END IF;
7338
7339 EXCEPTION
7340 WHEN OTHERS THEN
7341
7342 g_error_buffer := sqlcode || ': ' || SUBSTR(SQLERRM, 1, 80);
7343 IF g_debug_flag = 'Y' THEN
7344 FND_FILE.PUT_LINE(FND_FILE.LOG, g_error_buffer);
7345 END IF;
7346 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
7347 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
7348 END IF;
7349
7350 END update_register_cnt;
7351
7352 PROCEDURE validation_before_extract AS
7353 l_cnt NUMBER := 0;
7354 l_prev_bk_type VARCHAR2(3);
7355 l_journalsource_check NUMBER := 0 ;
7356 BEGIN
7357 --BEGIN: Special situation Start and End Date vaidaion
7358 BEGIN
7359 IF g_special_situation_indicator IS NOT NULL THEN
7360
7361 SELECT COUNT(*)
7362 INTO l_cnt
7363 FROM gl_periods gp,
7364 gl_ledgers gl
7365 WHERE gp.period_set_name = gl.period_set_name
7366 AND gl.ledger_id = g_ledger_id
7367 AND g_start_date >= gp.start_date
7368 AND g_end_date <= gp.end_date ;
7369
7370 IF l_cnt = 0 THEN
7371 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_SPEC_SIT_DATE_CHECK');
7372 g_errbuf := FND_MESSAGE.GET;
7373 --g_errbuf := 'Start and End dates do not belong to same period';
7374 g_retcode := 2;
7375 return;
7376 END IF;
7377
7378 END IF;
7379 EXCEPTION
7380 WHEN OTHERS THEN
7381 FND_FILE.PUT_LINE(FND_FILE.LOG, SQLCODE||' : '||SUBSTR(SQLERRM,1,80));
7382 g_errbuf := 'Issue while validation of the special situation start and end date';
7383 g_retcode :=2;
7384 RETURN;
7385 END;
7386 --END: Special situation Start and End Date vaidaion
7387
7388 l_cnt := 0;
7389
7390 BEGIN -- Begin for checking whether the report is finally submitted or not for the period?
7391
7392 SELECT COUNT(*)
7393 INTO l_cnt
7394 FROM jl_br_sped_extr_param
7395 WHERE legal_entity_id = g_legal_entity_id
7396 AND bookkeeping_type = g_bookkeeping_type
7397 AND estb_acct_type = g_accounting_type
7398 AND ((g_establishment_id IS NOT NULL AND establishment_id = g_establishment_id )
7399 OR (g_establishment_id IS NULL AND establishment_id IS NULL))
7400 AND period_name = g_period_name
7401 AND report_mode in ('R','F');
7402
7403 IF l_cnt > 0 THEN
7404 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_FILE_FINAL_REPORTED');
7405 g_errbuf := FND_MESSAGE.GET;
7406 --g_errbuf := 'Report has been already submitted in Final Mode with this combination';
7407 g_retcode := 2;
7408 return;
7409 END IF;
7410 EXCEPTION
7411 WHEN OTHERS THEN
7412 FND_FILE.PUT_LINE(FND_FILE.LOG, SQLCODE||' : '||SUBSTR(SQLERRM,1,80));
7413 g_errbuf := 'Erro while verification of previous report runs';
7414 g_retcode :=2;
7415 RETURN;
7416 END; -- End for checking whether the report is finally submitted or not for the period?
7417
7418
7419 /* Validation for the book keeping types 'R' and 'B'.
7420 User can run the program with book keeping type 'R', only when the program already
7421 ran with book keeping type 'A/R' for the same input parameters. Same is the case with 'B'*/
7422
7423 IF g_bookkeeping_type = 'R' THEN
7424
7425 BEGIN
7426
7427 SELECT bookkeeping_type
7428 INTO l_prev_bk_type
7429 FROM jl_br_sped_extr_param
7430 WHERE legal_entity_id = g_legal_entity_id
7431 AND estb_acct_type = g_accounting_type
7432 AND ((g_establishment_id IS NOT NULL AND establishment_id = g_establishment_id)
7433 OR (g_establishment_id IS NULL AND establishment_id IS NULL))
7434 AND period_name = g_period_name
7435 AND nvl(CONSOL_MAP_ID,1) = nvl(g_coa_mapping_id,1)
7436 AND data_exist = 'Y'
7437 AND request_id <> g_concurrent_request_id
7438 AND bookkeeping_type like 'A/R';
7439
7440 EXCEPTION
7441 WHEN NO_DATA_FOUND THEN
7442 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_BOOK_A/R_NOT_RUN');
7443 g_errbuf := FND_MESSAGE.GET;
7444 g_retcode :=2;
7445 return;
7446 WHEN OTHERS THEN
7447 FND_FILE.PUT_LINE(FND_FILE.LOG, SQLCODE||' : '||SUBSTR(SQLERRM,1,80));
7448 g_errbuf := 'Fialed to get book keeping type in validation_before_extract';
7449 g_retcode :=2;
7450 RETURN;
7451 END;
7452
7453 END IF; -- IF g_bookkeeping_type = 'R' THEN
7454
7455 IF g_bookkeeping_type = 'B' THEN
7456
7457 BEGIN
7458
7459 SELECT bookkeeping_type
7460 INTO l_prev_bk_type
7461 FROM jl_br_sped_extr_param
7462 WHERE legal_entity_id = g_legal_entity_id
7463 AND estb_acct_type = g_accounting_type
7464 AND ((g_establishment_id IS NOT NULL AND establishment_id= g_establishment_id)
7465 OR (g_establishment_id IS NULL AND establishment_id IS NULL))
7466 AND period_name = g_period_name
7467 AND nvl(CONSOL_MAP_ID,1) = nvl(g_coa_mapping_id,1)
7468 AND data_exist = 'Y'
7469 AND request_id <> g_concurrent_request_id
7470 AND bookkeeping_type like 'A/B';
7471
7472 EXCEPTION
7473 WHEN NO_DATA_FOUND THEN
7474 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_BOOK_A/B_NOT_RUN');
7475 g_errbuf := FND_MESSAGE.GET;
7476 g_retcode :=2;
7477 return;
7478 WHEN OTHERS THEN
7479 FND_FILE.PUT_LINE(FND_FILE.LOG, SQLCODE||' : '||SUBSTR(SQLERRM,1,80));
7480 g_errbuf := 'Fialed to get book keeping type in validation_before_extract';
7481 g_retcode :=2;
7482 return;
7483 END;
7484
7485 END IF;
7486
7487 IF g_bookkeeping_type = 'A/R' AND g_bookkeeping_type = 'A/B' THEN
7488
7489 /* After calling I015,I200,I250 registers, a custom procedure will called to insert the data of
7490 non oracle standard journal source's information. Customer will define their journal sources
7491 as lookup values of type 'JLBR_SPED_LEGACY_SOURCES'. So this validation check is just to
7492 confirm that user doesn't define any source which is aready defined as standard oracle journal source.
7493 If user defines any standard oracle journal source in this lookup, program will be terminated with
7494 a error message. */
7495
7496 BEGIN
7497
7498 l_journalsource_check := 0;
7499
7500 SELECT 1
7501 INTO l_journalsource_check
7502 FROM fnd_lookups
7503 WHERE lookup_type = 'JLBR_SPED_LEGACY_SOURCES'
7504 AND lookup_code in ('AX Inventory','AX Payables','AX Receivables','Assets','Average Consolidation',
7505 'Budget Journal','Carryforward','Consolidation','Conversion','Encumbrance',
7506 'Inflation','Intercompany','Inventory','Manual','Manufacturing','MassAllocation',
7507 'Move/Merge','Move/Merge Reversal','Other','Payables','Payroll','Personnel','Projects',
7508 'Purchasing','Receivables','Recurring','Revaluation','Revenue','Spreadsheet','Statistical','Transfer');
7509
7510 IF l_journalsource_check = 1 THEN
7511 -- fnd_message.set_name('JL','JLBR_SPED_OTHER_SL_SOURCE');
7512 -- fnd_file.put_line(fnd_file.log,fnd_message.get);
7513 fnd_message.set_name('JL','JLBR_SPED_OTHER_SL_SOURCE');
7514 g_errbuf :=fnd_message.get;
7515 g_retcode :=2;
7516 RETURN;
7517 END IF;
7518
7519 EXCEPTION
7520 WHEN NO_DATA_FOUND THEN
7521 null;
7522 WHEN OTHERS THEN
7523 FND_FILE.PUT_LINE(FND_FILE.LOG, SQLCODE||' : '||SUBSTR(SQLERRM,1,80));
7524 g_errbuf := 'Error occurred while validating the journal sources.';
7525 g_retcode :=2;
7526 RETURN;
7527 END;
7528
7529 END IF; --End for IF g_bookkeeping_type = 'A/R' AND g_bookkeeping_type = 'A/B' THEN
7530
7531 END validation_before_extract;
7532
7533 PROCEDURE validation_after_extract AS
7534 l_summary_balance1 NUMBER;
7535 l_summary_balance2 NUMBER;
7536 l_cnt NUMBER := 0;
7537 l_api_name CONSTANT VARCHAR2(100) := 'VALIDATE_AFTER_EXTRACT';
7538
7539 CURSOR valor_deb_cur IS
7540 SELECT DISTINCT I250.field2,I250.field3 -- natural account and costcenter
7541 FROM JL_BR_SPED_EXTR_DATA_T I155,
7542 JL_BR_SPED_EXTR_DATA_T I250
7543 WHERE I155.request_id = g_concurrent_request_id
7544 AND I155.field1 = 'I155'
7545 AND I250.request_id = g_concurrent_request_id
7546 AND I250.field1 = 'I250'
7547 AND I155.field2 = I250.field2 -- Natural Account
7548 AND I155.field3 = I250.field3 -- Cost Center
7549 AND I250.field5 = 'D' --Debit
7550 GROUP BY I250.field2,I250.field3
7551 HAVING SUM(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) <>
7552 MIN(to_number(I155.field6,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''));
7553
7554 CURSOR valor_cred_cur IS
7555 SELECT DISTINCT I250.field2,I250.field3 -- natural account and costcenter
7556 FROM JL_BR_SPED_EXTR_DATA_T I155,
7557 JL_BR_SPED_EXTR_DATA_T I250
7558 WHERE I155.request_id = g_concurrent_request_id
7559 AND I155.field1 = 'I155'
7560 AND I250.request_id = g_concurrent_request_id
7561 AND I250.field1 = 'I250'
7562 AND I155.field2 = I250.field2 -- Natural Account
7563 AND I155.field3 = I250.field3 -- Cost Center
7564 AND I250.field5 = 'C' --Credit
7565 GROUP BY I250.field2,I250.field3
7566 HAVING SUM(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) <>
7567 MIN(to_number(I155.field7,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''));
7568
7569 CURSOR vl_lcto_deb_cur IS
7570 SELECT DISTINCT I250.field6 -- Journal Name
7571 FROM JL_BR_SPED_EXTR_DATA_T I200,
7572 JL_BR_SPED_EXTR_DATA_T I250
7573 WHERE I200.request_id = g_concurrent_request_id
7574 AND I200.field1 = 'I200'
7575 AND I250.request_id = g_concurrent_request_id
7576 AND I250.field1 = 'I250'
7577 AND I200.field2 = I250.field6 -- Jounral Name || BATCH ID
7578 AND I250.field5 = 'D' --Debit
7579 GROUP BY I250.field6
7580 HAVING SUM(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) <>
7581 MIN(to_number(I200.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''));
7582
7583 CURSOR vl_lcto_cred_cur IS
7584 SELECT DISTINCT I250.field6 -- Journal Name
7585 INTO l_cnt
7586 FROM JL_BR_SPED_EXTR_DATA_T I200,
7587 JL_BR_SPED_EXTR_DATA_T I250
7588 WHERE I200.request_id = g_concurrent_request_id
7589 AND I200.field1 = 'I200'
7590 AND I250.request_id = g_concurrent_request_id
7591 AND I250.field1 = 'I250'
7592 AND I200.field2 = I250.field6 -- Jounral Name || BATCH ID
7593 AND I250.field5 = 'C' --Credit
7594 GROUP BY I250.field6
7595 HAVING sum(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) <>
7596 min(to_number(I200.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''));
7597
7598 BEGIN
7599
7600 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
7601 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
7602 G_PKG_NAME||': '||l_api_name||'()+');
7603 END IF;
7604 /*When the running the report in detail mode, Check if summary mode posted data exists or not?
7605 If summary data exists warn the user. If program is run for summary mode info check if detail data exists,If exists earn the user*/
7606
7607 l_cnt := 0;
7608
7609 SELECT COUNT(*) -- Payables invoices posted in Summary mode.
7610 INTO l_cnt
7611 FROM (SELECT jl.code_combination_id
7612 FROM gl_je_headers jh
7613 ,gl_je_lines jl
7614 ,gl_import_references glimp
7615 ,xla_ae_lines xll
7616 ,xla_ae_headers xlh
7617 ,xla_distribution_links xld
7618 WHERE jh.ledger_id = g_ledger_id
7619 AND jh.je_source in ('Payables')
7620 AND jh.je_header_id = jl.je_header_id
7621 AND glimp.je_header_id = jh.je_header_id
7622 AND xlh.ae_header_id = xll.ae_header_id
7623 AND xlh.EVENT_ID = xld.EVENT_ID
7624 AND xlh.ae_header_id = xld.ae_header_id
7625 AND jl.je_line_num = glimp.je_line_num
7626 AND glimp.gl_sl_link_id = xll.gl_sl_link_id
7627 AND glimp.gl_sl_link_table = xll.gl_sl_link_table
7628 AND jh.status = 'P'
7629 AND jl.status = 'P'
7630 AND jh.default_effective_date between g_start_date and g_end_date
7631 GROUP BY glimp.je_header_id,glimp.je_line_num,jl.code_combination_id
7632 HAVING count(*) >1);
7633
7634
7635 IF g_bookkeeping_type = 'G' THEN
7636 IF l_cnt > 0 THEN
7637 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'There exists '||l_cnt||' journals which are posted in Summary Mode');
7638 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DATA_DETAIL_CHECK');
7639 FND_MESSAGE.SET_TOKEN('SOURCE','Payables');
7640 FND_MESSAGE.SET_TOKEN('PERIOD',g_period_name);
7641 FND_MESSAGE.SET_TOKEN('BOOKKEEPING_TYPE',g_bookkeeping_type);
7642 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,FND_MESSAGE.GET);
7643 END IF;
7644 ELSIF g_bookkeeping_type = 'A/R' OR g_bookkeeping_type = 'A/B' OR g_bookkeeping_type = 'R' OR g_bookkeeping_type = 'B' THEN
7645 IF l_cnt = 0 THEN
7646 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'No journals were posted in Summary Mode');
7647 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DATA_SUMMARY_CHECK');
7648 FND_MESSAGE.SET_TOKEN('SOURCE','Payables');
7649 FND_MESSAGE.SET_TOKEN('PERIOD',g_period_name);
7650 FND_MESSAGE.SET_TOKEN('BOOKKEEPING_TYPE',g_bookkeeping_type);
7651 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,FND_MESSAGE.GET);
7652 END IF;
7653 END IF;
7654
7655 l_cnt := 0;
7656
7657 SELECT COUNT(*) -- Receivables transactions posted in Summary mode.
7658 INTO l_cnt
7659 FROM (SELECT jl.code_combination_id
7660 FROM gl_je_headers jh
7661 ,gl_je_lines jl
7662 ,gl_import_references glimp
7663 ,xla_ae_lines xll
7664 ,xla_ae_headers xlh
7665 ,xla_distribution_links xld
7666 WHERE jh.ledger_id = g_ledger_id
7667 AND jh.je_source in ('Receivables')
7668 AND jh.je_header_id = jl.je_header_id
7669 AND glimp.je_header_id = jh.je_header_id
7670 AND xlh.ae_header_id = xll.ae_header_id
7671 AND xlh.EVENT_ID = xld.EVENT_ID
7672 AND xlh.ae_header_id = xld.ae_header_id
7673 AND jl.je_line_num = glimp.je_line_num
7674 AND glimp.gl_sl_link_id = xll.gl_sl_link_id
7675 AND glimp.gl_sl_link_table = xll.gl_sl_link_table
7676 AND jh.status = 'P'
7677 AND jl.status = 'P'
7678 AND jh.default_effective_date between g_start_date and g_end_date
7679 GROUP BY glimp.je_header_id,glimp.je_line_num,jl.code_combination_id
7680 HAVING count(*) >1);
7681
7682 IF g_bookkeeping_type = 'G' THEN
7683 IF l_cnt > 0 THEN
7684 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'There exists '||l_cnt||' journals which are posted in Summary Mode');
7685 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DATA_DETAIL_CHECK');
7686 FND_MESSAGE.SET_TOKEN('SOURCE','Receivables');
7687 FND_MESSAGE.SET_TOKEN('PERIOD',g_period_name);
7688 FND_MESSAGE.SET_TOKEN('BOOKKEEPING_TYPE',g_bookkeeping_type);
7689 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
7690 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,FND_MESSAGE.GET);
7691 END IF;
7692 ELSIF g_bookkeeping_type = 'A/R' OR g_bookkeeping_type = 'A/B' OR g_bookkeeping_type = 'R' OR g_bookkeeping_type = 'B' THEN
7693 IF l_cnt = 0 THEN
7694 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'No journals were posted in Summary Mode');
7695 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DATA_SUMMARY_CHECK');
7696 FND_MESSAGE.SET_TOKEN('SOURCE','Receivables');
7697 FND_MESSAGE.SET_TOKEN('PERIOD',g_period_name);
7698 FND_MESSAGE.SET_TOKEN('BOOKKEEPING_TYPE',g_bookkeeping_type);
7699 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
7700 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,FND_MESSAGE.GET);
7701 END IF;
7702 END IF;
7703
7704 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7705 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
7706 G_PKG_NAME||': ' ||l_api_name||'(): Validation for Journal''s Posting done ');
7707 END IF;
7708
7709 BEGIN
7710 l_cnt :=0;
7711
7712 SELECT COUNT(*)
7713 INTO l_cnt
7714 FROM jl_br_sped_extr_data_t
7715 WHERE request_id = g_concurrent_request_id
7716 AND field1 ='I155';
7717
7718 IF l_cnt >0 THEN -- Only if I155 registers exists, then check the validation rules related to that register
7719 --Validation rules for I155 register.
7720
7721 /* validation for REGRA_VALIDACAO_SOMA_SALDO_INICIAL - Verifies if the sum of VL_SLD_INI (Register I155)
7722 is equal to zero for each period reported in the periodic balance register (Register I150)
7723 (It considers the Debit and Credit Indicator). */
7724
7725 BEGIN
7726
7727 l_cnt := 0;
7728
7729
7730 /* SELECT COUNT(*)
7731 INTO l_cnt
7732 FROM (SELECT to_number(field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''') vl_sld_ini
7733 FROM JL_BR_SPED_EXTR_DATA_T
7734 WHERE request_id = g_concurrent_request_id
7735 AND field1 = 'I155')
7736 WHERE vl_sld_ini<> 0; --VL_SLD_INI */
7737
7738 SELECT COUNT(*)
7739 INTO l_cnt
7740 FROM JL_BR_SPED_EXTR_DATA_T
7741 WHERE request_id = g_concurrent_request_id
7742 AND field1 = 'I155'
7743 AND field4 <>'0,00'; --vl_sld_ini
7744
7745
7746 IF l_cnt > 0 THEN
7747
7748
7749 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_SOMA_SALDO_INICIAL');
7750 INSERT INTO jl_br_sped_extr_msgs
7751 (request_id,
7752 block,
7753 register,
7754 field,
7755 message_txt,
7756 validation_rule,
7757 created_by,
7758 creation_date,
7759 last_updated_by,
7760 last_update_date,
7761 last_update_login
7762 )
7763 values (g_concurrent_request_id,
7764 'I',
7765 'I155',
7766 4,-- 'field4',
7767 FND_MESSAGE.GET,
7768 'REGRA_VALIDACAO_SOMA_SALDO_INICIAL'
7769 ,g_created_by
7770 ,g_creation_date
7771 ,g_last_updated_by
7772 ,g_last_update_date
7773 ,g_last_update_login );
7774
7775 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
7776 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_SOMA_SALDO_INICIAL');
7777 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_VALIDACAO_SOMA_SALDO_INICIAL : '||FND_MESSAGE.GET);
7778
7779 END IF;
7780
7781 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7782 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
7783 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_VALIDACAO_SOMA_SALDO_INICIAL'' was completed ');
7784 END IF;
7785
7786 EXCEPTION
7787 WHEN NO_DATA_FOUND THEN
7788 null;
7789 WHEN OTHERS THEN
7790 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
7791 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data for ''REGRA_VALIDACAO_SOMA_SALDO_INICIAL'''||SQLERRM);
7792 END IF;
7793 END;
7794
7795 /*validation for REGRA_VALIDACAO_SOMA_SALDO_FINAL - Verifies if the sum of VL_SLD_FIN (Register I155)
7796 is equal to zero for each period reported in the periodic balance register (Register I150)
7797 (It considers the Debit and Credit Indicator). */
7798 BEGIN
7799 l_cnt := 0;
7800
7801 /* SELECT COUNT(*)
7802 INTO l_cnt
7803 FROM (SELECT to_number(field8,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''') vl_sld_fin
7804 FROM JL_BR_SPED_EXTR_DATA_T
7805 WHERE request_id = g_concurrent_request_id
7806 AND field1 = 'I155')
7807 WHERE vl_sld_fin<> 0; */
7808
7809 SELECT COUNT(*)
7810 INTO l_cnt
7811 FROM JL_BR_SPED_EXTR_DATA_T
7812 WHERE request_id = g_concurrent_request_id
7813 AND field1 = 'I155'
7814 AND field8 <>'0,00';
7815
7816 IF l_cnt > 0 THEN
7817 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_SOMA_SALDO_FINAL');
7818 INSERT INTO jl_br_sped_extr_msgs
7819 (request_id,
7820 block,
7821 register,
7822 field,
7823 message_txt,
7824 validation_rule,
7825 created_by,
7826 creation_date,
7827 last_updated_by,
7828 last_update_date,
7829 last_update_login
7830 )
7831 values (g_concurrent_request_id,
7832 'I',
7833 'I155',
7834 8,--'field8',
7835 FND_MESSAGE.GET,
7836 'REGRA_VALIDACAO_SOMA_SALDO_FINAL'
7837 ,g_created_by
7838 ,g_creation_date
7839 ,g_last_updated_by
7840 ,g_last_update_date
7841 ,g_last_update_login );
7842
7843 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
7844 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_SOMA_SALDO_FINAL');
7845 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_VALIDACAO_SOMA_SALDO_FINAL : '||FND_MESSAGE.GET);
7846 END IF;
7847 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7848 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
7849 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_VALIDACAO_SOMA_SALDO_FINAL'' was completed ');
7850 END IF;
7851
7852 EXCEPTION
7853 WHEN NO_DATA_FOUND THEN
7854 null;
7855 WHEN OTHERS THEN
7856 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
7857 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data for ''REGRA_VALIDACAO_SOMA_SALDO_FINAL'''||SQLERRM);
7858 END IF;
7859 END;
7860
7861
7862 /* validation for REGRA_VALIDACAO_DEB_DIF_CRED - Verifies if the sum of VL_DEB (Register I155) is equal
7863 to the sum of VL_CRED (Register I155) for each period reported in the periodic balance register
7864 (Register I150).*/
7865
7866 BEGIN
7867 l_cnt := 0;
7868
7869
7870 /* SELECT COUNT(*)
7871 INTO l_cnt
7872 FROM (SELECT to_number(field6,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''') vl_deb,
7873 to_number(field7,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''') vl_cred
7874 FROM JL_BR_SPED_EXTR_DATA_T
7875 WHERE request_id = g_concurrent_request_id
7876 AND field1 = 'I155')
7877 WHERE vl_deb <> vl_cred; */
7878
7879
7880 SELECT COUNT(*)
7881 INTO l_cnt
7882 FROM JL_BR_SPED_EXTR_DATA_T
7883 WHERE request_id = g_concurrent_request_id
7884 AND field1 = 'I155'
7885 AND field6 <> field7;
7886
7887 IF l_cnt > 0 THEN
7888 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DEB_DIF_CRED');
7889 INSERT INTO jl_br_sped_extr_msgs
7890 (request_id,
7891 block,
7892 register,
7893 field,
7894 message_txt,
7895 validation_rule,
7896 created_by,
7897 creation_date,
7898 last_updated_by,
7899 last_update_date,
7900 last_update_login
7901 )
7902 values (g_concurrent_request_id,
7903 'I',
7904 'I155',
7905 6,--'field6',
7906 FND_MESSAGE.GET,
7907 'REGRA_VALIDACAO_DEB_DIF_CRED'
7908 ,g_created_by
7909 ,g_creation_date
7910 ,g_last_updated_by
7911 ,g_last_update_date
7912 ,g_last_update_login );
7913 END IF;
7914
7915 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7916 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
7917 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_VALIDACAO_DEB_DIF_CRED'' was completed ');
7918 END IF;
7919
7920 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
7921 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DEB_DIF_CRED');
7922 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_VALIDACAO_DEB_DIF_CRED : '||FND_MESSAGE.GET);
7923
7924 EXCEPTION
7925 WHEN NO_DATA_FOUND THEN
7926 null;
7927 WHEN OTHERS THEN
7928 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
7929 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data for ''REGRA_VALIDACAO_DEB_DIF_CRED'''||SQLERRM);
7930 END IF;
7931 END;
7932
7933 END IF; --End for check on number of records existance for I155 register.
7934 END;
7935
7936 /* Validation for REGRA_VALIDACAO_VALOR_DEB*/
7937 /*journals total debits (month, account and cost center) should equal to monthly balance from gl_balances */
7938 IF g_bookkeeping_type <> 'B' THEN
7939
7940 BEGIN
7941
7942 l_cnt := 0;
7943
7944 select count(*) into l_cnt
7945 from (
7946 SELECT
7947 I250.field2,I250.field3,I155.field2,I155.field3
7948 ,SUM(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
7949 , MIN(to_number(I155.field6,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
7950 FROM JL_BR_SPED_EXTR_DATA_T I155,
7951 JL_BR_SPED_EXTR_DATA_T I250
7952 WHERE I155.request_id = g_concurrent_request_id
7953 AND I155.field1 = 'I155'
7954 AND I250.request_id = g_concurrent_request_id
7955 AND I250.field1 = 'I250'
7956 AND I155.field2 = I250.field2 -- Natural Account
7957 AND I155.field3 = I250.field3 -- Cost Center
7958 AND I250.field5 = 'D' --Debit
7959 GROUP BY I250.field2,I250.field3,I155.field2,I155.field3
7960 HAVING SUM(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) <>
7961 MIN(to_number(I155.field6,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) -- sum(jounral debit lines) <> Balances debit amount
7962 );
7963
7964 IF l_cnt > 0 THEN
7965 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_VALOR_DEB');
7966 INSERT INTO jl_br_sped_extr_msgs
7967 (request_id,
7968 block,
7969 register,
7970 field,
7971 message_txt,
7972 validation_rule,
7973 created_by,
7974 creation_date,
7975 last_updated_by,
7976 last_update_date,
7977 last_update_login
7978 )
7979 values (g_concurrent_request_id,
7980 'I',
7981 'I155',
7982 6,--'field6',
7983 FND_MESSAGE.GET,
7984 'REGRA_VALIDACAO_VALOR_DEB'
7985 ,g_created_by
7986 ,g_creation_date
7987 ,g_last_updated_by
7988 ,g_last_update_date
7989 ,g_last_update_login );
7990
7991 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
7992 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_VALOR_DEB');
7993 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_VALIDACAO_VALOR_DEB : '||FND_MESSAGE.GET);
7994 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'COD_CTA COD_CCUS');
7995 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'------- --------');
7996 FOR rec IN valor_deb_cur
7997 LOOP
7998 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rec.field2||' '||rec.field3);
7999 END LOOP;
8000
8001 END IF;
8002 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8003 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
8004 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_VALIDACAO_VALOR_DEB'' was completed ');
8005 END IF;
8006
8007 EXCEPTION
8008 WHEN NO_DATA_FOUND THEN
8009 null;
8010 WHEN OTHERS THEN
8011 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
8012 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data for ''REGRA_VALIDACAO_VALOR_DEB'''||SQLERRM);
8013 END IF;
8014 END;
8015 /* validation for REGRA_VALIDACAO_VALOR_CRED*/
8016 /*journals total credits (month, account and cost center) should equal to monthly balance from gl_balances */
8017
8018 BEGIN
8019 l_cnt := 0;
8020
8021 select count(*) into l_cnt
8022 from (
8023 SELECT
8024 I250.field2,I250.field3,I155.field2,I155.field3
8025 ,SUM(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
8026 , MIN(to_number(I155.field6,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''))
8027 FROM JL_BR_SPED_EXTR_DATA_T I155,
8028 JL_BR_SPED_EXTR_DATA_T I250
8029 WHERE I155.request_id = g_concurrent_request_id
8030 AND I155.field1 = 'I155'
8031 AND I250.request_id = g_concurrent_request_id
8032 AND I250.field1 = 'I250'
8033 AND I155.field2 = I250.field2 -- Natural Account
8034 AND I155.field3 = I250.field3 -- Cost Center
8035 AND I250.field5 = 'C' --Debit
8036 GROUP BY I250.field2,I250.field3,I155.field2,I155.field3
8037 HAVING SUM(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) <>
8038 MIN(to_number(I155.field6,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) -- sum(jounral debit lines) <> Balances debit amount
8039 );
8040
8041
8042 IF l_cnt > 0 THEN
8043 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_VALOR_CRED');
8044 INSERT INTO jl_br_sped_extr_msgs
8045 (request_id,
8046 block,
8047 register,
8048 field,
8049 message_txt,
8050 validation_rule,
8051 created_by,
8052 creation_date,
8053 last_updated_by,
8054 last_update_date,
8055 last_update_login
8056 )
8057 values (g_concurrent_request_id,
8058 'I',
8059 'I155',
8060 6,--'field6',
8061 FND_MESSAGE.GET,
8062 'REGRA_VALIDACAO_VALOR_CRED'
8063 ,g_created_by
8064 ,g_creation_date
8065 ,g_last_updated_by
8066 ,g_last_update_date
8067 ,g_last_update_login );
8068 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
8069 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_VALOR_CRED');
8070 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_VALIDACAO_VALOR_CRED : '||FND_MESSAGE.GET);
8071 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'COD_CTA COD_CCUS');
8072 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'------- --------');
8073 FOR rec IN valor_cred_cur
8074 LOOP
8075 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rec.field2||' '||rec.field3);
8076 END LOOP;
8077
8078 END IF;
8079
8080 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8081 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
8082 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_VALIDACAO_VALOR_CRED'' was completed ');
8083 END IF;
8084 EXCEPTION
8085 WHEN NO_DATA_FOUND THEN
8086 null;
8087 WHEN OTHERS THEN
8088 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
8089 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data fpr ''REGRA_VALIDACAO_VALOR_CRED'''||SQLERRM);
8090 END IF;
8091 END;
8092
8093
8094 IF g_bookkeeping_type <> 'A/R' AND g_bookkeeping_type <> 'A/B' THEN
8095 /* validation rule for REGRA_VALIDACAO_VL_LCTO_DEB */
8096 /* total debit for a journal header (from journal lines) should match running_total_accounted_dr
8097 of that journal header */
8098
8099 BEGIN
8100 l_cnt := 0;
8101
8102 SELECT count(I250.field6) -- Journal Name
8103 INTO l_cnt
8104 FROM JL_BR_SPED_EXTR_DATA_T I200,
8105 JL_BR_SPED_EXTR_DATA_T I250
8106 WHERE I200.request_id = g_concurrent_request_id
8107 AND I200.field1 = 'I200'
8108 AND I250.request_id = g_concurrent_request_id
8109 AND I250.field1 = 'I250'
8110 AND I200.field2 = I250.field6 -- Jounral Name || BATCH ID
8111 AND I250.field5 = 'D' --Debit
8112 GROUP BY I250.field6
8113 HAVING SUM(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) <>
8114 MIN(to_number(I200.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''));
8115
8116 IF l_cnt >0 THEN
8117 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_VL_LCTO_DEB');
8118 INSERT INTO jl_br_sped_extr_msgs
8119 (request_id,
8120 block,
8121 register,
8122 field,
8123 message_txt,
8124 validation_rule,
8125 created_by,
8126 creation_date,
8127 last_updated_by,
8128 last_update_date,
8129 last_update_login
8130 )
8131 values (g_concurrent_request_id,
8132 'I',
8133 'I200',
8134 2,--'field2',
8135 FND_MESSAGE.GET,
8136 'REGRA_VALIDACAO_VL_LCTO_DEB'
8137 ,g_created_by
8138 ,g_creation_date
8139 ,g_last_updated_by
8140 ,g_last_update_date
8141 ,g_last_update_login );
8142
8143 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
8144 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_VALIDACAO_VL_LCTO_DEB : '||FND_MESSAGE.GET);
8145 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'JOURNAL NAME - BATCH ID');
8146 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'-----------------------');
8147 FOR rec IN vl_lcto_deb_cur
8148 LOOP
8149 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rec.field6);
8150 END LOOP;
8151 END IF;
8152
8153 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8154 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
8155 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_VALIDACAO_VL_LCTO_DEB'' was completed ');
8156 END IF;
8157
8158 EXCEPTION
8159 WHEN NO_DATA_FOUND THEN
8160 null;
8161 WHEN OTHERS THEN
8162 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
8163 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data for ''REGRA_VALIDACAO_VL_LCTO_DEB'''||SQLERRM);
8164 END IF;
8165 END;
8166 /* validation for REGRA_VALIDACAO_VL_LCTO_CRED */
8167
8168 /* total credit for a journal header (from journal lines) should match running_total_accounted_dr
8169 of that journal header */
8170
8171 BEGIN
8172 l_cnt := 0 ;
8173
8174 SELECT COUNT(I250.field6)-- Journal Name
8175 INTO l_cnt
8176 FROM JL_BR_SPED_EXTR_DATA_T I200,
8177 JL_BR_SPED_EXTR_DATA_T I250
8178 WHERE I200.request_id = g_concurrent_request_id
8179 AND I200.field1 = 'I200'
8180 AND I250.request_id = g_concurrent_request_id
8181 AND I250.field1 = 'I250'
8182 AND I200.field2 = I250.field6 -- Jounral Name || BATCH ID
8183 AND I250.field5 = 'C' --Credit
8184 GROUP BY I250.field6
8185 HAVING sum(to_number(I250.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''')) <>
8186 min(to_number(I200.field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.'''));
8187
8188 IF l_cnt <>0 THEN
8189 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_VL_LCTO_CRED');
8190 INSERT INTO jl_br_sped_extr_msgs
8191 (request_id,
8192 block,
8193 register,
8194 field,
8195 message_txt,
8196 validation_rule,
8197 created_by,
8198 creation_date,
8199 last_updated_by,
8200 last_update_date,
8201 last_update_login
8202 )
8203 values (g_concurrent_request_id,
8204 'I',
8205 'I200',
8206 2,--'field2',
8207 FND_MESSAGE.GET,
8208 'REGRA_VALIDACAO_VL_LCTO_CRED'
8209 ,g_created_by
8210 ,g_creation_date
8211 ,g_last_updated_by
8212 ,g_last_update_date
8213 ,g_last_update_login );
8214
8215 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
8216 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_VL_LCTO_CRED');
8217 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_VALIDACAO_VL_LCTO_CRED : '||FND_MESSAGE.GET);
8218 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'JOURNAL NAME - BATCH ID');
8219 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'-----------------------');
8220 FOR rec IN vl_lcto_deb_cur
8221 LOOP
8222 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rec.field6);
8223 END LOOP;
8224
8225 END IF;
8226
8227 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8228 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
8229 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_VALIDACAO_VL_LCTO_CRED'' was completed ');
8230 END IF;
8231
8232 EXCEPTION
8233 WHEN NO_DATA_FOUND THEN
8234 null;
8235 WHEN OTHERS THEN
8236 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
8237 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data fpr ''REGRA_VALIDACAO_VL_LCTO_CRED'''||SQLERRM);
8238 END IF;
8239 END;
8240 END IF; --END IF for g_bookkeeping_type logic
8241 END IF; --END FOR IF g_bookkeeping_type <> 'B' THEN
8242
8243 IF g_bookkeeping_type = 'B' THEN
8244 /* validation for REGRA_VALIDACAO_DC_BALANCETE */
8245 /*
8246 There should not be any I310 register record whose credit <> debit.
8247 I.e. credit and debit should match for each effective date
8248 */
8249 BEGIN
8250 l_cnt := 0;
8251
8252 SELECT COUNT(*)
8253 INTO l_cnt
8254 FROM JL_BR_SPED_EXTR_DATA_T
8255 WHERE request_id = g_concurrent_request_id
8256 AND field1 = 'I310';
8257
8258 IF l_cnt >0 THEN
8259
8260 /* SELECT COUNT(*)
8261 INTO l_cnt
8262 FROM (SELECT to_number(field4,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''') deb,
8263 to_number(field5,'99999999999999990D00','NLS_NUMERIC_CHARACTERS = '',.''') cred
8264 FROM JL_BR_SPED_EXTR_DATA_T
8265 WHERE request_id = g_concurrent_request_id
8266 AND field1 = 'I310')
8267 WHERE deb <> cred; */
8268
8269 SELECT COUNT(*)
8270 INTO l_cnt
8271 FROM JL_BR_SPED_EXTR_DATA_T
8272 WHERE request_id = g_concurrent_request_id
8273 AND field1 = 'I310'
8274 AND field4 <> field5;
8275
8276 IF l_cnt <> 0 THEN
8277 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DC_BALANCETE');
8278 INSERT INTO jl_br_sped_extr_msgs
8279 (request_id,
8280 block,
8281 register,
8282 field,
8283 message_txt,
8284 validation_rule,
8285 created_by,
8286 creation_date,
8287 last_updated_by,
8288 last_update_date,
8289 last_update_login
8290 )
8291 values (g_concurrent_request_id,
8292 'I',
8293 'I310',
8294 4,--'field4',
8295 FND_MESSAGE.GET,
8296 'REGRA_VALIDACAO_DC_BALANCETE'
8297 ,g_created_by
8298 ,g_creation_date
8299 ,g_last_updated_by
8300 ,g_last_update_date
8301 ,g_last_update_login );
8302 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
8303 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_DC_BALANCETE');
8304 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_VALIDACAO_DC_BALANCETE : '||FND_MESSAGE.GET);
8305
8306 END IF;
8307
8308 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8309 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
8310 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_VALIDACAO_DC_BALANCETE'' was completed ');
8311 END IF;
8312 END IF;
8313 EXCEPTION
8314 WHEN NO_DATA_FOUND THEN
8315 null;
8316 WHEN OTHERS THEN
8317 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
8318 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data fpr ''REGRA_VALIDACAO_DC_BALANCETE'''||SQLERRM);
8319 END IF;
8320 END;
8321 END IF; -- END FOR IF g_bookkeeping_type = 'B' THEN
8322
8323 /* Validation for REGRA_OBRIGATORIO_ASSIN_CONTADOR */
8324 /*It is mandatory the existence of at least one register J930
8325 whose COD_ASSIN is equal to 900 (accountant) and
8326 at least one register J930 whose COD_ASSIN is different than 900 */
8327
8328 BEGIN
8329 l_cnt := 0;
8330
8331 SELECT COUNT(*)
8332 INTO l_cnt
8333 FROM jl_br_sped_extr_data_t
8334 WHERE field1 = 'J930'
8335 AND field5 = '900';
8336
8337 IF l_cnt < 1 THEN
8338
8339 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_ASSIN_CONTADOR');
8340
8341 INSERT INTO jl_br_sped_extr_msgs
8342 (request_id,
8343 block,
8344 register,
8345 field,
8346 message_txt,
8347 validation_rule,
8348 created_by,
8349 creation_date,
8350 last_updated_by,
8351 last_update_date,
8352 last_update_login
8353 )
8354 VALUES (g_concurrent_request_id,
8355 'J',
8356 'J930',
8357 5,--'field5',
8358 FND_MESSAGE.GET,
8359 'REGRA_OBRIGATORIO_ASSIN_CONTADOR'
8360 ,g_created_by
8361 ,g_creation_date
8362 ,g_last_updated_by
8363 ,g_last_update_date
8364 ,g_last_update_login );
8365 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
8366 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_ASSIN_CONTADOR');
8367 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_OBRIGATORIO_ASSIN_CONTADOR : '||FND_MESSAGE.GET);
8368
8369 END IF;
8370
8371 l_cnt := 0;
8372
8373 SELECT COUNT(*)
8374 INTO l_cnt
8375 FROM jl_br_sped_extr_data_t
8376 WHERE field1 = 'J930'
8377 AND field5 <> '900';
8378
8379 IF l_cnt < 1 THEN
8380
8381 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_ASSIN_CONTADOR');
8382 INSERT INTO jl_br_sped_extr_msgs
8383 (request_id,
8384 block,
8385 register,
8386 field,
8387 message_txt,
8388 validation_rule,
8389 created_by,
8390 creation_date,
8391 last_updated_by,
8392 last_update_date,
8393 last_update_login
8394 )
8395 values (g_concurrent_request_id,
8396 'J',
8397 'J930',
8398 5,--'field5',
8399 FND_MESSAGE.GET,
8400 'REGRA_OBRIGATORIO_ASSIN_CONTADOR'
8401 ,g_created_by
8402 ,g_creation_date
8403 ,g_last_updated_by
8404 ,g_last_update_date
8405 ,g_last_update_login );
8406
8407 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,' ');
8408 FND_MESSAGE.SET_NAME('JL','JLBR_SPED_ASSIN_CONTADOR');
8409 FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'REGRA_OBRIGATORIO_ASSIN_CONTADOR : '||FND_MESSAGE.GET);
8410 END IF;
8411
8412 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8413 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
8414 G_PKG_NAME||': ' ||l_api_name||'(): Validation for ''REGRA_OBRIGATORIO_ASSIN_CONTADOR'' was completed ');
8415 END IF;
8416
8417 EXCEPTION
8418 WHEN NO_DATA_FOUND THEN
8419 null;
8420 WHEN OTHERS THEN
8421 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
8422 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'ERROR Occurred while validating extract data fpr ''REGRA_OBRIGATORIO_ASSIN_CONTADOR'''||SQLERRM);
8423 END IF;
8424 END; /* End for Validation for REGRA_OBRIGATORIO_ASSIN_CONTADOR */
8425
8426 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8427 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
8428 G_PKG_NAME||': '||l_api_name||'()-');
8429 END IF;
8430
8431 END validation_after_extract;
8432
8433
8434 PROCEDURE purge_data(p_request_id NUMBER DEFAULT NULL) AS
8435 l_request_id NUMBER;
8436 l_api_name CONSTANT VARCHAR2(30) := 'purge_data';
8437 BEGIN
8438 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8439 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',
8440 G_PKG_NAME||': '||l_api_name||'()+');
8441 END IF;
8442
8443 BEGIN
8444
8445 IF p_request_id IS NULL THEN
8446
8447 SELECT request_id
8448 INTO l_request_id
8449 FROM jl_br_sped_extr_param
8450 WHERE legal_entity_id = g_legal_entity_id
8451 AND bookkeeping_type = g_bookkeeping_type
8452 AND estb_acct_type = g_accounting_type
8453 AND ((g_establishment_id IS NULL AND establishment_id is NULL) OR
8454 (establishment_id = g_establishment_id AND g_establishment_id IS NOT NULL))
8455 AND period_name = g_period_name
8456 AND request_id <> g_concurrent_request_id
8457 AND data_exist = 'Y';
8458
8459 ELSE
8460 l_request_id := p_request_id;
8461 END IF;
8462 EXCEPTION
8463 WHEN NO_DATA_FOUND THEN
8464 l_request_id := 0;
8465 WHEN OTHERS THEN
8466 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
8467 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
8468 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'LE: '||g_legal_entity_id);
8469 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Book keeping type: '||g_bookkeeping_type||'ESTB'||g_establishment_id);
8470 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Period: '||g_period_name);
8471 END IF;
8472 --l_request_id := 0;
8473 g_errbuf := 'Error in finding the request_id to purge the data ';
8474 g_retcode := 2;
8475 return;
8476 END;
8477
8478 IF l_request_id <> 0 THEN
8479
8480 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Purging data of request_id:' || l_request_id);
8481
8482 DELETE --purging the data as user running the extract prg for the combination which is already existing in temp table
8483 FROM jl_br_sped_extr_data_t
8484 WHERE request_id = l_request_id;
8485
8486 UPDATE jl_br_sped_extr_param
8487 SET data_exist = 'N'
8488 WHERE request_id = l_request_id;
8489
8490 END IF;
8491
8492 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8493 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',
8494 G_PKG_NAME||': '||l_api_name||'()-');
8495 END IF;
8496 END purge_data;
8497
8498
8499 PROCEDURE main ( errbuf OUT NOCOPY VARCHAR2,
8500 retcode OUT NOCOPY NUMBER,
8501 p_accounting_type VARCHAR2,
8502 p_legal_entity_id XLE_ENTITY_PROFILES.LEGAL_ENTITY_ID%TYPE,
8503 p_chart_of_accounts_id GL_SETS_OF_BOOKS.chart_of_accounts_id%TYPE,
8504 p_ledger_id GL_SETS_OF_BOOKS.SET_OF_BOOKS_ID%TYPE,
8505 p_establishment_id XLE_ETB_PROFILES.ESTABLISHMENT_ID%TYPE,
8506 p_is_special_situation VARCHAR2,
8507 p_is_special_situation_dummy VARCHAR2,
8508 p_is_special_situation_dummy1 VARCHAR2,
8509 p_period_type VARCHAR2,
8510 p_period_type_dummy VARCHAR2,
8511 p_period_type_dummy1 VARCHAR2,
8512 p_period_name GL_PERIOD_STATUSES.PERIOD_NAME%TYPE,
8513 p_adjustment_period_name GL_PERIOD_STATUSES.PERIOD_NAME%TYPE,
8514 p_special_situation_indicator VARCHAR2,
8515 p_start_date VARCHAR2,
8516 p_end_date VARCHAR2,
8517 p_bookkeeping_type VARCHAR2,
8518 p_bookkeeping_type_dummy VARCHAR2,
8519 p_bookkeeping_type_dummy1 VARCHAR2,
8520 p_bookkeeping_type_dummy2 VARCHAR2,
8521 p_participant_type JL_BR_SPED_PARTIC_CODES.PARTICIPANT_TYPE%TYPE,
8522 p_participant_type_dummy JL_BR_SPED_PARTIC_CODES.PARTICIPANT_TYPE%TYPE,
8523 p_accounting_segment_type VARCHAR2,
8524 p_coa_mapping_id VARCHAR2,
8525 p_balance_statement_request_id fnd_concurrent_requests.request_id%TYPE,
8526 p_income_statement_request_id fnd_concurrent_requests.request_id%TYPE,
8527 p_agglutination_code_source VARCHAR2,
8528 p_journal_for_rtf NUMBER,
8529 p_acct_stmt_ident VARCHAR2,
8530 p_acct_stmt_ident_dummy VARCHAR2,
8531 p_acct_stmt_header VARCHAR2,
8532 p_hash_code VARCHAR2, -- auxillary book
8533 p_inscription_source VARCHAR2,
8534 p_inscription_source_dummy VARCHAR2,
8535 p_inscription_source_dummy1 VARCHAR2,
8536 p_le_state_reg_code VARCHAR2,
8537 p_le_municipal_reg_code VARCHAR2,
8538 p_state_tax_id NUMBER,
8539 p_ebtax_state_reg_code VARCHAR2,
8540 p_municipal_reg_tax_id NUMBER,
8541 p_ebtax_municipal_reg_code VARCHAR2,
8542 p_revert_negative_journals VARCHAR2,
8543 p_gen_sped_text_file VARCHAR2) AS
8544
8545 l_api_name CONSTANT VARCHAR2(30) := 'main';
8546 l_request_id NUMBER;
8547 l_return BOOLEAN;
8548 l_phase varchar2(30);
8549 l_status varchar2(30);
8550 l_dev_phase varchar2(30);
8551 l_dev_stage varchar2(30);
8552 l_message varchar2(100);
8553 printable_chars varchar2(99);
8554 non_printable_chars varchar2(35):='|';
8555 l_cnt NUMBER;
8556 l_sequence_value NUMBER;
8557 /*CURSOR msg_cur IS SELECT message_txt,validation_rule
8558 FROM jl_br_sped_extr_msgs
8559 WHERE request_id = g_concurrent_request_id ;*/
8560
8561 CURSOR accts_with_invalid_jrl_amounts IS
8562 SELECT field2 natural_acct
8563 FROM jl_br_sped_extr_data_t
8564 WHERE request_id = g_concurrent_request_id
8565 AND field4 like '%####%'
8566 AND field1='I250';
8567
8568 BEGIN
8569
8570 FND_FILE.PUT_LINE(FND_FILE.LOG,'Parameter values:');
8571 FND_FILE.PUT_LINE(FND_FILE.LOG,'-------------------------------------------------------------');
8572 FND_FILE.PUT_LINE(FND_FILE.LOG,'Ledger Id :'||p_ledger_id);
8573 FND_FILE.PUT_LINE(FND_FILE.LOG,'Chart Of Accounts Id :'||p_chart_of_accounts_id);
8574 FND_FILE.PUT_LINE(FND_FILE.LOG,'Establishment Accounting Type:'||p_accounting_type);
8575 FND_FILE.PUT_LINE(FND_FILE.LOG,'Legal Entity Id :'||p_legal_entity_id);
8576 FND_FILE.PUT_LINE(FND_FILE.LOG,'Establishment Id :'||p_establishment_id);
8577 FND_FILE.PUT_LINE(FND_FILE.LOG,'Is Special Situation :'||p_is_special_situation);
8578 FND_FILE.PUT_LINE(FND_FILE.LOG,'Period Name :'||p_period_name);
8579 FND_FILE.PUT_LINE(FND_FILE.LOG,'Period Type :'||p_period_type);
8580 FND_FILE.PUT_LINE(FND_FILE.LOG,'01 - Regular Period, 02- Closing Period With Adjustment Period');
8581 FND_FILE.PUT_LINE(FND_FILE.LOG,'Adjustment Period :'||p_adjustment_period_name);
8582 FND_FILE.PUT_LINE(FND_FILE.LOG,'Special Situation Indicator :'||p_special_situation_indicator);
8583 FND_FILE.PUT_LINE(FND_FILE.LOG,'Period Start Date :'||p_start_date);
8584 FND_FILE.PUT_LINE(FND_FILE.LOG,'Period End Date :'||p_end_date);
8585 FND_FILE.PUT_LINE(FND_FILE.LOG,'Book Keeping Type :'||p_bookkeeping_type);
8586 FND_FILE.PUT_LINE(FND_FILE.LOG,'Participant Type :'||p_participant_type);
8587 FND_FILE.PUT_LINE(FND_FILE.LOG,'Accounting Segment :'||p_accounting_segment_type);
8588 FND_FILE.PUT_LINE(FND_FILE.LOG,'Referential Chart Of Accounts Mapping :'||p_coa_mapping_id);
8589 FND_FILE.PUT_LINE(FND_FILE.LOG,'Balance Sheet Report Name :'||p_balance_statement_request_id);
8590 FND_FILE.PUT_LINE(FND_FILE.LOG,'Income Statement Report Name :'||p_income_statement_request_id);
8591 FND_FILE.PUT_LINE(FND_FILE.LOG,'Agglutination Code Source :'||p_agglutination_code_source);
8592 FND_FILE.PUT_LINE(FND_FILE.LOG,'Journal Source for RTF File :'||p_journal_for_rtf);
8593 FND_FILE.PUT_LINE(FND_FILE.LOG,'Hash Code :'||p_hash_code);
8594 FND_FILE.PUT_LINE(FND_FILE.LOG,'Accounting Statements Indication :'||p_acct_stmt_ident);
8595 FND_FILE.PUT_LINE(FND_FILE.LOG,'Accounting Statements Header :'||p_acct_stmt_header);
8596 FND_FILE.PUT_LINE(FND_FILE.LOG,'Generate SPED Text File :'||p_gen_sped_text_file);
8597 FND_FILE.PUT_LINE(FND_FILE.LOG,'State And Munciple Inscription Source :'||p_inscription_source);
8598 FND_FILE.PUT_LINE(FND_FILE.LOG,'Lookup Type for LE State Inscription :'||p_le_state_reg_code);
8599 FND_FILE.PUT_LINE(FND_FILE.LOG,'Lookup Type for LE Munciple Inscription :'||p_le_municipal_reg_code);
8600 FND_FILE.PUT_LINE(FND_FILE.LOG,'Tax Used to define State Inscription :'||p_state_tax_id);
8601 FND_FILE.PUT_LINE(FND_FILE.LOG,'Lookup Type for EBTax State Inscription :'||p_ebtax_state_reg_code);
8602 FND_FILE.PUT_LINE(FND_FILE.LOG,'Tax Used to define Munciple Inscription :'||p_municipal_reg_tax_id);
8603 FND_FILE.PUT_LINE(FND_FILE.LOG,'Lookup Type for EBTax Munciple Inscription :'||p_ebtax_municipal_reg_code);
8604
8605
8606 FND_FILE.PUT_LINE(FND_FILE.LOG,'--------Parameters End-----------------------------------------');
8607
8608
8609
8610 FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling Initialize proc');
8611
8612 Initialize (p_ledger_id,
8613 p_chart_of_accounts_id,
8614 p_accounting_type,
8615 p_legal_entity_id,
8616 p_establishment_id,
8617 p_is_special_situation,
8618 p_period_type,
8619 p_period_name,
8620 p_adjustment_period_name,
8621 p_start_date,
8622 p_end_date,
8623 p_special_situation_indicator,
8624 p_bookkeeping_type,
8625 p_participant_type,
8626 p_accounting_segment_type,
8627 p_coa_mapping_id,
8628 p_balance_statement_request_id,
8629 p_agglutination_code_source,
8630 p_income_statement_request_id,
8631 p_journal_for_rtf,
8632 p_hash_code,
8633 p_acct_stmt_ident,
8634 p_acct_stmt_header,
8635 p_gen_sped_text_file,
8636 p_inscription_source,
8637 p_le_state_reg_code,
8638 p_le_municipal_reg_code,
8639 p_state_tax_id,
8640 p_ebtax_state_reg_code,
8641 p_municipal_reg_tax_id,
8642 p_ebtax_municipal_reg_code
8643 );
8644
8645 IF g_retcode = 2 THEN
8646 errbuf := g_errbuf;
8647 retcode := 2;
8648 return;
8649 END IF;
8650
8651 FND_FILE.PUT_LINE(FND_FILE.LOG,'End of Initialize proc' );
8652 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Calling validation_before_extract proc' );
8653
8654 validation_before_extract;
8655
8656 IF g_retcode = 2 THEN
8657 errbuf := g_errbuf;
8658 retcode := 2;
8659 return;
8660 END IF;
8661
8662 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'END Of validation_before_extract proc' );
8663
8664 --Start Block 0
8665 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_0000 proc');
8666 register_0000;
8667 IF g_retcode = 2 THEN
8668 errbuf := g_errbuf;
8669 retcode := 2;
8670 return;
8671 END IF;
8672 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_0001 proc');
8673 register_0001;
8674 IF g_retcode = 2 THEN
8675 errbuf := g_errbuf;
8676 retcode := 2;
8677 return;
8678 END IF;
8679 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_0007 proc');
8680 register_0007;
8681 IF g_retcode = 2 THEN
8682 errbuf := g_errbuf;
8683 retcode := 2;
8684 return;
8685 END IF;
8686 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_0020 proc');
8687 register_0020;
8688 IF g_retcode = 2 THEN
8689 errbuf := g_errbuf;
8690 retcode := 2;
8691 return;
8692 END IF;
8693 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_0150_0180 proc');
8694 register_0150_0180;
8695 IF g_retcode = 2 THEN
8696 errbuf := g_errbuf;
8697 retcode := 2;
8698 return;
8699 END IF;
8700 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_0990 proc');
8701 register_0990;
8702 IF g_retcode = 2 THEN
8703 errbuf := g_errbuf;
8704 retcode := 2;
8705 return;
8706 END IF;
8707
8708 --Start Block I
8709
8710 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I001 proc');
8711 register_I001;
8712 IF g_retcode = 2 THEN
8713 errbuf := g_errbuf;
8714 retcode := 2;
8715 return;
8716 END IF;
8717
8718 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I010 proc');
8719 register_I010;
8720 IF g_retcode = 2 THEN
8721 errbuf := g_errbuf;
8722 retcode := 2;
8723 return;
8724 END IF;
8725
8726 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I012 proc');
8727 register_I012;
8728 IF g_retcode = 2 THEN
8729 errbuf := g_errbuf;
8730 retcode := 2;
8731 return;
8732 END IF;
8733
8734 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I015 proc');
8735 register_I015;
8736 IF g_retcode = 2 THEN
8737 errbuf := g_errbuf;
8738 retcode := 2;
8739 return;
8740 END IF;
8741
8742 --- custom code hook call for register I015
8743
8744 IF substrb(g_bookkeeping_type,1,1) <> 'G' THEN
8745
8746 SELECT jl_br_sped_extr_data_t_s.CURRVAL INTO l_sequence_value
8747 FROM DUAL;
8748
8749 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Calling code hook, which populates I015 for Integrated Receiving system');
8750 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Code Hook Starting Sequence Value :'||l_sequence_value);
8751
8752 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8753 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME, 'Start of Code Hook register_I015');
8754 END IF;
8755 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8756 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME, 'Code Hook register_I105 : Starting Sequence Value :'||l_sequence_value);
8757 END IF;
8758
8759
8760 JL_BR_SPED_DATA_EXTRACT_PUB.register_I015( g_retcode
8761 ,g_errbuf
8762 ,g_ledger_id
8763 ,g_legal_entity_id
8764 ,g_establishment_id
8765 ,g_period_set_name
8766 ,g_start_date
8767 ,g_end_date
8768 ,g_bsv_segment
8769 ,g_account_segment
8770 ,g_cost_center_segment --can be null if the customer doesn't have the cost center setup.
8771 ,g_bookkeeping_type
8772 ,g_concurrent_request_id);
8773
8774 SELECT jl_br_sped_extr_data_t_s.CURRVAL INTO l_sequence_value
8775 FROM DUAL;
8776
8777 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Code Hook Ending Sequence Value :'||l_sequence_value);
8778 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8779 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME, 'Code Hook register_I105 : Ending Sequence Value :'||l_sequence_value);
8780 END IF;
8781
8782 IF g_retcode = 2 THEN
8783 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error occurred in Custom package JL_BR_SPED_DATA_EXTRACT_PUB.register_I015');
8784 errbuf := g_errbuf;
8785 retcode :=2;
8786 RETURN;
8787 END IF;
8788 END IF;
8789
8790 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I030 proc');
8791 register_I030;
8792 IF g_retcode = 2 THEN
8793 errbuf := g_errbuf;
8794 retcode := 2;
8795 return;
8796 END IF;
8797 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I050 proc');
8798
8799 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I050:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8800 register_I050;
8801 IF g_retcode = 2 THEN
8802 errbuf := g_errbuf;
8803 retcode := 2;
8804 return;
8805 END IF;
8806 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I100 proc');
8807
8808 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I100:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8809 register_I100;
8810 IF g_retcode = 2 THEN
8811 errbuf := g_errbuf;
8812 retcode := 2;
8813 return;
8814 END IF;
8815 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I150 proc');
8816 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I150:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8817 register_I150;
8818 IF g_retcode = 2 THEN
8819 errbuf := g_errbuf;
8820 retcode := 2;
8821 return;
8822 END IF;
8823
8824 IF substrb(g_bookkeeping_type,1,1) = 'B' THEN -- I151 register is required only for bookkeeping type 'B'
8825
8826 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I151:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8827 register_I151;
8828 IF g_retcode = 2 THEN
8829 errbuf := g_errbuf;
8830 retcode := 2;
8831 return;
8832 END IF;
8833
8834 END IF;
8835 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I155 proc');
8836 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I155:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8837 register_I155;
8838 IF g_retcode = 2 THEN
8839 errbuf := g_errbuf;
8840 retcode := 2;
8841 return;
8842 END IF;
8843 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I200 proc');
8844 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I200:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8845 register_I200;
8846 IF g_retcode = 2 THEN
8847 errbuf := g_errbuf;
8848 retcode := 2;
8849 return;
8850 END IF;
8851
8852 -- custom code hook call for register I200 and I250
8853
8854 IF substrb(g_bookkeeping_type,1,1) <> 'B' THEN
8855
8856 SELECT jl_br_sped_extr_data_t_s.CURRVAL INTO l_sequence_value
8857 FROM DUAL;
8858
8859 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Calling code hook, which populates I200 and I250 for Integrated Receiving system');
8860 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Code Hook Starting Sequence Value :'||l_sequence_value);
8861
8862 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8863 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME, 'Start of Code Hook register_I200_I250');
8864 END IF;
8865 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8866 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME, 'Code Hook register_I200_I250 Starting Sequence Value :'||l_sequence_value);
8867 END IF;
8868
8869
8870 JL_BR_SPED_DATA_EXTRACT_PUB.register_I200_I250( g_retcode
8871 ,g_errbuf
8872 ,g_ledger_id
8873 ,g_legal_entity_id
8874 ,g_establishment_id
8875 ,g_period_set_name
8876 ,g_start_date
8877 ,g_end_date
8878 ,g_bsv_segment
8879 ,g_account_segment
8880 ,g_cost_center_segment --can be null if the customer doesn't have the cost center setup.
8881 ,g_bookkeeping_type
8882 ,g_concurrent_request_id);
8883
8884 SELECT jl_br_sped_extr_data_t_s.CURRVAL INTO l_sequence_value
8885 FROM DUAL;
8886
8887 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Code Hook Ending Sequence Value :'||l_sequence_value);
8888 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
8889 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME, 'Code Hook register_I200_I250 Ending Sequence Value :'||l_sequence_value);
8890 END IF;
8891
8892 IF g_retcode = 2 THEN
8893 FND_FILE.PUT_LINE(FND_FILE.LOG,'Error occurred in Custom package JL_BR_SPED_DATA_EXTRACT_PUB.register_I200_I250');
8894 errbuf := g_errbuf;
8895 retcode :=2;
8896 RETURN;
8897 END IF;
8898 END IF;
8899
8900
8901 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I300_I310 proc');
8902 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I300_I310:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8903 register_I300_I310;
8904 IF g_retcode = 2 THEN
8905 errbuf := g_errbuf;
8906 retcode := 2;
8907 return;
8908 END IF;
8909 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I350 proc');
8910 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I350:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8911 register_I350;
8912 IF g_retcode = 2 THEN
8913 errbuf := g_errbuf;
8914 retcode := 2;
8915 return;
8916 END IF;
8917 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I355 proc');
8918 FND_FILE.PUT_LINE(FND_FILE.LOG,'before I355:'||to_char(sysdate,'DD-MON-YYYY HH:MI:SS'));
8919 register_I355;
8920 IF g_retcode = 2 THEN
8921 errbuf := g_errbuf;
8922 retcode := 2;
8923 return;
8924 END IF;
8925 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_I990 proc');
8926 register_I990;
8927 IF g_retcode = 2 THEN
8928 errbuf := g_errbuf;
8929 retcode := 2;
8930 return;
8931 END IF;
8932 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_J001 proc');
8933 register_J001;
8934 IF g_retcode = 2 THEN
8935 errbuf := g_errbuf;
8936 retcode := 2;
8937 return;
8938 END IF;
8939 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_J001 proc');
8940 register_J005;
8941 IF g_retcode = 2 THEN
8942 errbuf := g_errbuf;
8943 retcode := 2;
8944 return;
8945 END IF;
8946 IF substr(g_bookkeeping_type,1,1) <> 'A' AND g_bookkeeping_type <> 'Z' THEN
8947
8948 IF g_balance_statement_request_id IS NOT NULL OR g_income_statement_request_id IS NOT NULL THEN
8949 --Submit concurrent request which call the JCP to populate J100 and J150 registers.
8950 l_request_id := fnd_request.submit_request ('JL',
8951 'JLBRASFS',
8952 '',
8953 '',
8954 FALSE,
8955 g_concurrent_request_id, --arguement1
8956 g_balance_statement_request_id, --arguement2
8957 g_income_statement_request_id,-- Income statement Request Id
8958 'Y' -- Debug flag
8959 );
8960
8961
8962 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Request Id: '|| l_request_id);
8963 commit;
8964 --wait till the request completed.
8965 l_return := FND_CONCURRENT.WAIT_FOR_REQUEST( l_request_id,
8966 1, --interval (no of secs to wait to check the status)
8967 60, --max_wait
8968 l_phase, -- phase OUT varchar2,
8969 l_status, -- status OUT varchar2,
8970 l_dev_phase, -- dev_phase OUT varchar2,
8971 l_dev_stage, --dev_status OUT varchar2,
8972 l_message); --message OUT varchar2)
8973
8974
8975 /* Amount column in both J100 and J150 is a required field. So we shouldn't display
8976 the FSG records with the amount as not null. so Delete those records */
8977
8978 IF l_return THEN
8979 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Return Status: True');
8980 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'l_status: '||l_status);
8981
8982 IF l_status = 'Error' THEN --If FSG concurrent program ended in error then error out the data extract progam
8983 errbuf := 'Brazilian Accounting SPED Financial Statements Data Extraction Program Ended in Error.';
8984 retcode := 2;
8985 purge_data(g_concurrent_request_id);
8986 commit;
8987 return;
8988 END IF;
8989
8990 BEGIN
8991 SELECT count(*)
8992 INTO l_cnt
8993 FROM jl_br_sped_extr_data_t
8994 WHERE request_id = g_concurrent_request_id
8995 AND field1 = 'J100';
8996
8997 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'cnt of rows from FSG for bal: '||l_cnt);
8998
8999 EXCEPTION
9000 WHEN NO_DATA_FOUND THEN
9001 FND_FILE.PUT_LINE(FND_FILE.LOG,'No records found');
9002 END;
9003
9004 DELETE FROM jl_br_sped_extr_data_t
9005 WHERE field1 ='J100'
9006 AND request_id = g_concurrent_request_id
9007 AND field6 is null;
9008
9009 DELETE FROM jl_br_sped_extr_data_t
9010 WHERE field1 ='J150'
9011 AND request_id = g_concurrent_request_id
9012 AND field5 is null;
9013
9014 BEGIN
9015 SELECT count(*)
9016 INTO l_cnt
9017 FROM jl_br_sped_extr_data_t
9018 WHERE request_id = g_concurrent_request_id
9019 AND field1 = 'J100';
9020
9021 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'cnt of rows from FSG for bal: '||l_cnt);
9022
9023 EXCEPTION
9024 WHEN NO_DATA_FOUND THEN
9025 FND_FILE.PUT_LINE(FND_FILE.LOG,'No records found');
9026 END;
9027
9028 IF g_balance_statement_request_id IS NOT NULL THEN
9029 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_J100 proc');
9030 register_J100;
9031 IF g_retcode = 2 THEN
9032 errbuf := g_errbuf;
9033 retcode := 2;
9034 purge_data(g_concurrent_request_id);
9035 commit;
9036 return;
9037 END IF;
9038 END IF;
9039 IF g_income_statement_request_id IS NOT NULL THEN
9040 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_J150 proc');
9041 register_J150;
9042 IF g_retcode = 2 THEN
9043 errbuf := g_errbuf;
9044 retcode := 2;
9045 purge_data(g_concurrent_request_id);
9046 commit;
9047 return;
9048 END IF;
9049 END IF;
9050
9051 -- ELSE
9052 -- FND_FILE.PUT_LINE(FND_FILE.LOG , 'Return Status: False');
9053 END IF;
9054
9055 END IF; -- End for check on FSG request Ids.
9056
9057 END IF; -- End for check on book_keeping_type.
9058
9059 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'End Of FSG registers');
9060
9061 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_J800 proc');
9062 register_J800;
9063 IF g_retcode = 2 THEN
9064 errbuf := g_errbuf;
9065 retcode := 2;
9066 purge_data(g_concurrent_request_id);
9067 commit;
9068 return;
9069 END IF;
9070 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_J900 proc');
9071 register_J900;
9072 IF g_retcode = 2 THEN
9073 errbuf := g_errbuf;
9074 retcode := 2;
9075 purge_data(g_concurrent_request_id);
9076 commit;
9077 return;
9078 END IF;
9079 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_J930 proc');
9080 register_J930;
9081 IF g_retcode = 2 THEN
9082 errbuf := g_errbuf;
9083 retcode := 2;
9084 purge_data(g_concurrent_request_id);
9085 commit;
9086 return;
9087 END IF;
9088 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_J990 proc');
9089 register_J990;
9090 IF g_retcode = 2 THEN
9091 errbuf := g_errbuf;
9092 retcode := 2;
9093 purge_data(g_concurrent_request_id);
9094 commit;
9095 return;
9096 END IF;
9097 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_9001 proc');
9098 register_9001;
9099 IF g_retcode = 2 THEN
9100 errbuf := g_errbuf;
9101 retcode := 2;
9102 purge_data(g_concurrent_request_id);
9103 commit;
9104 return;
9105 END IF;
9106 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_9900 proc');
9107 register_9900;
9108 IF g_retcode = 2 THEN
9109 errbuf := g_errbuf;
9110 retcode := 2;
9111 purge_data(g_concurrent_request_id);
9112 commit;
9113 return;
9114 END IF;
9115 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_9990 proc');
9116 register_9990;
9117 IF g_retcode = 2 THEN
9118 errbuf := g_errbuf;
9119 retcode := 2;
9120 purge_data(g_concurrent_request_id);
9121 commit;
9122 return;
9123 END IF;
9124 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling register_9999 proc');
9125 register_9999;
9126 IF g_retcode = 2 THEN
9127 errbuf := g_errbuf;
9128 retcode := 2;
9129 purge_data(g_concurrent_request_id);
9130 commit;
9131 return;
9132 END IF;
9133 /* SPED table fields shouldn't contain Non pritable and pipe symbol.
9134 So need to remove non Printable characters. */
9135
9136 printable_chars := null;
9137 non_printable_chars := '|';
9138
9139 for i in 0 .. 31 loop --ASCII characters 0 to 31 are non printable characters
9140 non_printable_chars:= non_printable_chars||fnd_global.local_chr(i);
9141 end loop;
9142 for i in 32 .. 123 loop -- printable characters
9143 printable_chars := printable_chars||fnd_global.local_chr(i);
9144 end loop;
9145
9146 /*ASCII characters 32 to 126 are printable characters. But as we even want to remove pipe,don't include chr(124) */
9147
9148 printable_chars := printable_chars||fnd_global.local_chr(125)||fnd_global.local_chr(126);
9149
9150 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Removing non printable characters');
9151
9152 UPDATE jl_br_sped_extr_data_t
9153 SET field2 = translate(field2, printable_chars|| non_printable_chars, printable_chars),
9154 field3 = translate(field3, printable_chars|| non_printable_chars, printable_chars),
9155 field4 = translate(field4, printable_chars|| non_printable_chars, printable_chars),
9156 field5 = translate(field5, printable_chars|| non_printable_chars, printable_chars),
9157 field6 = translate(field6, printable_chars|| non_printable_chars, printable_chars),
9158 field7 = translate(field7, printable_chars|| non_printable_chars, printable_chars),
9159 field8 = translate(field8, printable_chars|| non_printable_chars, printable_chars),
9160 field9 = translate(field9, printable_chars|| non_printable_chars, printable_chars),
9161 field10 = translate(field10, printable_chars|| non_printable_chars, printable_chars),
9162 field11 = translate(field11, printable_chars|| non_printable_chars, printable_chars),
9163 field12 = translate(field12, printable_chars|| non_printable_chars, printable_chars),
9164 field13 = translate(field13, printable_chars|| non_printable_chars, printable_chars),
9165 field14 = translate(field14, printable_chars|| non_printable_chars, printable_chars),
9166 field15 = translate(field15, printable_chars|| non_printable_chars, printable_chars)
9167 WHERE request_id = g_concurrent_request_id;
9168
9169 IF g_bookkeeping_type <> 'B' AND p_revert_negative_journals = 'Y' THEN
9170 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling revert_negative_journals proc');
9171 revert_negative_journals;
9172 END IF;
9173
9174 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling update_register_cnt proc');
9175 update_register_cnt;
9176
9177
9178
9179 -- FND_FILE.PUT_LINE(FND_FILE.LOG, 'Calling validation_after_extract proc');
9180 validation_after_extract;
9181 IF g_retcode = 2 THEN
9182 errbuf := g_errbuf;
9183 retcode := 2;
9184 purge_data(g_concurrent_request_id);
9185 commit;
9186 return;
9187 END IF;
9188
9189 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Calling purge_data proc');
9190 purge_data;
9191 IF g_retcode = 2 THEN
9192 errbuf := g_errbuf;
9193 retcode := 2;
9194 purge_data(g_concurrent_request_id);
9195 commit;
9196 return;
9197 END IF;
9198
9199
9200 BEGIN
9201 FND_FILE.PUT_LINE(FND_FILE.LOG,'');
9202 FOR accts_rec in accts_with_invalid_jrl_amounts LOOP
9203
9204 FND_MESSAGE.SET_NAME('JL','JL_BR_SPED_INVALID_AMOUNTS');
9205 FND_MESSAGE.SET_TOKEN('COD_CTA',accts_rec.natural_acct);
9206 FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
9207
9208 END LOOP;
9209
9210 EXCEPTION
9211 WHEN OTHERS THEN
9212 IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
9213 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
9214 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Error While displaying the accounts that has one or more journal entries with more than 19 digits');
9215 END IF;
9216 END;
9217
9218
9219 UPDATE JL_BR_SPED_EXTR_PARAM -- After successfull data extraction, updating the data_exist column in Parameter's table.
9220 SET data_exist = 'Y'
9221 WHERE request_id = g_concurrent_request_id;
9222
9223
9224 IF p_gen_sped_text_file = 'Y' THEN
9225 /* p_gen_sped_text_file is a parameter which indicates whether to generate text file
9226 or not. So if the paramter value is 'Y' then submit request for text file generation program. */
9227
9228 l_request_id := fnd_request.submit_request ('JL',
9229 'JLBRASTF',
9230 '',
9231 '',
9232 FALSE,
9233 -- g_ledger_id,
9234 g_concurrent_request_id, -- request Id of data extract program
9235 'P' -- preliminary mode
9236 );
9237
9238 -- FND_FILE.PUT_LINE(FND_FILE.LOG,'Request Id: '|| l_request_id);
9239
9240 END IF; -- End for check on p_gen_sped_text_file.
9241 RETURN;
9242
9243 END main;
9244
9245 END JL_BR_SPED_DATA_EXTRACT_PKG;
9246