DBA Data[Home] [Help]

APPS.CSTACPCS SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 35

           SELECT
              sum(mmt.primary_quantity),
              MMT.COST_GROUP_ID,
              MMT.INVENTORY_ITEM_ID,
              MMT.SUBINVENTORY_CODE
           FROM
              MTL_PER_CLOSE_DTLS MPSD ,
              MTL_MATERIAL_TRANSACTIONS MMT,
              ORG_ACCT_PERIODS OAP
           WHERE
              MPSD.ACCT_PERIOD_ID               = C_ACCT_PERIOD_ID         AND
              MPSD.ORGANIZATION_ID              = C_ORG_ID                 AND
              MMT.COST_GROUP_ID                 = MPSD.COST_GROUP_ID       AND
              MMT.ORGANIZATION_ID               = MPSD.ORGANIZATION_ID     AND
	      MMT.ORGANIZATION_ID		= nvl(MMT.OWNING_ORGANIZATION_ID, MMT.ORGANIZATION_ID) AND
	      NVL(MMT.OWNING_TP_TYPE,2)		= 2			   AND
              MMT.INVENTORY_ITEM_ID             = MPSD.INVENTORY_ITEM_ID   AND
              MMT.SUBINVENTORY_CODE             = MPSD.SECONDARY_INVENTORY AND
              MMT.ORGANIZATION_ID               = C_ORG_ID                 AND
              MMT.SUBINVENTORY_CODE             IS NOT NULL                AND
              MMT.COSTED_FLAG                   IS NULL                    AND
              MMT.TRANSACTION_DATE              >= OAP.PERIOD_START_DATE   AND
              MMT.TRANSACTION_DATE              <= (trunc(OAP.SCHEDULE_CLOSE_DATE) + 0.99999)
									   AND
              MMT.ACCT_PERIOD_ID                > C_LAST_PERIOD_ID AND
              MMT.ACCT_PERIOD_ID                <= C_ACCT_PERIOD_ID        AND
              MMT.ACCT_PERIOD_ID                = OAP.ACCT_PERIOD_ID       AND
              OAP.ORGANIZATION_ID               = C_ORG_ID
           GROUP BY
              MMT.COST_GROUP_ID,MMT.INVENTORY_ITEM_ID,MMT.SUBINVENTORY_CODE;
Line: 70

		SELECT	DISTINCT
                        COST_GROUP_ID,
			INVENTORY_ITEM_ID
		FROM	MTL_PER_CLOSE_DTLS
		WHERE	ORGANIZATION_ID = c_org_id
		AND	ACCT_PERIOD_ID = c_acct_period_id;
Line: 86

  		SELECT	MCACD.TRANSACTION_ID
		FROM	MTL_CST_ACTUAL_COST_DETAILS MCACD,
			CST_QUANTITY_LAYERS CQL,
			MTL_MATERIAL_TRANSACTIONS MMT,
			MTL_SECONDARY_INVENTORIES MSI
		WHERE	MCACD.INVENTORY_ITEM_ID = c_item_id
		AND	MCACD.ORGANIZATION_ID = c_org_id
		AND	MCACD.LAYER_ID = CQL.LAYER_ID
		AND	CQL.COST_GROUP_ID = c_cg_id
		AND	MCACD.TRANSACTION_ID = MMT.TRANSACTION_ID
		AND	MMT.TRANSACTION_ACTION_ID <> 30
		AND	(
				(	MMT.ORGANIZATION_ID = c_org_id
				AND	MMT.ACCT_PERIOD_ID > c_last_period_id
				AND	MMT.ACCT_PERIOD_ID <= c_acct_period_id)
			OR	(	MMT.ORGANIZATION_ID <> c_org_id
				AND	MMT.TRANSACTION_DATE > NVL(c_last_close_date, MMT.TRANSACTION_DATE-1)
				AND	MMT.TRANSACTION_DATE <= trunc(c_acct_close_date)+0.99999))
		AND	MMT.SUBINVENTORY_CODE = MSI.SECONDARY_INVENTORY_NAME(+)
		AND	NVL(MSI.ORGANIZATION_ID,c_org_id) = c_org_id
		AND	NVL(MSI.ASSET_INVENTORY,1) = 1
		ORDER
		BY	MCACD.TRANSACTION_COSTED_DATE DESC,
			MCACD.TRANSACTION_ID DESC;
