DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSTPLPOP

Source


1 PACKAGE BODY CSTPLPOP AS
2 /* $Header: CSTLPOPB.pls 120.1 2008/02/14 12:03:53 smsasidh ship $ */
3   FUNCTION po_price(l_org_id NUMBER, l_item_id NUMBER) RETURN NUMBER IS
4     po_price_tmp NUMBER ;
5     max_transaction_date_tmp DATE;
6     transaction_id_tmp       NUMBER;
7 
8     BEGIN
9       --Added hint for performance Bug # 6819625
10       SELECT /*+ INDEX_JOIN (mmt3 MTL_MATERIAL_TRANSACTIONS_N1 MTL_MATERIAL_TRANSACTIONS_N15) */
11       Max(Trunc(transaction_date)) transaction_date
12       INTO
13       max_transaction_date_tmp
14       FROM
15       mtl_material_transactions mmt3
16       WHERE
17       mmt3.organization_id = l_org_id AND
18       mmt3.inventory_item_id = l_item_id AND
19       mmt3.transaction_source_type_id = 1 AND
20       --Added for Bug # 6819625 for MTL_MATERIAL_TRANSACTIONS_N15 index usage
21       mmt3.transaction_action_id = 27 AND
22       mmt3.transaction_type_id = 18;
23 
24       if (max_transaction_date_tmp is null) then
25 	return 0;
26       end if;
27 
28       --Added hint for performance Bug # 6819625
29       SELECT /*+ INDEX_JOIN (mmt2 MTL_MATERIAL_TRANSACTIONS_N1 MTL_MATERIAL_TRANSACTIONS_N15) */
30       To_number(Substr(MAX(To_char(mmt2.creation_date,
31       'YYYY-MM-DD-HH24-MI-SS:') ||
32       To_char(mmt2.transaction_id)), 21))
33       INTO
34       transaction_id_tmp
35       FROM
36       mtl_material_transactions mmt2
37       WHERE
38       mmt2.organization_id = l_org_id AND
39       mmt2.inventory_item_id = l_item_id AND
40       mmt2.transaction_type_id = 18 AND
41       --Added for Bug # 6819625 for MTL_MATERIAL_TRANSACTIONS_N15 index usage
42       mmt2.transaction_action_id = 27 AND
43       mmt2.transaction_source_type_id = 1 AND
44       mmt2.transaction_date BETWEEN max_transaction_date_tmp
45       AND max_transaction_date_tmp + 1;
46 
47       SELECT
48       mmt.transaction_cost
49       INTO
50       po_price_tmp
51       FROM
52       mtl_material_transactions mmt
53       WHERE
54       mmt.transaction_id = transaction_id_tmp;
55 
56       RETURN po_price_tmp;
57     END;
58 END CSTPLPOP;
59