[Home] [Help]
PACKAGE BODY: APPS.JG_CREATE_JOURNALS_PKG
Source
1 PACKAGE BODY JG_CREATE_JOURNALS_PKG AS
2 /* $Header: jgzztalb.pls 120.2 2004/02/19 14:49:51 fholst ship $ */
3
4 /* ---------------------------------------------------------------------
5 | PRIVATE PROCEDURE |
6 | zero_fill_segments |
7 | DESCRIPTION |
8 | Every Accounting Flexfield segment other than the natural |
9 | account and the balancing segment is set to the longest valid |
10 | zero string |
11 | CALLED BY |
12 | create_journal_allocations |
13 --------------------------------------------------------------------- */
14 PROCEDURE zero_fill_segments(p_key_segment IN OUT NOCOPY KEY_SEGMENTS_TABLE) IS
15 BEGIN
16 JG_UTILITY_PKG.log( '> JG_CREATE_JOURNALS_PKG.Zero_Fill_Segments');
17 FOR j IN 1..JG_JOURNAL_ALLOCATIONS_PKG.G_num_of_segments LOOP
18 JG_UTILITY_PKG.debug( 'segmt posn = '||to_char(j));
19 JG_UTILITY_PKG.debug( 'ZF: segmt col name = '||JG_JOURNAL_ALLOCATIONS_PKG.G_zero_fill_arr(j).segment_col_name);
20 JG_UTILITY_PKG.debug( 'ZF: segmt zero string = '||JG_JOURNAL_ALLOCATIONS_PKG.G_zero_fill_arr(j).zero_string);
21 IF (JG_JOURNAL_ALLOCATIONS_PKG.G_zero_fill_arr(j).segment_col_name IS NOT NULL) THEN
22 p_key_segment(TO_NUMBER(SUBSTR(JG_JOURNAL_ALLOCATIONS_PKG.G_zero_fill_arr(j).segment_col_name, 8)))
23 := JG_JOURNAL_ALLOCATIONS_PKG.G_zero_fill_arr(j).zero_string;
24 END IF;
25 END LOOP;
26 JG_UTILITY_PKG.log( '> JG_CREATE_JOURNALS_PKG.Zero_Fill_Segments');
27 END zero_fill_segments;
28
29 /* ---------------------------------------------------------------------
30 | PRIVATE FUNCTION |
31 | insert_gl_interface |
32 | DESCRIPTION |
33 | Insert analytical account journal lines into the GL_INTERFACE |
34 | table. |
35 | CALLED BY |
36 | Create_Journal_Allocations |
37 | RETURNS |
38 | TRUE if row successfully created. |
39 --------------------------------------------------------------------- */
40 FUNCTION insert_gl_interface( lp_entered_dr IN NUMBER,
41 lp_entered_cr IN NUMBER,
42 lp_accounted_dr IN NUMBER,
43 lp_accounted_cr IN NUMBER,
44 lp_offset_group_bool IN BOOLEAN) RETURN BOOLEAN IS
45 BEGIN
46 JG_UTILITY_PKG.log('> JG_CREATE_JOURNALS_PKG.insert_gl_interface');
47
48 IF NOT lp_offset_group_bool THEN
49
50 INSERT INTO gl_interface ( STATUS,
51 LEDGER_ID, -- GC Ledger Architecture change
52 ACCOUNTING_DATE,
53 CURRENCY_CODE,
54 USER_CURRENCY_CONVERSION_TYPE,
55 CURRENCY_CONVERSION_DATE,
56 CURRENCY_CONVERSION_RATE,
57 DATE_CREATED,
58 CREATED_BY,
59 ACTUAL_FLAG,
60 USER_JE_CATEGORY_NAME,
61 USER_JE_SOURCE_NAME,
62 ENCUMBRANCE_TYPE_ID,
63 BUDGET_VERSION_ID,
64 SEGMENT1,
65 SEGMENT2,
66 SEGMENT3,
67 SEGMENT4,
68 SEGMENT5,
69 SEGMENT6,
70 SEGMENT7,
71 SEGMENT8,
72 SEGMENT9,
73 SEGMENT10,
74 SEGMENT11,
75 SEGMENT12,
76 SEGMENT13,
77 SEGMENT14,
78 SEGMENT15,
79 SEGMENT16,
80 SEGMENT17,
81 SEGMENT18,
82 SEGMENT19,
83 SEGMENT20,
84 SEGMENT21,
85 SEGMENT22,
86 SEGMENT23,
87 SEGMENT24,
88 SEGMENT25,
89 SEGMENT26,
90 SEGMENT27,
91 SEGMENT28,
92 SEGMENT29,
93 SEGMENT30,
94 ENTERED_DR,
95 ENTERED_CR,
96 ACCOUNTED_DR,
97 ACCOUNTED_CR,
98 REFERENCE1, -- Batch Name
99 REFERENCE2, -- Batch Description
100 REFERENCE4, -- Header Name
101 REFERENCE5, -- Header Description
102 REFERENCE6, -- Header Reference
103 REFERENCE10, -- Line Description
104 REFERENCE21, -- GL_JE_LINES.reference_1
105 REFERENCE22, -- GL_JE_LINES.reference_2
106 STAT_AMOUNT,
107 SUBLEDGER_DOC_SEQUENCE_ID,
108 SUBLEDGER_DOC_SEQUENCE_VALUE,
109 ATTRIBUTE1,
110 ATTRIBUTE2,
111 ATTRIBUTE3,
112 ATTRIBUTE4,
113 ATTRIBUTE5,
114 ATTRIBUTE6,
115 ATTRIBUTE7,
116 ATTRIBUTE8,
117 ATTRIBUTE9,
118 ATTRIBUTE10,
119 ATTRIBUTE11,
120 ATTRIBUTE12,
121 ATTRIBUTE13,
122 ATTRIBUTE14,
123 ATTRIBUTE15,
124 ATTRIBUTE16,
125 ATTRIBUTE17,
126 ATTRIBUTE18,
127 ATTRIBUTE19,
128 ATTRIBUTE20,
129 CONTEXT,
130 CONTEXT2,
131 INVOICE_DATE,
132 TAX_CODE,
133 INVOICE_IDENTIFIER,
134 INVOICE_AMOUNT,
135 CONTEXT3,
136 USSGL_TRANSACTION_CODE,
137 JGZZ_RECON_REF,
138 PERIOD_NAME)
139 VALUES
140 ( 'NEW',
141 JG_JOURNAL_ALLOCATIONS_PKG.G_destn_set_of_books_id,
142 JG_JOURNAL_ALLOCATIONS_PKG.G_GL_end_date,
143 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type,'E',
144 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_code,
145 'A',
146 JG_JOURNAL_ALLOCATIONS_PKG.G_functional_currency),
147 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type,'E',
148 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_conversion_type,
149 'A',
150 DECODE(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_code,
151 JG_JOURNAL_ALLOCATIONS_PKG.G_functional_currency,
152 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_conversion_type,
153 JG_JOURNAL_ALLOCATIONS_PKG.G_translated_user)),
154 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type,'E',
155 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_conversion_date,
156 'A',
157 DECODE(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_code,
158 JG_JOURNAL_ALLOCATIONS_PKG.G_functional_currency,
159 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_conversion_date,
160 sysdate)),
161 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type,'E',
162 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_conversion_rate,
163 'A',
164 DECODE(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_code,
165 JG_JOURNAL_ALLOCATIONS_PKG.G_functional_currency,
166 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_conversion_rate,
167 1)),
168 SYSDATE,
169 JG_JOURNAL_ALLOCATIONS_PKG.G_user_id,
170 JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type,
171 JG_JOURNAL_ALLOCATIONS_PKG.G_user_je_category_name,
172 JG_JOURNAL_ALLOCATIONS_PKG.G_user_je_source_name,
173 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type,'E',
174 JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type_id),
175 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type,'B',
176 JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type_id),
177 JG_CREATE_JOURNALS_PKG.G_key_segment( 1 ),
178 JG_CREATE_JOURNALS_PKG.G_key_segment( 2 ),
179 JG_CREATE_JOURNALS_PKG.G_key_segment( 3 ),
180 JG_CREATE_JOURNALS_PKG.G_key_segment( 4 ),
181 JG_CREATE_JOURNALS_PKG.G_key_segment( 5 ),
182 JG_CREATE_JOURNALS_PKG.G_key_segment( 6 ),
183 JG_CREATE_JOURNALS_PKG.G_key_segment( 7 ),
184 JG_CREATE_JOURNALS_PKG.G_key_segment( 8 ),
185 JG_CREATE_JOURNALS_PKG.G_key_segment( 9 ),
186 JG_CREATE_JOURNALS_PKG.G_key_segment( 10 ),
187 JG_CREATE_JOURNALS_PKG.G_key_segment( 11 ),
188 JG_CREATE_JOURNALS_PKG.G_key_segment( 12 ),
189 JG_CREATE_JOURNALS_PKG.G_key_segment( 13 ),
190 JG_CREATE_JOURNALS_PKG.G_key_segment( 14 ),
191 JG_CREATE_JOURNALS_PKG.G_key_segment( 15 ),
192 JG_CREATE_JOURNALS_PKG.G_key_segment( 16 ),
193 JG_CREATE_JOURNALS_PKG.G_key_segment( 17 ),
194 JG_CREATE_JOURNALS_PKG.G_key_segment( 18 ),
195 JG_CREATE_JOURNALS_PKG.G_key_segment( 19 ),
196 JG_CREATE_JOURNALS_PKG.G_key_segment( 20 ),
197 JG_CREATE_JOURNALS_PKG.G_key_segment( 21 ),
198 JG_CREATE_JOURNALS_PKG.G_key_segment( 22 ),
199 JG_CREATE_JOURNALS_PKG.G_key_segment( 23 ),
200 JG_CREATE_JOURNALS_PKG.G_key_segment( 24 ),
201 JG_CREATE_JOURNALS_PKG.G_key_segment( 25 ),
202 JG_CREATE_JOURNALS_PKG.G_key_segment( 26 ),
203 JG_CREATE_JOURNALS_PKG.G_key_segment( 27 ),
204 JG_CREATE_JOURNALS_PKG.G_key_segment( 28 ),
205 JG_CREATE_JOURNALS_PKG.G_key_segment( 29 ),
206 JG_CREATE_JOURNALS_PKG.G_key_segment( 30 ),
207 lp_entered_dr,
208 lp_entered_cr,
209 lp_accounted_dr,
210 lp_accounted_cr,
211 JG_CREATE_JOURNALS_PKG.G_Batch_Name, -- Reference1
212 JG_CREATE_JOURNALS_PKG.G_Batch_Name, -- Reference2
213 JG_CREATE_JOURNALS_PKG.G_Journal_Name, -- Reference4
214 JG_CREATE_JOURNALS_PKG.G_Journal_Description, -- Reference5
215 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.external_reference,-- Reference6
216 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_header_name ||
217 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type, 'A',
218 '/' ||JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_doc_sequence_name || '/' ||
219 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_doc_sequence_value || '/' ||
220 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_line_num, NULL), -- Reference 10
221 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_header_id,
222 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_line_num,
223 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.stat_amount,
224 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.subledger_doc_sequence_id,
225 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.subledger_doc_sequence_value,
226 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute1,
227 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute2,
228 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute3,
229 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute4,
230 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute5,
231 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute6,
232 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute7,
233 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute8,
234 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute9,
235 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute10,
236 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute11,
237 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute12,
238 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute13,
239 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute14,
240 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute15,
241 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute16,
242 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute17,
243 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute18,
244 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute19,
245 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.attribute20,
246 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.context,
247 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.context2,
248 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.invoice_date,
249 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.tax_code,
250 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.invoice_identifier,
251 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.invoice_amount,
252 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.context3,
253 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.ussgl_transaction_code,
254 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.jgzz_recon_ref,
255 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type, 'B',
256 JG_JOURNAL_ALLOCATIONS_PKG.G_destn_period_name, NULL));
257
258 ELSE -- Inserting line for an offset group total
259
260
261 INSERT INTO gl_interface ( STATUS,
262 LEDGER_ID, -- GC Ledger Architecture change
263 ACCOUNTING_DATE,
264 CURRENCY_CODE,
265 USER_CURRENCY_CONVERSION_TYPE,
266 CURRENCY_CONVERSION_DATE,
267 CURRENCY_CONVERSION_RATE,
268 DATE_CREATED,
269 CREATED_BY,
270 ACTUAL_FLAG,
271 USER_JE_CATEGORY_NAME,
272 USER_JE_SOURCE_NAME,
273 ENCUMBRANCE_TYPE_ID,
274 BUDGET_VERSION_ID,
275 SEGMENT1,
276 SEGMENT2,
277 SEGMENT3,
278 SEGMENT4,
279 SEGMENT5,
280 SEGMENT6,
281 SEGMENT7,
282 SEGMENT8,
283 SEGMENT9,
284 SEGMENT10,
285 SEGMENT11,
286 SEGMENT12,
287 SEGMENT13,
288 SEGMENT14,
289 SEGMENT15,
290 SEGMENT16,
291 SEGMENT17,
292 SEGMENT18,
293 SEGMENT19,
294 SEGMENT20,
295 SEGMENT21,
296 SEGMENT22,
297 SEGMENT23,
298 SEGMENT24,
299 SEGMENT25,
300 SEGMENT26,
301 SEGMENT27,
302 SEGMENT28,
303 SEGMENT29,
304 SEGMENT30,
305 ENTERED_DR,
306 ENTERED_CR,
307 ACCOUNTED_DR,
308 ACCOUNTED_CR,
309 REFERENCE1, -- Batch Name
310 REFERENCE2, -- Batch Description
311 REFERENCE4, -- Header Name
312 REFERENCE5, -- Header Description
313 REFERENCE6, -- Header Reference
314 REFERENCE10, -- Line Description
315 REFERENCE21, -- GL_JE_LINES.reference_1
316 REFERENCE22, -- GL_JE_LINES.reference_2
317 STAT_AMOUNT,
318 SUBLEDGER_DOC_SEQUENCE_ID,
319 SUBLEDGER_DOC_SEQUENCE_VALUE,
320 ATTRIBUTE1,
321 ATTRIBUTE2,
322 ATTRIBUTE3,
323 ATTRIBUTE4,
324 ATTRIBUTE5,
325 ATTRIBUTE6,
326 ATTRIBUTE7,
327 ATTRIBUTE8,
328 ATTRIBUTE9,
329 ATTRIBUTE10,
330 ATTRIBUTE11,
331 ATTRIBUTE12,
332 ATTRIBUTE13,
333 ATTRIBUTE14,
334 ATTRIBUTE15,
335 ATTRIBUTE16,
336 ATTRIBUTE17,
337 ATTRIBUTE18,
338 ATTRIBUTE19,
339 ATTRIBUTE20,
340 CONTEXT,
341 CONTEXT2,
342 INVOICE_DATE,
343 TAX_CODE,
344 INVOICE_IDENTIFIER,
345 INVOICE_AMOUNT,
346 CONTEXT3,
347 USSGL_TRANSACTION_CODE,
348 JGZZ_RECON_REF,
349 PERIOD_NAME)
350 VALUES
351 ( 'NEW',
352 JG_JOURNAL_ALLOCATIONS_PKG.G_destn_set_of_books_id,
353 JG_JOURNAL_ALLOCATIONS_PKG.G_GL_end_date,
354 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type,'E',
355 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_code,
356 'A',
357 JG_JOURNAL_ALLOCATIONS_PKG.G_functional_currency),
358 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type,'E',
359 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_conversion_type,
360 'A',
361 DECODE(JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_code,
362 JG_JOURNAL_ALLOCATIONS_PKG.G_functional_currency,
363 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_conversion_type,
364 JG_JOURNAL_ALLOCATIONS_PKG.G_translated_user)),
365 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type,'E',
366 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_conversion_date,
367 'A',
368 DECODE(JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_code,
369 JG_JOURNAL_ALLOCATIONS_PKG.G_functional_currency,
370 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_conversion_date,
371 SYSDATE)),
372 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type,'E',
373 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_conversion_rate,
374 'A',
375 DECODE(JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_code,
376 JG_JOURNAL_ALLOCATIONS_PKG.G_functional_currency,
377 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_conversion_rate,
378 1)),
379 SYSDATE,
380 JG_JOURNAL_ALLOCATIONS_PKG.G_user_id,
381 JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type,
382 JG_JOURNAL_ALLOCATIONS_PKG.G_user_je_category_name,
383 JG_JOURNAL_ALLOCATIONS_PKG.G_user_je_source_name,
384 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type,'E',
385 JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type_id),
386 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type,'B',
387 JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type_id),
388 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 1 ),
389 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 2 ),
390 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 3 ),
391 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 4 ),
392 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 5 ),
393 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 6 ),
394 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 7 ),
395 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 8 ),
396 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 9 ),
397 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 10 ),
398 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 11 ),
399 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 12 ),
400 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 13 ),
401 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 14 ),
402 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 15 ),
403 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 16 ),
404 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 17 ),
405 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 18 ),
406 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 19 ),
407 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 20 ),
408 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 21 ),
409 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 22 ),
410 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 23 ),
411 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 24 ),
412 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 25 ),
413 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 26 ),
414 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 27 ),
415 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 28 ),
416 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 29 ),
417 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment( 30 ),
418 lp_entered_dr,
419 lp_entered_cr,
420 lp_accounted_dr,
421 lp_accounted_cr,
422 JG_CREATE_JOURNALS_PKG.G_Batch_Name, -- Reference1
423 JG_CREATE_JOURNALS_PKG.G_Batch_Name, -- Reference2
424 JG_CREATE_JOURNALS_PKG.G_Journal_Name, -- Reference4
425 JG_CREATE_JOURNALS_PKG.G_Journal_Description, -- Reference5
426 NULL,-- Reference6
427 NULL, -- Reference 10
428 NULL,
429 NULL,
430 NULL,
431 NULL,
432 NULL,
433 NULL,
434 NULL,
435 NULL,
436 NULL,
437 NULL,
438 NULL,
439 NULL,
440 NULL,
441 NULL,
442 NULL,
443 NULL,
444 NULL,
445 NULL,
446 NULL,
447 NULL,
448 NULL,
449 NULL,
450 NULL,
451 NULL,
452 NULL,
453 NULL,
454 NULL,
455 NULL,
456 NULL,
457 NULL,
458 NULL,
459 NULL,
460 NULL,
461 NULL,
462 DECODE(JG_JOURNAL_ALLOCATIONS_PKG.G_balance_type, 'B',
463 JG_JOURNAL_ALLOCATIONS_PKG.G_destn_period_name, NULL));
464
465 END IF;
466
467 JG_UTILITY_PKG.log('< JG_CREATE_JOURNALS_PKG.insert_gl_interface');
468 RETURN TRUE;
469 EXCEPTION
470 WHEN OTHERS THEN
471 JG_UTILITY_PKG.log('< JG_CREATE_JOURNALS_PKG.insert_gl_interface');
472 JG_UTILITY_PKG.log(sqlerrm);
473 RETURN FALSE;
474 END insert_gl_interface;
475
476 /* ---------------------------------------------------------------------
477 | PUBLIC PROCEDURE |
478 | Create_Offset_For_Acct_Range |
479 | DESCRIPTION |
480 | Creates an offset line in GL_Interface for the account range |
481 | total. |
482 | CALLED BY |
483 | Create_Journal_Allocations |
484 --------------------------------------------------------------------- */
485 PROCEDURE create_offset_for_acct_range IS
486 l_net_total_accted_offset_amt NUMBER := 0;
487 l_net_dr_accted_offset_total NUMBER := 0;
488 l_net_cr_accted_offset_total NUMBER := 0;
489 l_net_total_entered_offset_amt NUMBER := 0;
490 l_net_dr_entered_offset_total NUMBER := 0;
491 l_net_cr_entered_offset_total NUMBER := 0;
492 l_range_offset_remark VARCHAR2(240) := NULL;
493 BEGIN
494 JG_UTILITY_PKG.log('> JG_CREATE_JOURNALS_PKG.create_offset_for_acct_range');
495 --
496 -- Need to zero-fill segments for offset group insert other than the balancing segment and natural account
497 -- Use separate array to store zeros as Zero-Fill method may not have been chosen for journal allocation.
498 --
499 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment := JG_CREATE_JOURNALS_PKG.G_key_segment;
500 JG_CREATE_JOURNALS_PKG.zero_fill_segments(JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment);
501 JG_CREATE_JOURNALS_PKG.G_offset_grp_key_segment(JG_JOURNAL_ALLOCATIONS_PKG.G_acct_key_element) :=
502 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.offset_account;
503 --
504 -- Calculate net totals
505 --
506 l_net_total_accted_offset_amt := NVL(JG_CREATE_JOURNALS_PKG.G_total_offset_accted_cr_amt, 0) -
507 NVL(JG_CREATE_JOURNALS_PKG.G_total_offset_accted_dr_amt, 0);
508 l_net_total_entered_offset_amt := NVL(JG_CREATE_JOURNALS_PKG.G_total_offset_entered_cr_amt, 0) -
509 NVL(JG_CREATE_JOURNALS_PKG.G_total_offset_entered_dr_amt, 0);
510
511 -- Don't create offset line if net total is zero
512 IF l_net_total_accted_offset_amt <> 0 THEN
513
514 --
515 -- Calculate credit and debit amounts
516 --
517 IF SIGN(l_net_total_accted_offset_amt) = '-1' THEN
518 l_net_dr_accted_offset_total := ABS(l_net_total_accted_offset_amt);
519 l_net_cr_accted_offset_total := NULL;
520 IF JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type = 'E' THEN
521 l_net_dr_entered_offset_total := ABS(l_net_total_entered_offset_amt);
522 l_net_cr_entered_offset_total := NULL;
523 ELSE
524 l_net_dr_entered_offset_total := ABS(l_net_total_accted_offset_amt);
525 l_net_cr_entered_offset_total := NULL;
526 END IF;
527 ELSE
528 l_net_dr_accted_offset_total := NULL;
529 l_net_cr_accted_offset_total := ABS(l_net_total_accted_offset_amt);
530 IF JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type = 'E' THEN
531 l_net_dr_entered_offset_total := NULL;
532 l_net_cr_entered_offset_total := ABS(l_net_total_entered_offset_amt);
533 ELSE
534 l_net_dr_entered_offset_total := NULL;
535 l_net_cr_entered_offset_total := ABS(l_net_total_accted_offset_amt);
536 END IF;
537 END IF;
538
539 IF (JG_JOURNAL_ALLOCATIONS_PKG.G_validate_only = 'N') THEN
540 --
541 -- Insert for offset account (one line that is the net of the credits and debits)
542 --
543 IF NOT JG_CREATE_JOURNALS_PKG.insert_gl_interface(l_net_dr_entered_offset_total,
544 l_net_cr_entered_offset_total,
545 l_net_dr_accted_offset_total,
546 l_net_cr_accted_offset_total,
547 TRUE) THEN
548 FND_MESSAGE.SET_NAME(JG_JOURNAL_ALLOCATIONS_PKG.G_JG_appln_short_name , 'JG_ZZ_GL_INTERFACE_INSERT');
549 JG_CREATE_JOURNALS_PKG.write_error_to_output;
550 RAISE APP_EXCEPTION.application_exception;
551 END IF;
552 END IF;
553 --
554 -- populate array for reporting allocated lines at end of program
555 -- for offset account: one line for the net credits/debits total
556 --
557 -- increment array counter
558 JG_CREATE_JOURNALS_PKG.i := JG_CREATE_JOURNALS_PKG.i + 1;
559
560 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_batch_name := 'OFFSET FOR ACCOUNT RANGE';
561 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_header_name := NULL;
562 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_line_num := NULL;
563 --
564 -- Use the code combination id of the last row to build the output accounting flexfield of the offset line
565 --
566 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).code_combination_id
567 := JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.code_combination_id;
568 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).cc_range_id
569 := JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.cc_range_id;
570 FND_MESSAGE.SET_NAME (JG_JOURNAL_ALLOCATIONS_PKG.G_JG_appln_short_name ,'JG_ZZ_JGZZTAJA_RANGE_OFFSET');
571 l_range_offset_remark := substr(FND_MESSAGE.GET,1,240);
572 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).remarks := l_range_offset_remark;
573 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).accounted_cr := NULL;
574 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).accounted_dr := NULL;
575 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_account_number :=
576 JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.offset_account;
577 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_accted_cr := l_net_cr_accted_offset_total;
578 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_accted_dr := l_net_dr_accted_offset_total;
579 --
580 -- Cumulative totals for report output (allocated accts)
581 --
582 JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_cr_amt
583 := JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_cr_amt + NVL(l_net_cr_accted_offset_total, 0);
584 JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_dr_amt
585 := JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_dr_amt + NVL(l_net_dr_accted_offset_total, 0);
586
587 END IF; -- End of net 0 check
588
589 --
590 -- Reinitialize offset totals
591 --
592 JG_CREATE_JOURNALS_PKG.G_total_offset_accted_cr_amt := 0;
593 JG_CREATE_JOURNALS_PKG.G_total_offset_accted_dr_amt := 0;
594 JG_CREATE_JOURNALS_PKG.G_total_offset_entered_cr_amt := 0;
595 JG_CREATE_JOURNALS_PKG.G_total_offset_entered_dr_amt := 0;
596 JG_UTILITY_PKG.log('< JG_CREATE_JOURNALS_PKG.create_offset_for_acct_range');
597 END create_offset_for_acct_range;
598
599 /* ---------------------------------------------------------------------
600 | PUBLIC PROCEDURE |
601 | Write_Error_to_Output |
602 | DESCRIPTION |
603 | Write Error Line to the Output File; Also used for outputting |
604 | unallocated fiscal journals |
605 | CALLED BY |
606 | Create_Journal_Allocations |
607 --------------------------------------------------------------------- */
608 PROCEDURE write_error_to_output IS
609 l_acct_segments VARCHAR2(2000);
610 l_error_message VARCHAR2(2000) := NULL;
611 BEGIN
612 JG_UTILITY_PKG.log( '> JG_CREATE_JOURNALS_PKG.write_error_to_output');
613 --
614 -- Construct accounting flexfield segments string
615 --
616 l_acct_segments := fnd_flex_ext.get_segs(JG_JOURNAL_ALLOCATIONS_PKG.G_GL_appln_short_name,
617 JG_JOURNAL_ALLOCATIONS_PKG.G_GL_acct_flex_code,
618 JG_JOURNAL_ALLOCATIONS_PKG.G_chart_of_accounts_id,
619 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.code_combination_id);
620
621 JG_UTILITY_PKG.debug('acct string = '||l_acct_segments);
622
623 --
624 -- Get the latest message from the stack for error reporting
625 --
626 IF JG_JOURNAL_ALLOCATIONS_PKG.G_unalloc_request_id IS NULL THEN -- Error Reporting
627 l_error_message := FND_MESSAGE.GET;
628 JG_JOURNAL_ALLOCATIONS_PKG.G_errbuf := l_error_message;
629 JG_UTILITY_PKG.out(
630 RPAD(SUBSTR(NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_batch_name, ' '), 1, 20), 20)||' '||
631 RPAD(SUBSTR(NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_header_name, ' '), 1, 19), 19)||' '||
632 RPAD(SUBSTR(NVL(l_acct_segments, ' '), 1, 35), 35)||' '||
633 LPAD(SUBSTR(NVL(TO_CHAR(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_line_num), ' '), 1, 3), 3)||' '||
634 LPAD(SUBSTR(NVL(TO_CHAR(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_dr,
635 JG_ALLOCATE_JOURNALS_PKG.G_currency_format_mask), ' ') ,1,15), 15)||' '||
636 LPAD(SUBSTR(NVL(TO_CHAR(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_cr,
637 JG_ALLOCATE_JOURNALS_PKG.G_currency_format_mask), ' ') ,1,15),15)||' '||l_error_message);
638 ELSE -- Unallocation Reporting
639 JG_UTILITY_PKG.out(
640 RPAD(SUBSTR(NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_batch_name, ' '), 1, 20), 20)||' '||
641 RPAD(SUBSTR(NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_header_name, ' '), 1, 19), 19)||' '||
642 RPAD(SUBSTR(NVL(l_acct_segments, ' '), 1, 35), 35)||' '||
643 LPAD(SUBSTR(NVL(TO_CHAR(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_line_num), ' '), 1, 3), 3)||' '||
644 LPAD(SUBSTR(NVL(TO_CHAR(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_dr,
645 JG_ALLOCATE_JOURNALS_PKG.G_currency_format_mask), ' ') ,1,15), 15)||' '||
646 LPAD(SUBSTR(NVL(TO_CHAR(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_cr,
647 JG_ALLOCATE_JOURNALS_PKG.G_currency_format_mask), ' ') ,1,15),15));
648 END IF;
649 JG_UTILITY_PKG.log('< JG_CREATE_JOURNALS_PKG.write_error_to_output');
650 END write_error_to_output;
651
652 /* ------------------------------------------------------------------------------
653 | PUBLIC PROCEDURE |
654 | create_journal |
655 | DESCRIPTION |
656 | Allocates the Journals |
657 | Pseudocode: |
658 | FOR each journal line LOOP |
659 | (create_journal starts here) |
660 | IF current line falls under a different account range than previous |
661 | AND previous had an offset acct defined at the acct range level THEN |
662 | create account range level offset allocation line |
663 | END IF |
664 | FOR account range rule line LOOP |
665 | Check if current allocation line has max percentage so far |
666 | Add allocation line to array for later reporting and inserting |
667 | IF offset account is defined against the rule line THEN |
668 | Add offset allocation line to array |
669 | END IF |
670 | END LOOP |
671 | Compare original entered/accounted amounts with total of allocated |
672 | amounts and calculate any rounding errors. |
673 | Add rounding errors to amounts of allocation line and offset line |
674 | with the max percentage in the array |
675 | Insert source journal allocation lines into GL_INTERFACE from array |
676 | (create_journal ends here) |
677 | END journal line LOOP |
678 | CALLED BY |
679 | JG_ALLOCATE_JOURNALS_PKG.allocate |
680 --------------------------------------------------------------------------------*/
681 PROCEDURE create_journal IS
682 --
683 -- Rule Line cursor
684 --
685 CURSOR c_rule_line IS
686 SELECT natural_account NATURAL_ACCOUNT,
687 allocation_percent ALLOCATION_PERCENT,
688 offset_account OFFSET_ACCOUNT,
689 rule_line_id RULE_LINE_ID
690 FROM jg_zz_ta_rule_lines
691 WHERE account_range_id = JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.account_range_id;
692
693 l_accted_credit_amount GL_JE_LINES.entered_dr%TYPE:= 0;
694 l_accted_debit_amount GL_JE_LINES.entered_dr%TYPE:= 0;
695 l_entered_credit_amount GL_JE_LINES.entered_dr%TYPE:= 0;
696 l_entered_debit_amount GL_JE_LINES.entered_dr%TYPE:= 0;
697 l_cc_range_code VARCHAR2(100) := NULL;
698 l_first_alloc_for_jrnal NUMBER;
699 l_max_prc_alloc_for_jrnal NUMBER := 0;
700 l_is_max_prc_alloc_line BOOLEAN := FALSE;
701 l_max_prc_alloc_line_for_jrnal NUMBER := NULL;
702 l_max_prc_offst_line_for_jrnal NUMBER := NULL;
703 l_rounded_accted_cr_sum NUMBER := 0;
704 l_rounded_accted_dr_sum NUMBER := 0;
705 l_rounded_entered_cr_sum NUMBER := 0;
706 l_rounded_entered_dr_sum NUMBER := 0;
707 BEGIN
708 JG_UTILITY_PKG.log('> JG_CREATE_JOURNALS_PKG.create_journal');
709 --
710 -- Only create offset row if latest fiscal journal line falls into a different account range than the last line.
711 -- We are inserting an offset line for all lines under the same account range up to the last journal record.
712 -- Separate offset range also created if the currency has changed, journal import implicitly creates a separate
713 -- journal header per currency if the entered amounts are in different currencies.
714 --
715 JG_UTILITY_PKG.debug( ' current acct range id = '||to_char(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.account_range_id));
716 JG_UTILITY_PKG.debug( ' last acct range id = '||to_char(JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.account_range_id));
717 JG_UTILITY_PKG.debug( ' last offset account = '||JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.offset_account);
718 IF JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.offset_account IS NOT NULL AND
719 ((JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.account_range_id <>
720 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.account_range_id) OR
721 ((JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.l_je_lines_v_rec.currency_code <>
722 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.currency_code) AND JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type = 'E')) THEN
723 JG_UTILITY_PKG.debug( ' creating offset line for acct range ');
724 JG_CREATE_JOURNALS_PKG.create_offset_for_acct_range;
725 END IF;
726
727
728 IF (JG_JOURNAL_ALLOCATIONS_PKG.G_Destn_Cost_Center_Grouping = 'Y') THEN
729 --
730 -- Set the Journal Header Name to include Cost Center Range Description; supply the cc range id if the description is null
731 --
732 l_cc_range_code := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_low||' - '||JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_high;
733 JG_CREATE_JOURNALS_PKG.G_Journal_Name := NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_description,
734 TO_CHAR(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_id));
735 JG_CREATE_JOURNALS_PKG.G_Journal_Description := NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_description||' '||l_cc_range_code,
736 l_cc_range_code);
737 JG_UTILITY_PKG.debug('Journal Header = ' || JG_CREATE_JOURNALS_PKG.G_Journal_Name);
738 END IF;
739
740
741 IF (JG_JOURNAL_ALLOCATIONS_PKG.G_validate_only = 'N') THEN
742 --
743 -- Build destination account
744 --
745 JG_CREATE_JOURNALS_PKG.G_key_segment( 1 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment1;
746 JG_CREATE_JOURNALS_PKG.G_key_segment( 2 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment2;
747 JG_CREATE_JOURNALS_PKG.G_key_segment( 3 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment3;
748 JG_CREATE_JOURNALS_PKG.G_key_segment( 4 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment4;
749 JG_CREATE_JOURNALS_PKG.G_key_segment( 5 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment5;
750 JG_CREATE_JOURNALS_PKG.G_key_segment( 6 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment6;
751 JG_CREATE_JOURNALS_PKG.G_key_segment( 7 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment7;
752 JG_CREATE_JOURNALS_PKG.G_key_segment( 8 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment8;
753 JG_CREATE_JOURNALS_PKG.G_key_segment( 9 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment9;
754 JG_CREATE_JOURNALS_PKG.G_key_segment(10 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment10;
755 JG_CREATE_JOURNALS_PKG.G_key_segment(11 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment11;
756 JG_CREATE_JOURNALS_PKG.G_key_segment(12 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment12;
757 JG_CREATE_JOURNALS_PKG.G_key_segment(13 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment13;
758 JG_CREATE_JOURNALS_PKG.G_key_segment(14 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment14;
759 JG_CREATE_JOURNALS_PKG.G_key_segment(15 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment15;
760 JG_CREATE_JOURNALS_PKG.G_key_segment(16 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment16;
761 JG_CREATE_JOURNALS_PKG.G_key_segment(17 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment17;
762 JG_CREATE_JOURNALS_PKG.G_key_segment(18 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment18;
763 JG_CREATE_JOURNALS_PKG.G_key_segment(19 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment19;
764 JG_CREATE_JOURNALS_PKG.G_key_segment(20 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment20;
765 JG_CREATE_JOURNALS_PKG.G_key_segment(21 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment21;
766 JG_CREATE_JOURNALS_PKG.G_key_segment(22 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment22;
767 JG_CREATE_JOURNALS_PKG.G_key_segment(23 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment23;
768 JG_CREATE_JOURNALS_PKG.G_key_segment(24 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment24;
769 JG_CREATE_JOURNALS_PKG.G_key_segment(25 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment25;
770 JG_CREATE_JOURNALS_PKG.G_key_segment(26 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment26;
771 JG_CREATE_JOURNALS_PKG.G_key_segment(27 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment27;
772 JG_CREATE_JOURNALS_PKG.G_key_segment(28 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment28;
773 JG_CREATE_JOURNALS_PKG.G_key_segment(29 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment28;
774 JG_CREATE_JOURNALS_PKG.G_key_segment(30 ) := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.segment30;
775
776 --
777 -- Zero-Fill some of the segments if Zero-Fill method was chosen
778 --
779 IF JG_JOURNAL_ALLOCATIONS_PKG.G_destn_segment_method = 'ZF' THEN
780 zero_fill_segments(JG_CREATE_JOURNALS_PKG.G_key_segment);
781 END IF;
782 END IF; -- Validate_Only check
783 --
784 -- Store a pointer to the first entry in the allocation lines array for this journal line
785 --
786 l_first_alloc_for_jrnal := JG_CREATE_JOURNALS_PKG.i + 1;
787 --
788 -- loop for each destination account number and allocation
789 --
790 JG_UTILITY_PKG.debug(TO_CHAR(SYSDATE, 'HH24:MI:SS'));
791 FOR c_rule_line_rec IN c_rule_line LOOP
792 JG_UTILITY_PKG.debug( 'inner loop: start');
793 --
794 -- Calculate allocated account amounts based on the parameter amount_type and the precision of the currency,
795 -- any rounding errors are dealt with later down in the code once all rule lines for the journal have been fetched.
796 --
797 l_accted_credit_amount := ROUND(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_cr *
798 (c_rule_line_rec.allocation_percent / 100), JG_JOURNAL_ALLOCATIONS_PKG.G_func_currency_precision);
799 l_accted_debit_amount := ROUND(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_dr *
800 (c_rule_line_rec.allocation_percent / 100), JG_JOURNAL_ALLOCATIONS_PKG.G_func_currency_precision);
801 --
802 -- Entered Amount Type: set to entered amounts to accounted amounts if Amount Type parameter is 'Accounted'
803 --
804 IF (JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type = 'E') THEN
805 l_entered_credit_amount := ROUND(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_cr *
806 (c_rule_line_rec.allocation_percent / 100), JG_ALLOCATE_JOURNALS_PKG.G_currency_precision);
807 l_entered_debit_amount := ROUND(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_dr *
808 (c_rule_line_rec.allocation_percent / 100), JG_ALLOCATE_JOURNALS_PKG.G_currency_precision);
809 ELSE
810 l_entered_credit_amount := l_accted_credit_amount;
811 l_entered_debit_amount := l_accted_debit_amount;
812 END IF;
813 --
814 -- Store running totals of rounded allocation amounts to compare against the original journal amount and
815 -- determine any rounding error
816 --
817 l_rounded_accted_cr_sum := l_rounded_accted_cr_sum + NVL(l_accted_credit_amount, 0);
818 l_rounded_accted_dr_sum := l_rounded_accted_dr_sum + NVL(l_accted_debit_amount, 0);
819 l_rounded_entered_cr_sum := l_rounded_entered_cr_sum + NVL(l_entered_credit_amount, 0);
820 l_rounded_entered_dr_sum := l_rounded_entered_dr_sum + NVL(l_entered_debit_amount, 0);
821 JG_CREATE_JOURNALS_PKG.i := JG_CREATE_JOURNALS_PKG.i + 1;
822 --
823 -- Check if current allocation percentage is greater than any of previous percentages
824 -- for journal line. Any rounding error is applied to the line with the greatest allocation percentage.
825 --
826 IF NVL(l_max_prc_alloc_for_jrnal, 0) < c_rule_line_rec.allocation_percent AND
827 JG_ALLOCATE_JOURNALS_PKG.G_jrnl_total_allocn_percent = 100 THEN
828 l_is_max_prc_alloc_line := TRUE;
829 l_max_prc_alloc_for_jrnal := c_rule_line_rec.allocation_percent;
830 l_max_prc_alloc_line_for_jrnal := JG_CREATE_JOURNALS_PKG.i;
831 END IF;
832 --
833 -- Populate allocated lines table for reporting and later gl_interface insertion
834 --
835 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_batch_name
836 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_batch_name;
837 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_header_name
838 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_header_name;
839 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_line_num
840 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_line_num;
841 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).code_combination_id
842 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.code_combination_id;
843 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).cc_range_id
844 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_id;
845 IF JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_id <> NVL(JG_ALLOCATE_JOURNALS_PKG.G_last_journal_qry_rec.cc_range_id, -99)
846 AND l_first_alloc_for_jrnal = JG_CREATE_JOURNALS_PKG.i THEN
847 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).remarks :=
848 JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_low||' - '||JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_high;
849 END IF;
850 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).accounted_cr
851 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_cr;
852 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).accounted_dr
853 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_dr;
854 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_account_number
855 := c_rule_line_rec.natural_account;
856 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_accted_cr := l_accted_credit_amount;
857 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_accted_dr := l_accted_debit_amount;
858 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_entered_cr := l_entered_credit_amount;
859 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_entered_dr := l_entered_debit_amount;
860 JG_UTILITY_PKG.debug('Loop number = '||to_char(JG_CREATE_JOURNALS_PKG.i)||' '|| 'je_line_num = '||to_char(alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_line_num));
861
862 JG_UTILITY_PKG.debug( 'batch_name = '|| JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_batch_name);
863 JG_UTILITY_PKG.debug('header_name = '|| JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_header_name);
864 JG_UTILITY_PKG.debug('accounted_cr = '|| to_char(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_cr));
865 JG_UTILITY_PKG.debug('accounted_dr = '|| to_char(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_dr));
866 --
867 -- inserting an offset line for just the current journal record if the account range level offset account is null.
868 --
869 IF JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.offset_account IS NULL THEN
870 --
871 -- increment array counter
872 --
873 JG_CREATE_JOURNALS_PKG.i := JG_CREATE_JOURNALS_PKG.i + 1;
874 --
875 -- populate array for reporting allocated lines at end of program
876 -- for offset account: switch credits and debits for destination amounts
877 --
878 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_batch_name
879 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_batch_name;
880 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_header_name
881 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_header_name;
882 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_line_num
883 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.je_line_num;
884 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).code_combination_id
885 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.code_combination_id;
886 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).cc_range_id
887 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.cc_range_id;
888 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).accounted_cr
889 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_cr;
890 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).accounted_dr
891 := JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_dr;
892 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_account_number
893 := c_rule_line_rec.offset_account;
894 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_accted_cr := l_accted_debit_amount;
895 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_accted_dr := l_accted_credit_amount;
896 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_entered_cr := l_entered_debit_amount;
897 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).destn_entered_dr := l_entered_credit_amount;
898 --
899 -- If have max percentage allocation line so far, then set the offset line array number aswell
900 --
901 IF l_is_max_prc_alloc_line THEN
902 l_max_prc_offst_line_for_jrnal := JG_CREATE_JOURNALS_PKG.i;
903 END IF;
904 END IF; -- Is the account range level offset null?
905 l_is_max_prc_alloc_line := FALSE;
906 JG_UTILITY_PKG.debug('Loop number = '||to_char(JG_CREATE_JOURNALS_PKG.i)||' '|| 'je_line_num = '||to_char(alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).je_line_num));
907 END LOOP;
908 JG_UTILITY_PKG.debug(TO_CHAR(SYSDATE, 'HH24:MI:SS'));
909 --
910 -- Update entered and accounted amounts of max perc line with any rounding error total
911 --
912 IF JG_CREATE_JOURNALS_PKG.i >= l_first_alloc_for_jrnal THEN
913 --
914 -- Adjust calculated amounts with any rounding error difference if the line
915 -- is the maximum percentage line chosen and it is a full allocation of 100 percent
916 --
917 JG_UTILITY_PKG.debug( 'Perform rounding errors calculations');
918 IF NVL(l_rounded_accted_cr_sum, 0) <>
919 NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_cr, 0) THEN
920 IF l_max_prc_alloc_line_for_jrnal IS NOT NULL THEN
921 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_accted_cr :=
922 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_accted_cr +
923 (NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_cr, 0) - NVL(l_rounded_accted_cr_sum, 0));
924 END IF;
925 IF l_max_prc_offst_line_for_jrnal IS NOT NULL THEN
926 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_accted_dr :=
927 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_accted_dr +
928 (NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_cr, 0) - NVL(l_rounded_accted_cr_sum, 0));
929 END IF;
930 END IF;
931 IF NVL(l_rounded_accted_dr_sum, 0) <>
932 NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_dr, 0) THEN
933 IF l_max_prc_alloc_line_for_jrnal IS NOT NULL THEN
934 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_accted_dr :=
935 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_accted_dr +
936 (NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_dr, 0) - NVL(l_rounded_accted_dr_sum, 0));
937 END IF;
938 IF l_max_prc_offst_line_for_jrnal IS NOT NULL THEN
939 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_accted_cr :=
940 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_accted_cr +
941 (NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.accounted_dr, 0) - NVL(l_rounded_accted_dr_sum, 0));
942 END IF;
943 END IF;
944 IF (JG_JOURNAL_ALLOCATIONS_PKG.G_amount_type = 'E') THEN
945 IF NVL(l_rounded_entered_cr_sum, 0) <>
946 NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_cr, 0) THEN
947 IF l_max_prc_alloc_line_for_jrnal IS NOT NULL THEN
948 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_entered_cr :=
949 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_entered_cr +
950 (NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_cr, 0) - NVL(l_rounded_entered_cr_sum, 0));
951 END IF;
952 IF l_max_prc_offst_line_for_jrnal IS NOT NULL THEN
953 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_entered_dr :=
954 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_entered_dr +
955 (NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_cr, 0) - NVL(l_rounded_entered_cr_sum, 0));
956 END IF;
957 END IF;
958 IF NVL(l_rounded_entered_dr_sum, 0) <>
959 NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_dr, 0) THEN
960 IF l_max_prc_alloc_line_for_jrnal IS NOT NULL THEN
961 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_entered_dr :=
962 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_entered_dr +
963 (NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_dr, 0) - NVL(l_rounded_entered_dr_sum, 0));
964 END IF;
965 IF l_max_prc_offst_line_for_jrnal IS NOT NULL THEN
966 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_entered_cr :=
967 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_entered_cr +
968 (NVL(JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.l_je_lines_v_rec.entered_dr, 0) - NVL(l_rounded_entered_dr_sum, 0));
969 END IF;
970 END IF;
971 ELSE
972 IF l_max_prc_alloc_line_for_jrnal IS NOT NULL THEN
973 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_entered_cr :=
974 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_accted_cr;
975 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_entered_dr :=
976 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_alloc_line_for_jrnal).destn_accted_dr;
977 END IF;
978 IF l_max_prc_offst_line_for_jrnal IS NOT NULL THEN
979 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_entered_cr :=
980 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_accted_cr;
981 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_entered_dr :=
982 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(l_max_prc_offst_line_for_jrnal).destn_accted_dr;
983 END IF;
984 END IF; -- Amount_Type Check
985 --
986 -- Loop for all allocation lines to insert into GL Interface
987 -- Only if at least one allocation line has been found
988 --
989 FOR j IN l_first_alloc_for_jrnal .. JG_CREATE_JOURNALS_PKG.i LOOP
990 --
991 -- Cumulative totals for report output (allocated accts)
992 --
993 JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_cr_amt
994 := JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_cr_amt + NVL(JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_accted_cr, 0);
995 JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_dr_amt
996 := JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_dr_amt + NVL(JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_accted_dr, 0);
997 JG_UTILITY_PKG.debug('total_alloc_accted_cr_amt = '|| to_char(JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_cr_amt));
998 JG_UTILITY_PKG.debug('total_alloc_accted_dr_amt = '|| to_char(JG_CREATE_JOURNALS_PKG.G_total_alloc_accted_dr_amt));
999 IF JG_JOURNAL_ALLOCATIONS_PKG.G_validate_only = 'N' THEN
1000 JG_UTILITY_PKG.debug( 'Inserting Allocated Journal Line number '||to_char(j));
1001 JG_CREATE_JOURNALS_PKG.G_key_segment( JG_JOURNAL_ALLOCATIONS_PKG.G_acct_key_element ) :=
1002 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_account_number;
1003 IF NOT JG_CREATE_JOURNALS_PKG.insert_gl_interface
1004 (JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_entered_dr,
1005 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_entered_cr,
1006 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_accted_dr,
1007 JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_accted_cr,
1008 FALSE) THEN
1009 FND_MESSAGE.SET_NAME(JG_JOURNAL_ALLOCATIONS_PKG.G_JG_appln_short_name , 'JG_ZZ_GL_INTERFACE_INSERT');
1010 JG_CREATE_JOURNALS_PKG.write_error_to_output;
1011 RAISE APP_EXCEPTION.application_exception;
1012 END IF;
1013 END IF; -- Validate_Only?
1014
1015 --
1016 -- We also require running totals for the offset range line if an offset account has been
1017 -- defined at the account range level. If offset acct is at the account range level for the current
1018 -- line, then no offsets have been entered at the rule line level, this means that this current array loop
1019 -- will only contained allocated lines, no offsets. Hence, the below running totals will be correctly summed
1020 -- (inclusive of any rounding corrections).
1021 --
1022 IF (JG_ALLOCATE_JOURNALS_PKG.G_journal_qry_rec.offset_account IS NOT NULL) THEN
1023 JG_CREATE_JOURNALS_PKG.G_total_offset_accted_cr_amt := JG_CREATE_JOURNALS_PKG.G_total_offset_accted_cr_amt +
1024 NVL(JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_accted_dr, 0);
1025 JG_CREATE_JOURNALS_PKG.G_total_offset_accted_dr_amt := JG_CREATE_JOURNALS_PKG.G_total_offset_accted_dr_amt +
1026 NVL(JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_accted_cr, 0);
1027 JG_CREATE_JOURNALS_PKG.G_total_offset_entered_cr_amt := JG_CREATE_JOURNALS_PKG.G_total_offset_entered_cr_amt +
1028 NVL(JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_entered_dr, 0);
1029 JG_CREATE_JOURNALS_PKG.G_total_offset_entered_dr_amt := JG_CREATE_JOURNALS_PKG.G_total_offset_entered_dr_amt +
1030 NVL(JG_CREATE_JOURNALS_PKG.alloc_lines_arr(j).destn_entered_cr, 0);
1031 JG_UTILITY_PKG.debug( 'cumulative offset accted dr amt = '||to_char(JG_CREATE_JOURNALS_PKG.G_total_offset_accted_dr_amt));
1032 JG_UTILITY_PKG.debug( 'cumulative offset accted cr amt = '||to_char(JG_CREATE_JOURNALS_PKG.G_total_offset_accted_cr_amt));
1033 END IF;
1034 END LOOP;
1035 END IF; -- Have lines to allocate?
1036 JG_UTILITY_PKG.debug('code_comb_id = '|| to_char(alloc_lines_arr(JG_CREATE_JOURNALS_PKG.i).code_combination_id));
1037 JG_UTILITY_PKG.log('< JG_CREATE_JOURNALS_PKG.create_journal');
1038 END create_journal;
1039
1040 END JG_CREATE_JOURNALS_PKG;