Line: 125

           DELETE FROM MTL_PERIOD_CG_SUMMARY
	           WHERE
	           ORGANIZATION_ID =       I_ORG_ID        AND
 	           ACCT_PERIOD_ID  =       I_ACCT_PERIOD_ID;
Line: 131

	   DELETE FROM MTL_PERIOD_SUMMARY
	   	   WHERE
		   ORGANIZATION_ID =	I_ORG_ID	AND
		   ACCT_PERIOD_ID	=	I_ACCT_PERIOD_ID;
Line: 140

        DELETE FROM MTL_PER_CLOSE_DTLS
        WHERE
        ORGANIZATION_ID =       I_ORG_ID        AND
        ACCT_PERIOD_ID  =       I_ACCT_PERIOD_ID;
Line: 148

        select default_cost_group_id
          into l_default_cost_group_id
        from mtl_parameters
        where organization_id = i_org_id;
Line: 168

        SELECT
        SCHEDULE_CLOSE_DATE
        INTO l_acct_close_date
                FROM
        ORG_ACCT_PERIODS
        WHERE
        ORGANIZATION_ID         =       I_ORG_ID        AND
        ACCT_PERIOD_ID          =       I_ACCT_PERIOD_ID;
Line: 183

	INSERT INTO MTL_PER_CLOSE_DTLS
	(COST_GROUP_ID,
	 ACCT_PERIOD_ID,
 	 SECONDARY_INVENTORY,
	 INVENTORY_ITEM_ID,
	 ORGANIZATION_ID,
	 PERIOD_END_QUANTITY,
	 period_end_unit_cost,
	 LAST_UPDATE_DATE,
	 LAST_UPDATED_BY,
	 CREATED_BY,
	 CREATION_DATE,
	 PROGRAM_ID,
	 PROGRAM_APPLICATION_ID,
	 LOGIN_ID)
	select
	 COST_GROUP_ID,
	 i_acct_period_id,
	 SECONDARY_INVENTORY,
	 INVENTORY_ITEM_ID,
	 ORGANIZATION_ID,
	 NVL(PERIOD_END_QUANTITY,0),
	 NVL(period_end_unit_cost,0),
	 SYSDATE,
  	 i_user_id,
	 i_user_id,
	 SYSDATE,
	 i_prog_id,
	 i_prog_appl_id,
	 i_user_id
	FROM MTL_PER_CLOSE_DTLS OLD
	WHERE
	OLD.ACCT_PERIOD_ID	=	l_last_period_id	AND
        OLD.SECONDARY_INVENTORY IS NOT NULL  AND
	OLD.ORGANIZATION_ID	=	i_org_id
        /*Added for 1478959 in 11.0 .... Porting the changes to 11.5 Bug 1521581*/
        UNION ALL
        select
         l_default_cost_group_id, /*1, commented for bug 2769970*/
         i_acct_period_id,
         NULL,
         SUP.ITEM_ID,
         i_org_id,
         SUM(DECODE(TO_ORGANIZATION_ID,I_ORG_ID,TO_ORG_PRIMARY_QUANTITY,
                    QUANTITY)),
         0,
         SYSDATE,
         i_user_id,
         i_user_id,
         SYSDATE,
         i_prog_id,
         i_prog_appl_id,
         i_user_id
         FROM MTL_SUPPLY SUP,
         RCV_SHIPMENT_HEADERS RSH
         WHERE
         SUP.ITEM_ID IN
        (select inventory_item_id from mtl_per_close_dtls OLD
         where
         OLD.ACCT_PERIOD_ID           =     l_last_period_id    AND
         old.cost_group_id            =     l_default_cost_group_id     AND --2769970
         OLD.SECONDARY_INVENTORY      IS    NULL                        AND
         OLD.ORGANIZATION_ID          =     i_org_id)                   AND
         INTRANSIT_OWNING_ORG_ID      =     i_org_id                    AND
        SUP.SUPPLY_TYPE_CODE          IN    ('SHIPMENT','RECEIVING')    AND
       (SUP.TO_ORGANIZATION_ID          =   i_org_id            OR
        SUP.FROM_ORGANIZATION_ID        =       I_ORG_ID)               AND
        SUP.SHIPMENT_HEADER_ID + 0 = RSH.SHIPMENT_HEADER_ID AND
        EXISTS
        (SELECT 'X'
         FROM MTL_MATERIAL_TRANSACTIONS MMT
         WHERE
         MMT.INVENTORY_ITEM_ID         =     SUP.ITEM_ID                AND
         ((SUP.FROM_ORGANIZATION_ID    =     MMT.ORGANIZATION_ID        AND
         SUP.TO_ORGANIZATION_ID        =     MMT.TRANSFER_ORGANIZATION_ID
                                                                        AND
         SUP.INTRANSIT_OWNING_ORG_ID    =       MMT.TRANSFER_ORGANIZATION_ID)
         OR
        (SUP.FROM_ORGANIZATION_ID       =       MMT.ORGANIZATION_ID     AND
         SUP.INTRANSIT_OWNING_ORG_ID    =       MMT.ORGANIZATION_ID     AND
         SUP.TO_ORGANIZATION_ID         =       MMT.TRANSFER_ORGANIZATION_ID))
                                                                        AND
         MMT.SHIPMENT_NUMBER = RSH.SHIPMENT_NUM AND
         MMT.COSTED_FLAG IS NULL AND
         MMT.TRANSACTION_DATE          <= (trunc(nvl(L_ACCT_CLOSE_DATE,
                                            mmt.transaction_date-1)) + 0.99999))
									AND
        SUP.INTRANSIT_OWNING_ORG_ID = I_ORG_ID
        GROUP BY SUP.ITEM_ID;
