[Home] [Help]
PACKAGE BODY: APPS.JAI_RCV_JOURNAL_PKG
Source
1 PACKAGE BODY jai_rcv_journal_pkg AS
2 /* $Header: jai_rcv_jrnl.plb 120.4 2006/05/26 11:52:04 lgopalsa ship $ */
3
4 /* --------------------------------------------------------------------------------------
5 Filename:
6
7 Change History:
8
9 Date Bug Remarks
10 --------- ---------- -------------------------------------------------------------
11 08-Jun-2005 Version 116.2 jai_rcv_jrnl -Object is Modified to refer to New DB Entity names in place of Old DB Entity Names
12 as required for CASE COMPLAINCE.
13
14 13-Jun-2005 4428980 File Version: 116.3
15 Ramananda for bug#4428980. Removal of SQL LITERALs is done
16 --------------------------------------------------------------------------------------*/
17
18 PROCEDURE insert_row(
19
20 P_ORGANIZATION_ID IN NUMBER,
21 P_ORGANIZATION_CODE IN JAI_RCV_JOURNAL_ENTRIES.organization_code%TYPE,
22 P_RECEIPT_NUM IN JAI_RCV_JOURNAL_ENTRIES.receipt_num%TYPE,
23 P_TRANSACTION_ID IN JAI_RCV_JOURNAL_ENTRIES.transaction_id%TYPE,
24 P_TRANSACTION_DATE IN JAI_RCV_JOURNAL_ENTRIES.transaction_date%TYPE,
25 P_SHIPMENT_LINE_ID IN JAI_RCV_JOURNAL_ENTRIES.shipment_line_id%TYPE,
26 P_ACCT_TYPE IN JAI_RCV_JOURNAL_ENTRIES.acct_type%TYPE,
27 P_ACCT_NATURE IN JAI_RCV_JOURNAL_ENTRIES.acct_nature%TYPE,
28 P_SOURCE_NAME IN JAI_RCV_JOURNAL_ENTRIES.source_name%TYPE,
29 P_CATEGORY_NAME IN JAI_RCV_JOURNAL_ENTRIES.category_name%TYPE,
30 P_CODE_COMBINATION_ID IN JAI_RCV_JOURNAL_ENTRIES.code_combination_id%TYPE,
31 P_ENTERED_DR IN JAI_RCV_JOURNAL_ENTRIES.entered_dr%TYPE,
32 P_ENTERED_CR IN JAI_RCV_JOURNAL_ENTRIES.entered_cr%TYPE,
33 P_TRANSACTION_TYPE IN JAI_RCV_JOURNAL_ENTRIES.transaction_type%TYPE,
34 P_PERIOD_NAME IN JAI_RCV_JOURNAL_ENTRIES.period_name%TYPE,
35 P_CURRENCY_CODE IN JAI_RCV_JOURNAL_ENTRIES.currency_code%TYPE,
36 P_CURRENCY_CONVERSION_TYPE IN JAI_RCV_JOURNAL_ENTRIES.currency_conversion_type%TYPE,
37 P_CURRENCY_CONVERSION_DATE IN JAI_RCV_JOURNAL_ENTRIES.currency_conversion_date%TYPE,
38 P_CURRENCY_CONVERSION_RATE IN JAI_RCV_JOURNAL_ENTRIES.currency_conversion_rate%TYPE,
39 P_SIMULATE_FLAG IN VARCHAR2, --File.Sql.35 Cbabu DEFAULT 'N',
40 P_PROCESS_STATUS OUT NOCOPY VARCHAR2,
41 P_PROCESS_MESSAGE OUT NOCOPY VARCHAR2,
42 /* two parameters added by Vijay Shankar for Bug#4250236(4245089). VAT Implementation */
43 p_reference_name in varchar2 ,
44 p_reference_id in number
45 ) IS
46
47 ld_creation_date DATE;
48 ln_created_by NUMBER;
49 ln_last_update_login JAI_RCV_JOURNAL_ENTRIES.LAST_UPDATE_LOGIN%TYPE ;
50
51 lv_period_name JAI_RCV_JOURNAL_ENTRIES.period_name%TYPE;
52 lv_organization_code ORG_ORGANIZATION_DEFINITIONS.organization_code%TYPE;
53
54 /* Bug 5243532. Added by Lakshmi Gopalsami
55 * Removed org_organization_definitions from the cursor c_period_name
56 * and passed set_of_books_id to the cursor. Also removed
57 * gl_sets_of_books and included gl_ledgers.
58 */
59
60 CURSOR c_period_name(cp_set_of_books_id IN NUMBER, cp_transaction_date IN DATE) IS
61 SELECT gd.period_name
62 FROM gl_ledgers gle, gl_periods gd
63 WHERE gle.ledger_id = cp_set_of_books_id
64 AND gd.period_set_name = gle.period_set_name
65 AND cp_transaction_date BETWEEN gd.start_date and gd.end_date
66 AND gd.adjustment_period_flag = 'N';
67
68 lv_statement_id VARCHAR2(5);
69
70 /* Bug 5243532. Added by Lakshmi Gopalsami
71 * Defined variable for implementing caching logic.
72 */
73 l_func_curr_det jai_plsql_cache_pkg.func_curr_details;
74 ln_set_of_books_id NUMBER;
75
76 BEGIN
77
78 /*----------------------------------------------------------------------------------------------------------------------------
79 CHANGE HISTORY for FILENAME: jai_rcv_journal_pkg.sql
80 S.No dd/mm/yyyy Author and Details
81 ------------------------------------------------------------------------------------------------------------------------------
82 1 16/07/2002 Vijay Shankar for Bug# 3496408, Version:115.0
83 Table Handler coded for JAI_RCV_JOURNAL_ENTRIES table. Update_row of the package was just a skeleton that needs to be modified
84 whenever it is being used
85
86 2 10/11/2004 Vijay Shankar for Bug#4003518, Version:115.1
87 Modified the INSERT_ROW definition to DEFAULT 'N' for p_simulate_flag parameter. without this, its not a
88 problem in Oracle8i, however it is problem in 9i and thus the bugfix
89
90 3 19/03/2005 Vijay Shankar for Bug#4250236(4245089). FileVersion: 115.2
91 added two more parameters in insert_row procedure as part of VAT Implementation
92 4 28/11/2005 Hjujjuru for the bug 4762433 File version 120.3
93 added the who columns in the insert of jai_rcv_journals.
94 Dependencies Due to this bug:-
95 None
96 Dependencies
97 IN60106 + 4245089
98 ----------------------------------------------------------------------------------------------------------------------------*/
99
100 ld_creation_date := SYSDATE;
101 ln_created_by := FND_GLOBAL.user_id;
102 ln_last_update_login := fnd_global.login_id; -- added, Harshita for Bug 4762433
103
104 lv_statement_id := '1';
105 IF p_period_name IS NULL OR p_organization_code IS NULL THEN
106 /* Bug 5243532. Added by Lakshmi Gopalsami
107 * Implemented caching logic for getting organization_code
108 */
109 l_func_curr_det := jai_plsql_cache_pkg.return_sob_curr
110 (p_org_id => p_organization_id);
111 lv_organization_code := l_func_curr_det.organization_code;
112 ln_set_of_books_id := l_func_curr_det.ledger_id;
113 /* Bug 5243532. Added by Lakshmi Gopalsami
114 * Passes ln_set_of_books_id instead of p_transaction_id
115 */
116 OPEN c_period_name(ln_set_of_books_id, trunc(p_transaction_date));
117 FETCH c_period_name INTO lv_period_name;
118 CLOSE c_period_name;
119 END IF;
120
121 lv_statement_id := '1.1';
122 IF p_period_name IS NOT NULL THEN
123 lv_period_name := p_period_name;
124 END IF;
125 IF p_organization_code IS NOT NULL THEN
126 lv_organization_code := p_organization_code;
127 END IF;
128
129 lv_statement_id := '2';
130 INSERT INTO JAI_RCV_JOURNAL_ENTRIES(JOURNAL_ENTRY_ID,
131 ORGANIZATION_CODE,
132 RECEIPT_NUM,
133 TRANSACTION_ID,
134 CREATION_DATE,
135 TRANSACTION_DATE,
136 SHIPMENT_LINE_ID,
137 ACCT_TYPE,
138 ACCT_NATURE,
139 SOURCE_NAME,
140 CATEGORY_NAME,
141 CODE_COMBINATION_ID,
142 ENTERED_DR,
143 ENTERED_CR,
144 TRANSACTION_TYPE,
145 PERIOD_NAME,
146 CREATED_BY,
147 CURRENCY_CODE,
148 CURRENCY_CONVERSION_TYPE,
149 CURRENCY_CONVERSION_DATE,
150 CURRENCY_CONVERSION_RATE,
151 -- DUMMY_FLAG,
152 /* following two parameters added by Vijay Shankar for Bug#4250236(JOURNAL_ENTRY_ID,4245089). VAT Implementation */
153 reference_name,
154 reference_id,
155 -- following 3 parameters added by Harshita for Bug 4762433
156 LAST_UPDATED_BY,
157 LAST_UPDATE_DATE,
158 LAST_UPDATE_LOGIN
159 ) VALUES (JAI_RCV_JOURNAL_ENTRIES_S.nextval,
160 lv_organization_code, -- P_ORGANIZATION_CODE,
161 P_RECEIPT_NUM,
162 P_TRANSACTION_ID,
163 ld_creation_date,
164 P_TRANSACTION_DATE,
165 P_SHIPMENT_LINE_ID,
166 P_ACCT_TYPE,
167 P_ACCT_NATURE,
168 P_SOURCE_NAME,
169 P_CATEGORY_NAME,
170 P_CODE_COMBINATION_ID,
171 P_ENTERED_DR,
172 P_ENTERED_CR,
173 P_TRANSACTION_TYPE,
174 lv_period_name,
175 ln_created_by,
176 P_CURRENCY_CODE,
177 P_CURRENCY_CONVERSION_TYPE,
178 P_CURRENCY_CONVERSION_DATE,
179 P_CURRENCY_CONVERSION_RATE,
180 -- p_simulate_flag,
181 p_reference_name,
182 p_reference_id,
183 ln_created_by, -- Harshita for Bug 4762433
184 ld_creation_date , -- Harshita for Bug 4762433
185 ln_last_update_login -- Harshita for Bug 4762433
186 );
187
188 EXCEPTION
189 WHEN OTHERS THEN
190 p_process_status := 'E';
191 p_process_message := 'RCV_JOURNALS_PKG.insert_row->'||SQLERRM||', StmtId->'||lv_statement_id;
192 FND_FILE.put_line( FND_FILE.log, p_process_message);
193
194 END insert_row;
195
196 PROCEDURE update_row(
197
198 P_ORGANIZATION_CODE IN JAI_RCV_JOURNAL_ENTRIES.organization_code%TYPE DEFAULT NULL,
199 P_RECEIPT_NUM IN JAI_RCV_JOURNAL_ENTRIES.receipt_num%TYPE DEFAULT NULL,
200 P_TRANSACTION_ID IN JAI_RCV_JOURNAL_ENTRIES.transaction_id%TYPE DEFAULT NULL,
201 P_CREATION_DATE IN JAI_RCV_JOURNAL_ENTRIES.creation_date%TYPE DEFAULT NULL,
202 P_TRANSACTION_DATE IN JAI_RCV_JOURNAL_ENTRIES.transaction_date%TYPE DEFAULT NULL,
203 P_SHIPMENT_LINE_ID IN JAI_RCV_JOURNAL_ENTRIES.shipment_line_id%TYPE DEFAULT NULL,
204 P_ACCT_TYPE IN JAI_RCV_JOURNAL_ENTRIES.acct_type%TYPE DEFAULT NULL,
205 P_ACCT_NATURE IN JAI_RCV_JOURNAL_ENTRIES.acct_nature%TYPE DEFAULT NULL,
206 P_SOURCE_NAME IN JAI_RCV_JOURNAL_ENTRIES.source_name%TYPE DEFAULT NULL,
207 P_CATEGORY_NAME IN JAI_RCV_JOURNAL_ENTRIES.category_name%TYPE DEFAULT NULL,
208 P_CODE_COMBINATION_ID IN JAI_RCV_JOURNAL_ENTRIES.code_combination_id%TYPE DEFAULT NULL,
209 P_ENTERED_DR IN JAI_RCV_JOURNAL_ENTRIES.entered_dr%TYPE DEFAULT NULL,
210 P_ENTERED_CR IN JAI_RCV_JOURNAL_ENTRIES.entered_cr%TYPE DEFAULT NULL,
211 P_TRANSACTION_TYPE IN JAI_RCV_JOURNAL_ENTRIES.transaction_type%TYPE DEFAULT NULL,
212 P_PERIOD_NAME IN JAI_RCV_JOURNAL_ENTRIES.period_name%TYPE DEFAULT NULL,
213 P_CREATED_BY IN JAI_RCV_JOURNAL_ENTRIES.created_by%TYPE DEFAULT NULL,
214 P_CURRENCY_CODE IN JAI_RCV_JOURNAL_ENTRIES.currency_code%TYPE DEFAULT NULL,
215 P_CURRENCY_CONVERSION_TYPE IN JAI_RCV_JOURNAL_ENTRIES.currency_conversion_type%TYPE DEFAULT NULL,
216 P_CURRENCY_CONVERSION_DATE IN JAI_RCV_JOURNAL_ENTRIES.currency_conversion_date%TYPE DEFAULT NULL,
217 P_CURRENCY_CONVERSION_RATE IN JAI_RCV_JOURNAL_ENTRIES.currency_conversion_rate%TYPE DEFAULT NULL
218 ) IS
219 BEGIN
220
221 UPDATE JAI_RCV_JOURNAL_ENTRIES SET
222 ORGANIZATION_CODE = nvl(P_ORGANIZATION_CODE, ORGANIZATION_CODE),
223 RECEIPT_NUM = nvl(P_RECEIPT_NUM, RECEIPT_NUM),
224 TRANSACTION_ID = nvl(P_TRANSACTION_ID, TRANSACTION_ID),
225 CREATION_DATE = nvl(P_CREATION_DATE, CREATION_DATE),
226 TRANSACTION_DATE = nvl(P_TRANSACTION_DATE, TRANSACTION_DATE),
227 SHIPMENT_LINE_ID = nvl(P_SHIPMENT_LINE_ID, SHIPMENT_LINE_ID),
228 ACCT_TYPE = nvl(P_ACCT_TYPE, ACCT_TYPE),
229 ACCT_NATURE = nvl(P_ACCT_NATURE, ACCT_NATURE),
230 SOURCE_NAME = nvl(P_SOURCE_NAME, SOURCE_NAME),
231 CATEGORY_NAME = nvl(P_CATEGORY_NAME, CATEGORY_NAME),
232 CODE_COMBINATION_ID = nvl(P_CODE_COMBINATION_ID, CODE_COMBINATION_ID),
233 ENTERED_DR = nvl(P_ENTERED_DR, ENTERED_DR),
234 ENTERED_CR = nvl(P_ENTERED_CR, ENTERED_CR),
235 TRANSACTION_TYPE = nvl(P_TRANSACTION_TYPE, TRANSACTION_TYPE),
236 PERIOD_NAME = nvl(P_PERIOD_NAME, PERIOD_NAME),
237 CREATED_BY = nvl(P_CREATED_BY, CREATED_BY),
238 CURRENCY_CODE = nvl(P_CURRENCY_CODE, CURRENCY_CODE),
239 CURRENCY_CONVERSION_TYPE = nvl(P_CURRENCY_CONVERSION_TYPE, CURRENCY_CONVERSION_TYPE),
240 CURRENCY_CONVERSION_DATE = nvl(P_CURRENCY_CONVERSION_DATE, CURRENCY_CONVERSION_DATE),
241 CURRENCY_CONVERSION_RATE = nvl(P_CURRENCY_CONVERSION_RATE, CURRENCY_CONVERSION_RATE)
242 WHERE transaction_id = p_transaction_id;
243
244 END update_row;
245
246 /*------------------------------------------------------------------------------------------------------------*/
247 PROCEDURE create_subledger_entry
248 (
249 p_transaction_id number,
250 p_organization_id number,
251 p_currency_code varchar2,
252 p_credit_amount number,
253 p_debit_amount number,
254 p_cc_id number,
255 p_created_by number,
256 p_accounting_date date default null,
257 p_currency_conversion_date date default null,
258 p_currency_conversion_type varchar2 default null,
259 p_currency_conversion_rate number default null
260 )IS
261
262 v_last_update_login number;
263 v_creation_date date;
264 v_created_by number;
265 v_last_update_date date;
266 v_last_updated_by number;
267 v_set_of_books_id number;
268 v_accounting_date date;
269 v_sysdate DATE; -- := SYSDATE; File.Sql.35 by Brathod
270 lv_object_name CONSTANT VARCHAR2 (61) := 'jai_rcv_journal_pkg.create_subledger_entry';
271
272 Cursor sub_cur IS
273 SELECT actual_flag,
274 je_source_name,
275 je_category_name,
276 period_name,
277 chart_of_accounts_id,
278 functional_currency_code,
279 je_batch_name,
280 je_batch_description,
281 je_header_name,
282 je_line_description,
283 reference1,
284 reference2,
285 reference3,
286 reference4,
287 source_doc_quantity
288 FROM rcv_receiving_sub_ledger
289 WHERE rcv_transaction_id = p_transaction_id
290 AND rownum = 1;
291
292 CURSOR rcv_cur IS
293 SELECT source_document_code,
294 shipment_line_id,
295 po_line_location_id,
296 requisition_line_id
297 FROM rcv_transactions
298 WHERE transaction_id = p_transaction_id;
299
300 v_rcv_rec rcv_cur % ROWTYPE;
301
302 CURSOR ship_rec IS
303 SELECT item_id
304 FROM rcv_shipment_lines
305 WHERE shipment_line_id = v_rcv_rec.shipment_line_id;
306
307 v_sub_rec sub_cur % ROWTYPE;
308 v_item_id rcv_shipment_lines.item_id % type;
309 v_unit_price number;
310 v_amount number;
311
312 /* Bug 5243532. Added by Lakshmi Gopalsami
313 * Defined variable for implementing caching logic.
314 */
315 l_func_curr_det jai_plsql_cache_pkg.func_curr_details;
316
317 BEGIN
318 v_sysdate := sysdate; --File.Sql.35 by Brathod
319 /* Bug 5243532. Added by Lakshmi Gopalsami
320 * Removed set_rec cursor and implemented caching logic.
321 */
322 l_func_curr_det := jai_plsql_cache_pkg.return_sob_curr
323 (p_org_id => p_organization_id);
324 v_set_of_books_id := l_func_curr_det.ledger_id;
325
326 OPEN sub_cur;
327 FETCH sub_cur INTO v_sub_rec;
328 CLOSE sub_cur;
329
330 IF v_sub_rec.je_source_name IS NOT NULL
331 THEN
332
333 OPEN rcv_cur;
334 FETCH rcv_cur INTO v_rcv_rec;
335 CLOSE rcv_cur;
336
337 OPEN ship_rec;
338 FETCH ship_rec INTO v_item_id;
339 CLOSE ship_rec;
340
341 IF v_rcv_rec.source_document_code = 'PO'
342 THEN
343 For price_rec IN (SELECT price_override
344 FROM po_line_locations_all
345 WHERE line_location_id = v_rcv_rec.po_line_location_id)
346 LOOP
347 v_unit_price := price_rec.price_override;
348 END LOOP;
349 ELSIF v_rcv_rec.source_document_code = 'INVENTORY'
350 THEN
351 For price_rec IN (SELECT list_price_per_unit price
352 FROM mtl_system_items
353 WHERE inventory_item_id = v_item_id
354 AND organization_id = p_organization_id)
355 LOOP
356 v_unit_price := price_rec.price;
357 END LOOP;
358 ELSIF v_rcv_rec.source_document_code = 'REQ'
359 THEN
360 For price_rec IN (SELECT unit_price
361 FROM po_requisition_lines_all
362 WHERE requisition_line_id = v_rcv_rec.requisition_line_id)
363 LOOP
364 v_unit_price := price_rec.unit_price;
365 END LOOP;
366 END IF;
367
368 v_amount := NVL(p_credit_amount, p_debit_amount);
369
370 IF v_amount is NOT NULL and v_unit_price <> 0 -- Added by Ramakrishna to overcome zero divide
371 THEN
372 v_amount := v_amount / v_unit_price;
373 END IF;
374
375 IF p_accounting_date is null
376 THEN
377 v_accounting_date := v_sysdate;
378 ELSE
379 v_accounting_date := p_accounting_date;
380 END IF;
381
382 IF NVL(p_credit_amount, 0) <> 0 OR
383 NVL(p_debit_amount, 0) <> 0
384 THEN
385 INSERT into JAI_RCV_SUBLED_ENTRIES
386 (SUBLED_ENTRY_ID,rcv_transaction_id,
387 set_of_books_id,
388 je_source_name,
389 je_category_name,
390 accounting_date,
391 currency_code,
392 date_created_in_gl,
393 entered_cr,
394 entered_dr,
395 transaction_date,
396 code_combination_id,
397 currency_conversion_date,
398 user_currency_conversion_type,
399 currency_conversion_rate,
400 actual_flag,
401 period_name,
402 chart_of_accounts_id,
403 functional_currency_code,
404 je_batch_name,
405 je_batch_description,
406 je_header_name,
407 je_line_description,
408 reference1,
409 reference2,
410 reference3,
411 reference4,
412 source_doc_quantity,
413 created_by,
414 creation_date,
415 last_update_date,
416 last_updated_by,
417 last_update_login,
418 from_type,
419 PROGRAM_LOGIN_ID)
420 VALUES ( JAI_RCV_SUBLED_ENTRIES_S.nextval, p_transaction_id,
421 v_set_of_books_id,
422 v_sub_rec.je_source_name,
423 v_sub_rec.je_category_name,
424 v_accounting_date,
425 p_currency_code,
426 v_sysdate,
427 p_credit_amount,
428 p_debit_amount,
429 v_accounting_date,
430 p_cc_id,
431 p_currency_conversion_date,
432 p_currency_conversion_type,
433 p_currency_conversion_rate,
434 v_sub_rec.actual_flag,
435 v_sub_rec.period_name,
436 v_sub_rec.chart_of_accounts_id,
437 v_sub_rec.functional_currency_code,
438 v_sub_rec.je_batch_name,
439 v_sub_rec.je_batch_description,
440 v_sub_rec.je_header_name,
441 v_sub_rec.je_line_description,
442 v_sub_rec.reference1,
443 v_sub_rec.reference2,
444 v_sub_rec.reference3,
445 v_sub_rec.reference4,
446 v_amount,
447 p_created_by,
448 v_sysdate,
449 v_sysdate,
450 p_created_by,
451 p_created_by,
452 'L',
453 fnd_profile.value('PROG_APPL_ID'));
454 END IF;
455 END IF;
456 EXCEPTION
457 WHEN OTHERS THEN
458 FND_MESSAGE.SET_NAME ('JA','JAI_EXCEPTION_OCCURED');
459 FND_MESSAGE.SET_TOKEN ('JAI_PROCESS_MSG',lv_object_name ||'.Err:'||sqlerrm);
460 app_exception.raise_exception;
461 END create_subledger_entry;
462
463 END jai_rcv_journal_pkg;