Line: 273

        /*Update the period end cost of previous period transactions..*/
        UPDATE MTL_PER_CLOSE_DTLS MPSD
        SET MPSD.PERIOD_END_UNIT_COST =
        (SELECT OLD.PERIOD_END_UNIT_COST FROM
         MTL_PER_CLOSE_DTLS OLD
         WHERE OLD.ACCT_PERIOD_ID       = l_last_period_id      AND
         OLD.INVENTORY_ITEM_ID          = MPSD.INVENTORY_ITEM_ID        AND
         OLD.COST_GROUP_ID              =       l_default_cost_group_id AND --2769970
         OLD.SECONDARY_INVENTORY        IS NULL                         AND
         OLD.ORGANIZATION_ID            =       I_ORG_ID)
        WHERE MPSD.SECONDARY_INVENTORY  IS NULL                         AND
        MPSD.COST_GROUP_ID              =       l_default_cost_group_id AND --2769970
        MPSD.ACCT_PERIOD_ID             =       I_ACCT_PERIOD_ID        AND
        MPSD.ORGANIZATION_ID            =       I_ORG_ID;
Line: 292

	| Insert into the details table, all new and unique
	| combinations of Cost Grp/Item/Sub from the transactions
	| table.
	| We need to insert only data relevant to asset sub-
	| inventories. So we need to join to mtl_secondary_
	| inventories to check this.
	|
	| Open Issue:
	| Go through the entire transaction set and see if we
	| need to exclude any transactions here. By specifying
 	| subinventory_code is not null, we have ensured that
	| scrap and avg cost update do not get considered.
	|------------------------------------------------------+*/


	INSERT INTO MTL_PER_CLOSE_DTLS
        (COST_GROUP_ID,
         ACCT_PERIOD_ID,
         SECONDARY_INVENTORY,
         INVENTORY_ITEM_ID,
         ORGANIZATION_ID,
         PERIOD_END_QUANTITY,
         period_end_unit_cost,
         LAST_UPDATE_DATE,
         LAST_UPDATED_BY,
         CREATED_BY,
         CREATION_DATE,
         PROGRAM_ID,
         PROGRAM_APPLICATION_ID,
         LOGIN_ID)
	SELECT
	 NVL(COST_GROUP_ID,-9999),
	 I_ACCT_PERIOD_ID,
	 SUBINVENTORY_CODE,
 	 INVENTORY_ITEM_ID,
	 I_ORG_ID,
	 0,
	 0,
 	 SYSDATE,
	 i_user_id,
	 i_user_id,
	 SYSDATE,
 	 i_prog_id,
	 i_prog_appl_id,
	 i_user_id
	FROM
	MTL_MATERIAL_TRANSACTIONS MMT,
	MTL_SECONDARY_INVENTORIES SUB
	WHERE
	MMT.ORGANIZATION_ID		=	I_ORG_ID		AND
	MMT.ORGANIZATION_ID		= nvl(MMT.OWNING_ORGANIZATION_ID, MMT.ORGANIZATION_ID) AND
	NVL(MMT.OWNING_TP_TYPE,2)	= 2				AND
	MMT.ACCT_PERIOD_ID		>	l_LAST_PERIOD_ID AND
	MMT.ACCT_PERIOD_ID		<=	I_ACCT_PERIOD_ID	AND
	MMT.SUBINVENTORY_CODE		IS NOT NULL			AND
	MMT.COSTED_FLAG			IS NULL				AND
	MMT.SUBINVENTORY_CODE		=	SUB.SECONDARY_INVENTORY_NAME
									AND
	MMT.ORGANIZATION_ID		=	SUB.ORGANIZATION_ID	AND
	SUB.ASSET_INVENTORY		=	1
        MINUS
        SELECT
          NVL(COST_GROUP_ID,-9999),
          i_acct_period_id,
          SECONDARY_INVENTORY,
          INVENTORY_ITEM_ID,
          i_org_id,
          0,
          0,
          SYSDATE,
          i_user_id,
          i_user_id,
          SYSDATE,
  	  i_prog_id,
	  i_prog_appl_id,
	  i_user_id
        FROM
          MTL_PER_CLOSE_DTLS MPCD
        WHERE
          MPCD.organization_id = i_org_id AND
          MPCD.acct_period_id = i_acct_period_id AND
          MPCD.secondary_inventory IS NOT NULL;
Line: 378

	| Update quantities from the transaction table, for all
	| rows in MTL_PER_CLOSE_DTLS table, based on all
	| the transactions that have occured during the period.
	|-------------------------------------------------------+*/


        l_sum_period_qty := 0;
Line: 395

                UPDATE MTL_PER_CLOSE_DTLS MPSD
                SET PERIOD_END_QUANTITY = NVL(l_sum_period_qty,0)+NVL(PERIOD_END_QUANTITY,0)
                WHERE
                        MPSD.ACCT_PERIOD_ID             = I_ACCT_PERIOD_ID
                AND     MPSD.ORGANIZATION_ID            = I_ORG_ID
                AND     MPSD.COST_GROUP_ID              = l_cost_group_id
                AND     MPSD.INVENTORY_ITEM_ID          = l_item_id
                AND     MPSD.SECONDARY_INVENTORY        = l_subinv_code;
Line: 418

	SELECT
	SCHEDULE_CLOSE_DATE
	INTO l_last_close_date
	FROM
	ORG_ACCT_PERIODS
	WHERE
	ORGANIZATION_ID		=	I_ORG_ID	AND
	ACCT_PERIOD_ID		=	I_LAST_PERIOD_ID;
Line: 450

        INSERT INTO MTL_PER_CLOSE_DTLS
        (COST_GROUP_ID,
         ACCT_PERIOD_ID,
         SECONDARY_INVENTORY,
         INVENTORY_ITEM_ID,
         ORGANIZATION_ID,
         PERIOD_END_QUANTITY,
         period_end_unit_cost,
         LAST_UPDATE_DATE,
         LAST_UPDATED_BY,
         CREATED_BY,
         CREATION_DATE,
         PROGRAM_ID,
         PROGRAM_APPLICATION_ID,
         LOGIN_ID)
	SELECT
	 l_default_cost_group_id, /*1, commented for bug 2769970*/
	 I_ACCT_PERIOD_ID,
	 NULL,
	 SUP.ITEM_ID,
	 I_ORG_ID,
	 SUM(DECODE(TO_ORGANIZATION_ID,I_ORG_ID,TO_ORG_PRIMARY_QUANTITY,
		    QUANTITY)),
	 0,
	 SYSDATE,
	 i_user_id,
	 i_user_id,
	 SYSDATE,
	 i_prog_id,
	 i_prog_appl_id,
	 i_user_id
	FROM MTL_SUPPLY SUP,
	     RCV_SHIPMENT_HEADERS RSH
	WHERE
	INTRANSIT_OWNING_ORG_ID		=	I_ORG_ID		AND
	SUP.SUPPLY_TYPE_CODE		IN ('SHIPMENT','RECEIVING')	AND
       (SUP.TO_ORGANIZATION_ID		=	I_ORG_ID		OR
	SUP.FROM_ORGANIZATION_ID	=	I_ORG_ID)		AND
	RSH.SHIPMENT_HEADER_ID		=	SUP.SHIPMENT_HEADER_ID	AND
	EXISTS
	(SELECT 'X'
	 FROM
	 MTL_MATERIAL_TRANSACTIONS MMT
	 WHERE
	 SUP.ITEM_ID			=	MMT.INVENTORY_ITEM_ID	AND
        (       --Added for Bug #1478959 in 11.0 .... Porting the changes to 11.5 Bug 1521581*/
	(SUP.FROM_ORGANIZATION_ID	=	MMT.ORGANIZATION_ID	AND
	 SUP.TO_ORGANIZATION_ID		=	MMT.TRANSFER_ORGANIZATION_ID
									AND
	 SUP.INTRANSIT_OWNING_ORG_ID	=	MMT.TRANSFER_ORGANIZATION_ID)
	 OR
	(SUP.FROM_ORGANIZATION_ID	=	MMT.ORGANIZATION_ID	AND
	 SUP.INTRANSIT_OWNING_ORG_ID	=	MMT.ORGANIZATION_ID	AND
	 SUP.TO_ORGANIZATION_ID		=	MMT.TRANSFER_ORGANIZATION_ID)
        )       --Added for Bug #1478959 in 11.0 .... Porting the changes to 11.5 Bug 1521581*/
	 								AND
	 RSH.SHIPMENT_NUM		=	MMT.SHIPMENT_NUMBER	AND
	 MMT.COSTED_FLAG		IS	NULL			AND
	 MMT.TRANSACTION_DATE		<=	(trunc(L_ACCT_CLOSE_DATE) + 0.99999))
									AND
	 SUP.INTRANSIT_OWNING_ORG_ID	=	I_ORG_ID		AND
	 NOT EXISTS
	 (SELECT 'X'
	  FROM
	  MTL_PER_CLOSE_DTLS MPSD
	  WHERE
	  MPSD.INVENTORY_ITEM_ID	=	SUP.ITEM_ID		AND
	  MPSD.ORGANIZATION_ID		=	I_ORG_ID		AND
	  MPSD.COST_GROUP_ID		=	l_default_cost_group_id AND --2769970
	  MPSD.ACCT_PERIOD_ID		=	I_ACCT_PERIOD_ID	AND
	  MPSD.SECONDARY_INVENTORY	IS	NULL)
	 GROUP BY SUP.ITEM_ID;
Line: 529

	| Update the period_end_unit_cost for rows in MPSD. The logic
 	| for updating this is below:
	| The value in any subinventory, of a given item, at period
	| end is the quantity valued at the 'Avg cost of the item
	| after the last transaction in that period'. The last
	| transaction for an item in a period is identfied by the
	| transaction that has the latest transaction_costed_date
	| for that item in the period. The new_cost corresponding to
 	| this transaction represents the cost we need.
	|
	| Open issue: make sure that cost processor updates this
	| column in MMT for every transaction and also make sure
	| that no transaction needs to be excluded from this list.
	|
	| Inter-Org shipments
	| -------------------
	|
	| When an inter-org intransit transaction is performed
	| to an average costing organization, with fob = SHIP,
	| the cost in the destination org gets averaged at the
	| the time of shipment. Such a txn needs to be considered
	| when looking for the max(txn_costed_date).
	| In a project scenario, where multiple cost groups
	| could exist, intransit is always belonging to the
	| common cost group ==> when checking if a shipment
	| transaction is the last txn, we check only if Cg = 1.
	| Also, we should check for such a txn only if that
	| txn has been costed on a date that falls within the
	| current period in the org for which the period is
	| being closed.
	|
	|-----------------------------------------------------*/

	/*--------------------------------------------------------
	| Txfr txn cost processing architecture is now going to
	| involve creating 2 rows in MACD, onr for each Cost grp
 	| involved in the txn. The following considerations are
	| pertinent:
	| * For Direct Org txfrs, both sides of the txn will have
	|   corresponding rows in MACD.
	| * For intransit shipments(fob=RCV), Intransit Receipts
	|   (fob=SHP), Sub txfrs --> The same txn will have 2
	|   sets of rows in MACD, one for each CG involved.
	|   Both these rows are for the same org however.
	|   In the case of the Intransit txns, there is only 1
	|   physical txn, however in the case of the sub txfr,
	|   there are 2 physical txn_id's in MMT. The txn with
	|   -ve qtty gets costed.
	| * For Intransit shipments (fob=ship) and Intransit
	|   receipts (fob=rcv) --> There will be 1 physical
	|   txn in MMT, yet 2 rows in MACD. The 2 rows will
	|   be for 2 different orgs. Note that the cost workers
	|   of both orgs process this txn. ==> When the first
	|   worker finishes with the txn, it sets
	|   the shipment_costed flag = 'y' in MMT.
	|   ##For the shipment case, after the shipping org
	|   worker finishes the txn, the ship_cstd = 'y', and
	|   then the rcv org worker processes the txn,after
	|   which the costed_flag is set to NULL. However,
	|   since the txn in MMT is with org_id = SHip org,
	|   the period in the shipment org cannot be closed
	|   till the costed_flag = NULL. Also, the rcv org
	|   costs/books get affected only when the costed_flag
	|   is set to NULL ==> we dont have to bother with the'
	|   shipment_costed in this case.
	|   ##For the receipt case the physical txn is against
	|   the recv org. The shipping org worker first processes
	|   the txn and then sets shipment_costed='y'; at this
Line: 626

	UPDATE mtl_per_close_dtls mpsd
        SET
	(period_end_unit_cost
	 ) =
	(SELECT
	 nvl(sum(macd.new_cost),period_end_unit_cost)
	 FROM
	 mtl_cst_actual_cost_details macd,
	 cst_quantity_layers layer
	 WHERE
	 macd.inventory_item_id	=	mpsd.inventory_item_id	AND
	 macd.organization_id	=	i_org_id		AND
	 macd.layer_id		=	layer.layer_id		AND
	 layer.cost_group_id	=	mpsd.cost_group_id	AND
	 macd.transaction_id    = l_trans_id
	 GROUP BY macd.transaction_id)
	WHERE
	mpsd.organization_id		=	i_org_id		AND
	mpsd.acct_period_id		=	i_acct_period_id	AND
	mpsd.cost_group_id = l_cost_group_id AND
	mpsd.inventory_item_id = l_item_id;
Line: 656

    	   INSERT INTO MTL_PERIOD_CG_SUMMARY
        	(ACCT_PERIOD_ID,
         	ORGANIZATION_ID,
         	INVENTORY_TYPE,
         	COST_GROUP_ID,
         	LAST_UPDATE_DATE,
         	LAST_UPDATED_BY,
         	CREATION_DATE,
         	CREATED_BY,
         	LAST_UPDATE_LOGIN,
         	INVENTORY_VALUE,
         	REQUEST_ID,
         	PROGRAM_APPLICATION_ID,
         	PROGRAM_ID,
         	PROGRAM_UPDATE_DATE)
          SELECT
         	I_ACCT_PERIOD_ID,
         	I_ORG_ID,
         	1,
         	COST_GROUP_ID,
         	SYSDATE,
         	i_user_id,
         	SYSDATE,
         	i_user_id,
         	i_user_id,
         	SUM(NVL(PERIOD_END_QUANTITY,0)*NVL(period_end_unit_cost,0)),
         	NULL,
         	i_prog_id,
         	i_prog_appl_id,
         	SYSDATE
          FROM
                MTL_PER_CLOSE_DTLS
          WHERE
        	ACCT_PERIOD_ID          =       I_ACCT_PERIOD_ID        AND
        	ORGANIZATION_ID         =       I_ORG_ID
          GROUP BY COST_GROUP_ID;
Line: 695

	INSERT INTO MTL_PERIOD_SUMMARY
	(ACCT_PERIOD_ID,
	 ORGANIZATION_ID,
	 INVENTORY_TYPE,
	 SECONDARY_INVENTORY,
	 LAST_UPDATE_DATE,
	 LAST_UPDATED_BY,
	 CREATION_DATE,
	 CREATED_BY,
	 LAST_UPDATE_LOGIN,
	 INVENTORY_VALUE,
	 REQUEST_ID,
	 PROGRAM_APPLICATION_ID,
	 PROGRAM_ID,
	 PROGRAM_UPDATE_DATE)
	SELECT
	 I_ACCT_PERIOD_ID,
	 I_ORG_ID,
	 1,
	 SECONDARY_INVENTORY,
 	 SYSDATE,
	 i_user_id,
	 SYSDATE,
         i_user_id,
         i_user_id,
	 SUM(NVL(PERIOD_END_QUANTITY,0)*NVL(period_end_unit_cost,0)),
	 NULL,
	 i_prog_id,
	 i_prog_appl_id,
	 SYSDATE
	FROM
	MTL_PER_CLOSE_DTLS
	WHERE
	ACCT_PERIOD_ID		=	I_ACCT_PERIOD_ID	AND
	ORGANIZATION_ID		=	I_ORG_ID
	GROUP BY SECONDARY_INVENTORY;