DBA Data[Home] [Help]

APPS.CSTPFCHK SQL Statements

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

Line: 107

  select count(*)
  into l_txn_cost_exist
  from mtl_pac_txn_cost_details
  where transaction_id = i_txn_id
  and cost_group_id = i_cost_group_id
  and pac_period_id = i_pac_period_id;
Line: 119

    INSERT INTO mtl_pac_actual_cost_details (
	transaction_id,
	pac_period_id,
	cost_type_id,
	cost_group_id,
	cost_layer_id,
	cost_element_id,
	level_type,
	last_update_date,
	last_updated_by,
	creation_date,
	created_by,
	last_update_login,
	request_id,
	program_application_id,
	program_id,
	program_update_date,
	inventory_item_id,
	actual_cost,
	prior_cost,
	prior_buy_cost,
	prior_make_cost,
	new_cost,
	new_buy_cost,
	new_make_cost,
	insertion_flag,
	user_entered,
	transaction_costed_date,
	txn_category)
    SELECT
	i_txn_id,
	i_pac_period_id,
	i_cost_type_id,
	i_cost_group_id,
	i_cost_layer_id,
      	mptcd.cost_element_id,
      	mptcd.level_type,
      	sysdate,
      	i_user_id,
      	sysdate,
      	i_user_id,
      	i_login_id,
      	i_req_id,
      	i_prg_appl_id,
      	i_prg_id,
      	sysdate,
      	mptcd.inventory_item_id,
      	mptcd.transaction_cost,
      	0,
      	0,
      	0,
      	NULL,
      	NULL,
      	NULL,
      	'Y',
      	'N',
	NULL,
	i_txn_category
    FROM  mtl_pac_txn_cost_details mptcd
    WHERE transaction_id = i_txn_id
    AND   pac_period_id  = i_pac_period_id
    AND   cost_group_id  = i_cost_group_id;
Line: 191

     ** we will insert a TL material 0 cost layer.		       **
     ********************************************************************/

    l_stmt_num := 30;
Line: 196

    select count(*)
    into l_cost_details
    from cst_pac_item_cost_details
    where cost_layer_id = i_cost_layer_id;
Line: 206

      INSERT INTO mtl_pac_actual_cost_details (
	transaction_id,
	pac_period_id,
	cost_type_id,
	cost_group_id,
	cost_layer_id,
	cost_element_id,
	level_type,
	last_update_date,
	last_updated_by,
	creation_date,
	created_by,
	last_update_login,
	request_id,
	program_application_id,
	program_id,
	program_update_date,
	inventory_item_id,
	actual_cost,
	prior_cost,
	prior_buy_cost,
	prior_make_cost,
	new_cost,
	new_buy_cost,
	new_make_cost,
	insertion_flag,
	user_entered,
	transaction_costed_date,
	txn_category)
      SELECT
	i_txn_id,
	i_pac_period_id,
	i_cost_type_id,
	i_cost_group_id,
	i_cost_layer_id,
      	cpicd.cost_element_id,
      	cpicd.level_type,
      	sysdate,
      	i_user_id,
      	sysdate,
      	i_user_id,
      	i_login_id,
      	i_req_id,
      	i_prg_appl_id,
      	i_prg_id,
      	sysdate,
      	i_item_id,
      	cpicd.item_cost,
      	cpicd.item_cost,
	cpicd.item_buy_cost,
	cpicd.item_make_cost,
      	cpicd.item_cost,
	cpicd.item_buy_cost,
	cpicd.item_make_cost,
      	'N',
      	'N',
	NULL,
	i_txn_category
      FROM  cst_pac_item_cost_details cpicd
      WHERE cpicd.cost_layer_id = i_cost_layer_id;
Line: 270

      INSERT INTO mtl_pac_actual_cost_details (
	transaction_id,
	pac_period_id,
	cost_type_id,
	cost_group_id,
	cost_layer_id,
	cost_element_id,
	level_type,
	last_update_date,
	last_updated_by,
	creation_date,
	created_by,
	last_update_login,
	request_id,
	program_application_id,
	program_id,
	program_update_date,
	inventory_item_id,
	actual_cost,
	prior_cost,
	prior_buy_cost,
	prior_make_cost,
	new_cost,
	new_buy_cost,
	new_make_cost,
	insertion_flag,
	user_entered,
	transaction_costed_date,
	txn_category)
      VALUES(
	i_txn_id,
	i_pac_period_id,
	i_cost_type_id,
	i_cost_group_id,
	i_cost_layer_id,
	1,
      	1,
      	sysdate,
      	i_user_id,
      	sysdate,
      	i_user_id,
      	i_login_id,
      	i_req_id,
      	i_prg_appl_id,
      	i_prg_id,
      	sysdate,
      	i_item_id,
      	0,
      	NULL,
      	NULL,
      	NULL,
      	0,
      	0,
      	0,
      	'N',
      	'N',
	NULL,
	i_txn_category);
Line: 444

   ** Update mtl_pac_actual_cost_details and update the prior cost   **
   ** to the current average for the elements that exists and insert **
   ** in to mtl_pac_actual_cost_details the current average cost for **
   ** the elements that do not exist.                                **
   ********************************************************************/

  l_stmt_num := 10;
Line: 452

  UPDATE mtl_pac_actual_cost_details mpacd
  SET	prior_cost = 0,
	prior_buy_cost = 0,
	prior_make_cost = 0,
	new_cost = NULL,
	new_buy_cost = NULL,
	new_make_cost = NULL
  WHERE mpacd.transaction_id = i_txn_id
  AND	mpacd.cost_group_id = i_cost_group_id
  AND   mpacd.cost_layer_id = i_cost_layer_id;
Line: 465

  UPDATE mtl_pac_actual_cost_details mpacd
  SET	(prior_cost,
	 prior_buy_cost,
	 prior_make_cost,
	 insertion_flag) =
	(SELECT cpicd.item_cost,
		cpicd.item_buy_cost,
		cpicd.item_make_cost,
		'N'
	 FROM cst_pac_item_cost_details cpicd
	 WHERE cpicd.cost_layer_id = i_cost_layer_id
	 AND cpicd.cost_element_id = mpacd.cost_element_id
	 AND cpicd.level_type = mpacd.level_type)
  WHERE mpacd.transaction_id = i_txn_id
  AND	mpacd.cost_group_id = i_cost_group_id
  AND   mpacd.cost_layer_id = i_cost_layer_id
  AND EXISTS
	(SELECT 'there is details in cpicd'
	 FROM	cst_pac_item_cost_details cpicd
	 WHERE	cpicd.cost_layer_id = i_cost_layer_id
	 AND	cpicd.cost_element_id = mpacd.cost_element_id
	 AND	cpicd.level_type = mpacd.level_type);
Line: 490

  INSERT INTO mtl_pac_actual_cost_details (
	transaction_id,
	pac_period_id,
	cost_type_id,
	cost_group_id,
	cost_layer_id,
	cost_element_id,
	level_type,
	last_update_date,
	last_updated_by,
	creation_date,
	created_by,
	last_update_login,
	request_id,
	program_application_id,
	program_id,
	program_update_date,
	inventory_item_id,
	actual_cost,
	prior_cost,
	prior_buy_cost,
	prior_make_cost,
	new_cost,
	new_buy_cost,
	new_make_cost,
	insertion_flag,
	user_entered,
	transaction_costed_date,
	txn_category)
  SELECT i_txn_id,
	i_pac_period_id,
	i_cost_type_id,
	i_cost_group_id,
	i_cost_layer_id,
	cpicd.cost_element_id,
	cpicd.level_type,
	sysdate,
      	i_user_id,
      	sysdate,
      	i_user_id,
      	i_login_id,
      	i_req_id,
      	i_prg_appl_id,
      	i_prg_id,
      	sysdate,
	i_item_id,
      	0,
      	cpicd.item_cost,
      	cpicd.item_buy_cost,
      	cpicd.item_make_cost,
	NULL,
	NULL,
	NULL,
      	'N',
      	'N',
	NULL,
	i_txn_category
  FROM	cst_pac_item_cost_details cpicd
  WHERE	cost_layer_id = i_cost_layer_id
  AND NOT EXISTS
	(SELECT	'this detail is not in mpacd already'
	 FROM	mtl_pac_actual_cost_details mpacd
	 WHERE	mpacd.transaction_id = i_txn_id
	 AND	mpacd.cost_group_id = i_cost_group_id
	 AND	mpacd.cost_layer_id = i_cost_layer_id
	 AND	mpacd.cost_element_id = cpicd.cost_element_id
	 AND	mpacd.level_type = cpicd.level_type);
Line: 564

  SELECT total_layer_quantity,
	 buy_quantity,
	 make_quantity
  INTO   l_cur_onhand,
	 l_cur_buy_qty,
	 l_cur_make_qty
  FROM   cst_pac_item_costs
  WHERE  cost_layer_id = i_cost_layer_id;
Line: 575

   ** Update Item costs and Quantity                                 **
   ********************************************************************/
  l_new_onhand := l_cur_onhand + i_txn_qty;
Line: 584

  UPDATE mtl_pac_actual_cost_details mpacd
  SET new_cost =
	decode(sign(l_cur_onhand),-1,
	       decode(sign(i_txn_qty), -1,
		      (mpacd.prior_cost*l_cur_onhand + mpacd.actual_cost*i_txn_qty)/l_new_onhand,
		      decode(sign(l_new_onhand),-1, mpacd.prior_cost,
			     mpacd.actual_cost)),
	       decode(sign(i_txn_qty), -1,
		      decode(sign(l_new_onhand), 1,
  		            decode(sign((mpacd.prior_cost*l_cur_onhand + mpacd.actual_cost*i_txn_qty)/l_new_onhand),1,
		                   (mpacd.prior_cost*l_cur_onhand + mpacd.actual_cost*i_txn_qty)/l_new_onhand,
		                   0)
                             ,mpacd.actual_cost),
		      (mpacd.prior_cost*l_cur_onhand + mpacd.actual_cost*i_txn_qty)/l_new_onhand)),
      new_buy_cost =
	decode(sign(l_cur_buy_qty),-1,
	       decode(sign(i_buy_qty), -1,
		      (mpacd.prior_buy_cost*l_cur_buy_qty + mpacd.actual_cost*i_buy_qty)/l_new_buy_qty,
		      decode(sign(l_new_buy_qty),-1, mpacd.prior_buy_cost,
			     mpacd.actual_cost)),
	       decode(sign(i_buy_qty), -1,
		      decode(sign(l_new_buy_qty), 1,
  		            decode(sign((mpacd.prior_buy_cost*l_cur_buy_qty + mpacd.actual_cost*i_buy_qty)/l_new_buy_qty),1,
		                   (mpacd.prior_buy_cost*l_cur_buy_qty + mpacd.actual_cost*i_buy_qty)/l_new_buy_qty,
		                   0)
                             ,mpacd.actual_cost),
		      (mpacd.prior_buy_cost*l_cur_buy_qty + mpacd.actual_cost*i_buy_qty)/decode(l_new_buy_qty,0,1,l_new_buy_qty))),
      new_make_cost =
	decode(sign(l_cur_make_qty),-1,
	       decode(sign(i_make_qty), -1,
		      (mpacd.prior_make_cost*l_cur_make_qty + mpacd.actual_cost*i_make_qty)/l_new_make_qty,
		      decode(sign(l_new_make_qty),-1, mpacd.prior_make_cost,
			     mpacd.actual_cost)),
	       decode(sign(i_make_qty), -1,
		      decode(sign(l_new_make_qty), 1,
  		            decode(sign((mpacd.prior_make_cost*l_cur_make_qty + mpacd.actual_cost*i_make_qty)/l_new_make_qty),1,
		                   (mpacd.prior_make_cost*l_cur_make_qty + mpacd.actual_cost*i_make_qty)/l_new_make_qty,
		                   0)
                             ,mpacd.actual_cost),
		      (mpacd.prior_make_cost*l_cur_make_qty + mpacd.actual_cost*i_make_qty)/decode(l_new_make_qty,0,1,l_new_make_qty)))
  WHERE  mpacd.transaction_id = i_txn_id
  AND    mpacd.cost_layer_id = i_cost_layer_id;
Line: 630

  UPDATE cst_pac_item_cost_details cpicd
  SET (last_update_date,
       last_updated_by,
       last_update_login,
       request_id,
       program_application_id,
       program_id,
       program_update_date,
       item_cost,
       item_buy_cost,
       item_make_cost) =
     (SELECT sysdate,
	     i_user_id,
	     i_login_id,
	     i_req_id,
	     i_prg_appl_id,
	     i_prg_id,
	     sysdate,
	     new_cost,
	     new_buy_cost,
	     new_make_cost
      FROM   mtl_pac_actual_cost_details mpacd
      WHERE  mpacd.transaction_id = i_txn_id
      AND    mpacd.cost_group_id = i_cost_group_id
      AND    mpacd.cost_layer_id = i_cost_layer_id
      AND    mpacd.cost_element_id = cpicd.cost_element_id
      AND    mpacd.level_type = cpicd.level_type)
  WHERE cpicd.cost_layer_id = i_cost_layer_id;
Line: 661

  INSERT INTO cst_pac_item_cost_details(
	cost_layer_id,
	cost_element_id,
	level_type,
	last_update_date,
	last_updated_by,
	creation_date,
	created_by,
	last_update_login,
	request_id,
	program_application_id,
	program_id,
	program_update_date,
	item_cost,
	item_buy_cost,
	item_make_cost)
  SELECT i_cost_layer_id,
	mpacd.cost_element_id,
	mpacd.level_type,
	sysdate,
      	i_user_id,
      	sysdate,
      	i_user_id,
      	i_login_id,
      	i_req_id,
      	i_prg_appl_id,
      	i_prg_id,
      	sysdate,
	mpacd.new_cost,
	mpacd.new_buy_cost,
	mpacd.new_make_cost
  FROM	mtl_pac_actual_cost_details mpacd
  WHERE	mpacd.transaction_id = i_txn_id
  AND	mpacd.cost_group_id = i_cost_group_id
  AND	mpacd.cost_layer_id = i_cost_layer_id
  AND	mpacd.insertion_flag = 'Y';
Line: 700

   ** Update layer quantity and layer costs information		     **
   ********************************************************************/
  l_stmt_num := 80;
Line: 704

  UPDATE cst_pac_item_costs cpic
  SET (last_updated_by,
	last_update_date,
	last_update_login,
	request_id,
	program_application_id,
	program_id,
	program_update_date,
	total_layer_quantity,
	issue_quantity,
	buy_quantity,
	make_quantity,
	pl_material,
	pl_material_overhead,
	pl_resource,
	pl_outside_processing,
	pl_overhead,
	tl_material,
	tl_material_overhead,
	tl_resource,
	tl_outside_processing,
	tl_overhead,
	material_cost,
	material_overhead_cost,
	resource_cost,
	outside_processing_cost,
	overhead_cost,
	pl_item_cost,
	tl_item_cost,
	item_cost,
	item_buy_cost,
	item_make_cost,
	unburdened_cost,
	burden_cost) =
     (SELECT
        i_user_id,
        sysdate,
        i_login_id,
	i_req_id,
      	i_prg_appl_id,
      	i_prg_id,
      	sysdate,
	l_new_onhand,
	issue_quantity + i_issue_qty,
	buy_quantity + i_buy_qty,
	make_quantity + i_make_qty,
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,1,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,2,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,3,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,4,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,5,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,1,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,2,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,3,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,4,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,5,ITEM_COST,0),0)),
	SUM(DECODE(COST_ELEMENT_ID,1,ITEM_COST,0)),
	SUM(DECODE(COST_ELEMENT_ID,2,ITEM_COST,0)),
	SUM(DECODE(COST_ELEMENT_ID,3,ITEM_COST,0)),
	SUM(DECODE(COST_ELEMENT_ID,4,ITEM_COST,0)),
	SUM(DECODE(COST_ELEMENT_ID,5,ITEM_COST,0)),
	SUM(DECODE(LEVEL_TYPE,2,ITEM_COST,0)),
	SUM(DECODE(LEVEL_TYPE,1,ITEM_COST,0)),
        -- The following value is a change from the
        -- code for PAC. 0 is inserted into
        -- CST_PAC_ITEM_COSTS.item_cost.
	0,
	SUM(ITEM_BUY_COST),
	SUM(ITEM_MAKE_COST),
	SUM(DECODE(COST_ELEMENT_ID,2,DECODE(LEVEL_TYPE,2,ITEM_COST,0),ITEM_COST)),
	SUM(DECODE(COST_ELEMENT_ID,2,DECODE(LEVEL_TYPE,1,ITEM_COST,0),0))
      FROM  CST_PAC_ITEM_COST_DETAILS v
      WHERE v.cost_layer_id = i_cost_layer_id
      GROUP BY COST_LAYER_ID)
  WHERE cpic.cost_layer_id = i_cost_layer_id
  AND EXISTS
	(SELECT 'there is detail cost'
	 FROM   cst_pac_item_cost_details cpicd
	 WHERE  cpicd.cost_layer_id = i_cost_layer_id);
Line: 846

  I_NO_UPDATE_QTY 	IN	NUMBER,
  I_USER_ID		IN	NUMBER,
  I_LOGIN_ID		IN	NUMBER,
  I_REQ_ID		IN	NUMBER,
  I_PRG_APPL_ID 	IN	NUMBER,
  I_PRG_ID		IN	NUMBER,
  O_Err_Num		OUT	NOCOPY NUMBER,
  O_Err_Code		OUT	NOCOPY VARCHAR2,
  O_Err_Msg		OUT	NOCOPY VARCHAR2
) IS
  l_err_num		NUMBER;
Line: 869

  if ((i_txn_action_id = 30) or (i_no_update_qty = 1) or (i_exp_flag = 1)) then
    return;
Line: 875

    UPDATE cst_pac_item_costs cpic
    SET   last_update_date = sysdate,
          last_updated_by = i_user_id,
          last_update_login = i_login_id,
          request_id = i_req_id,
          program_application_id = i_prg_appl_id,
          program_id = i_prg_id,
          program_update_date = sysdate,
	  total_layer_quantity = total_layer_quantity + i_txn_qty,
	  issue_quantity = issue_quantity + i_issue_qty,
	  buy_quantity = buy_quantity + i_buy_qty,
	  make_quantity = make_quantity + i_make_qty
    WHERE cpic.cost_layer_id = i_cost_layer_id;
Line: 892

    UPDATE cst_pac_quantity_layers cpql
    SET   last_update_date = sysdate,
          last_updated_by = i_user_id,
          last_update_login = i_login_id,
          request_id = i_req_id,
          program_application_id = i_prg_appl_id,
          program_id = i_prg_id,
          program_update_date = sysdate,
          layer_quantity = layer_quantity + i_txn_qty
        WHERE cpql.quantity_layer_id = i_qty_layer_id;
Line: 1018

  SELECT cost_layer_id
  FROM cst_pac_item_costs cpic
  WHERE cpic.pac_period_id = i_prior_pac_period_id
    AND cpic.cost_group_id = i_cost_group_id;
Line: 1024

  SELECT quantity_layer_id
  FROM cst_pac_quantity_layers cpql
  WHERE cpql.cost_layer_id = P_cost_layer_id;
Line: 1029

  SELECT distinct(wip_entity_id)
  FROM wip_pac_period_balances wppb
  WHERE wppb.pac_period_id = i_prior_pac_period_id
    AND wppb.cost_group_id = i_cost_group_id;
Line: 1057

    SELECT count(*)
    INTO l_count
    FROM cst_pac_item_costs
    WHERE pac_period_id = i_pac_period_id
      AND cost_group_id = i_cost_group_id;
Line: 1069

    SELECT count(*)
    INTO l_count
    FROM wip_pac_period_balances
    WHERE pac_period_id = i_pac_period_id
      AND cost_group_id = i_cost_group_id;
Line: 1090

      SELECT cst_pac_item_costs_s.nextval
      INTO l_cost_layer_id
      FROM dual;
Line: 1098

      INSERT INTO cst_pac_item_costs (
        cost_layer_id,
        pac_period_id,
        cost_group_id,
        inventory_item_id,
        total_layer_quantity,
        buy_quantity,
        make_quantity,
        issue_quantity,
        item_cost,
        begin_item_cost,
        item_buy_cost,
        item_make_cost,
        material_cost,
        material_overhead_cost,
        resource_cost,
        overhead_cost,
        outside_processing_cost,
        pl_material,
        pl_material_overhead,
        pl_resource,
        pl_outside_processing,
        pl_overhead,
        tl_material,
        tl_material_overhead,
        tl_resource,
        tl_outside_processing,
        tl_overhead,
        pl_item_cost,
        tl_item_cost,
        unburdened_cost,
        burden_cost,
        last_update_date,
        last_updated_by,
        creation_date,
        created_by,
        request_id,
        program_application_id,
        program_id,
        program_update_date,
        last_update_login)
      SELECT
        l_cost_layer_id,
        i_pac_period_id,
        cost_group_id,
        inventory_item_id,
        total_layer_quantity,
        0,
        0,
        0,
        item_cost,
        item_cost,
        item_buy_cost,
        item_make_cost,
        material_cost,
        material_overhead_cost,
        resource_cost,
        overhead_cost,
        outside_processing_cost,
        pl_material,
        pl_material_overhead,
        pl_resource,
        pl_outside_processing,
        pl_overhead,
        tl_material,
        tl_material_overhead,
        tl_resource,
        tl_outside_processing,
        tl_overhead,
        pl_item_cost,
        tl_item_cost,
        unburdened_cost,
        burden_cost,
        SYSDATE,
        i_user_id,
        SYSDATE,
        i_user_id,
        i_request_id,
        i_prog_app_id,
        i_prog_id,
        SYSDATE,
        i_login_id
      FROM cst_pac_item_costs cpic
      WHERE cpic.cost_layer_id = l_prior_period_cost.cost_layer_id;
Line: 1187

      INSERT INTO cst_pac_item_cost_details (
        cost_layer_id,
        cost_element_id,
        level_type,
        item_cost,
        item_buy_cost,
        item_make_cost,
        last_update_date,
        last_updated_by,
        creation_date,
        created_by,
        request_id,
        program_application_id,
        program_id,
        program_update_date,
        last_update_login)
      SELECT
        l_cost_layer_id,
        cpicd.cost_element_id,
        cpicd.level_type,
        0,
        0,
        0,
        SYSDATE,
        i_user_id,
        SYSDATE,
        i_user_id,
        i_request_id,
        i_prog_app_id,
        i_prog_id,
        SYSDATE,
        i_login_id
      FROM cst_pac_item_cost_details cpicd
      WHERE cpicd.cost_layer_id = l_prior_period_cost.cost_layer_id;
Line: 1225

        SELECT cst_pac_quantity_layers_s.nextval
        INTO l_quantity_layer_id
        FROM dual;
Line: 1233

        INSERT INTO cst_pac_quantity_layers (
          quantity_layer_id,
          cost_layer_id,
          pac_period_id,
          cost_group_id,
          inventory_item_id,
          layer_quantity,
          last_update_date,
          last_updated_by,
          creation_date,
          created_by,
          request_id,
          program_application_id,
          program_id,
          program_update_date,
          last_update_login)
        SELECT
          l_quantity_layer_id,
          l_cost_layer_id,
          i_pac_period_id,
          cost_group_id,
          inventory_item_id,
          layer_quantity,
          SYSDATE,
          i_user_id,
          SYSDATE,
          i_user_id,
          i_request_id,
          i_prog_app_id,
          i_prog_id,
          SYSDATE,
          i_login_id
        FROM cst_pac_quantity_layers cpql
        WHERE cpql.quantity_layer_id = l_prior_period_qty.quantity_layer_id;
Line: 1273

        UPDATE cst_pac_quantity_layers
           SET begin_layer_quantity = (SELECT total_layer_quantity
                                       FROM cst_pac_item_costs
                                       WHERE cost_layer_id = l_prior_period_cost.cost_layer_id)
        WHERE quantity_layer_id = l_quantity_layer_id;
Line: 1295

    SELECT period_start_date
    INTO l_current_start_date
    FROM CST_PAC_PERIODS
    WHERE pac_period_id = i_pac_period_id;
Line: 1301

    INSERT INTO wip_pac_period_balances (
      pac_period_id,
      cost_group_id,
      cost_type_id,
      organization_id,
      wip_entity_id,
      line_id,
      operation_seq_num,
      operation_completed_units,
      relieved_assembly_units,
      tl_resource_in,
      tl_resource_out,
      tl_outside_processing_in,
      tl_outside_processing_out,
      tl_overhead_in,
      tl_overhead_out,
      pl_material_in,
      pl_material_out,
      pl_resource_in,
      pl_resource_out,
      pl_overhead_in,
      pl_overhead_out,
      pl_outside_processing_in,
      pl_outside_processing_out,
      pl_material_overhead_in,
      pl_material_overhead_out,
      tl_resource_temp,
      tl_outside_processing_temp,
      tl_overhead_temp,
      pl_material_temp,
      pl_material_overhead_temp,
      pl_resource_temp,
      pl_outside_processing_temp,
      pl_overhead_temp,
      tl_resource_var,
      tl_outside_processing_var,
      tl_overhead_var,
      pl_material_var,
      pl_material_overhead_var,
      pl_resource_var,
      pl_outside_processing_var,
      pl_overhead_var,
      wip_entity_type,
      unrelieved_scrap_quantity,
      last_update_date,
      last_updated_by,
      creation_date,
      created_by,
      request_id,
      program_application_id,
      program_id,
      program_update_date,
      last_update_login )
    SELECT
      i_pac_period_id,
      wppb.cost_group_id,
      wppb.cost_type_id,
      wppb.organization_id,
      wppb.wip_entity_id,
      wppb.line_id,
      wppb.operation_seq_num,
      wppb.operation_completed_units,
      wppb.relieved_assembly_units,
      wppb.tl_resource_in,
      wppb.tl_resource_out,
      wppb.tl_outside_processing_in,
      wppb.tl_outside_processing_out,
      wppb.tl_overhead_in,
      wppb.tl_overhead_out,
      wppb.pl_material_in,
      wppb.pl_material_out,
      wppb.pl_resource_in,
      wppb.pl_resource_out,
      wppb.pl_overhead_in,
      wppb.pl_overhead_out,
      wppb.pl_outside_processing_in,
      wppb.pl_outside_processing_out,
      wppb.pl_material_overhead_in,
      wppb.pl_material_overhead_out,
      wppb.tl_resource_temp,
      wppb.tl_outside_processing_temp,
      wppb.tl_overhead_temp,
      wppb.pl_material_temp,
      wppb.pl_material_overhead_temp,
      wppb.pl_resource_temp,
      wppb.pl_outside_processing_temp,
      wppb.pl_overhead_temp,
      wppb.tl_resource_var,
      wppb.tl_outside_processing_var,
      wppb.tl_overhead_var,
      wppb.pl_material_var,
      wppb.pl_material_overhead_var,
      wppb.pl_resource_var,
      wppb.pl_outside_processing_var,
      wppb.pl_overhead_var,
      wppb.wip_entity_type,
      wppb.unrelieved_scrap_quantity,
      SYSDATE,
      i_user_id,
      SYSDATE,
      i_user_id,
      i_request_id,
      i_prog_app_id,
      i_prog_id,
      SYSDATE,
      i_login_id
    FROM
      wip_pac_period_balances wppb, wip_entities we
    WHERE
      wppb.pac_period_id = i_prior_pac_period_id
      AND wppb.cost_group_id = i_cost_group_id
      AND wppb.wip_entity_id = we.wip_entity_id
      AND (
      ( we.entity_type IN (1,3) AND EXISTS (
        SELECT 'X'
        FROM wip_discrete_jobs wdj
        WHERE
          wdj.wip_entity_id = wppb.wip_entity_id AND
          NVL(wdj.date_closed, l_current_start_date) >= l_current_start_date))
      OR (we.entity_type = 4 AND EXISTS (
        SELECT 'X'
        FROM wip_flow_schedules wfs
        WHERE
          wfs.wip_entity_id = wppb.wip_entity_id AND
          wfs.scheduled_flag = 1 AND
          wfs.status IN (1,2) AND
          NVL(wfs.date_closed, l_current_start_date) >= l_current_start_date))
      OR (we.entity_type =2 AND EXISTS (
        SELECT 'X'
        FROM wip_repetitive_schedules wrs
        WHERE
          wrs.wip_entity_id = wppb.wip_entity_id AND
          wrs.line_id = wppb.line_id AND
          NVL(wrs.date_closed, l_current_start_date) >= l_current_start_date)));
Line: 1441

      INSERT INTO CST_PAC_REQ_OPER_COST_DETAILS
       (pac_period_id,
        cost_group_id,
        wip_entity_id,
        line_id,
        inventory_item_id,
        cost_element_id,
        operation_seq_num,
        applied_value,
        applied_quantity,
        relieved_value,
        relieved_quantity,
        comp_variance,
        temp_relieved_value,
        last_update_date,
        last_updated_by,
        creation_date,
        created_by,
        request_id ,
        program_application_id,
        program_id,
        program_update_date,
        last_update_login)
        SELECT i_pac_period_id,
               wprocd.cost_group_id,
               wprocd.wip_entity_id,
               wprocd.line_id,
               wprocd.inventory_item_id,
               wprocd.cost_element_id,
               wprocd.operation_seq_num,
               wprocd.applied_value,
               wprocd.applied_quantity,
               wprocd.relieved_value,
               wprocd.relieved_quantity,
               wprocd.comp_variance,
               0,
               SYSDATE,
               i_user_id,
               SYSDATE,
               i_user_id,
               i_request_id,
               i_prog_app_id,
               i_prog_id,
               SYSDATE,
               i_login_id
        FROM   CST_PAC_REQ_OPER_COST_DETAILS wprocd,
               WIP_ENTITIES we
        WHERE  wprocd.pac_period_id = i_prior_pac_period_id
        AND    wprocd.cost_group_id = i_cost_group_id
        AND    wprocd.wip_entity_id = we.wip_entity_id
        AND (
             ( we.entity_type IN (1,3) AND EXISTS (
                SELECT 'X'
                FROM wip_discrete_jobs wdj
                WHERE
                  wdj.wip_entity_id = wprocd.wip_entity_id AND
                  NVL(wdj.date_closed, l_current_start_date) >= l_current_start_date))
                OR (we.entity_type = 2 AND EXISTS (
                SELECT 'X'
                FROM wip_repetitive_schedules wrs
                WHERE
                  wrs.wip_entity_id = wprocd.wip_entity_id AND
                  wrs.line_id = wprocd.line_id AND
                  NVL(wrs.date_closed, l_current_start_date) >= l_current_start_date)));
Line: 1529

PROCEDURE periodic_cost_update_hook (
  I_PAC_PERIOD_ID       IN      NUMBER,
  I_COST_GROUP_ID       IN      NUMBER,
  I_COST_TYPE_ID        IN      NUMBER,
  I_TXN_ID              IN      NUMBER,
  I_COST_LAYER_ID       IN      NUMBER,
  I_QTY_LAYER_ID        IN      NUMBER,
  I_ITEM_ID             IN      NUMBER,
  I_USER_ID             IN      NUMBER,
  I_LOGIN_ID            IN      NUMBER,
  I_REQ_ID              IN      NUMBER,
  I_PRG_APPL_ID         IN      NUMBER,
  I_PRG_ID              IN      NUMBER,
  I_TXN_CATEGORY        IN      NUMBER,
  I_TXN_QTY             IN      NUMBER,
  O_Err_Num             OUT NOCOPY     NUMBER,
  O_Err_Code            OUT NOCOPY     VARCHAR2,
  O_Err_Msg             OUT NOCOPY     VARCHAR2)
IS
  l_update_flag		NUMBER;
Line: 1554

   ** Insert into mpacd, all the elemental cost :                    **
   ** - exists in cpicd, but not exists in mptcd                     **
   ** It will use the current cost in cpicd as the new cost	     **
   ********************************************************************/
  l_stmt_num := 5;
Line: 1559

  INSERT INTO mtl_pac_actual_cost_details (
        transaction_id,
        pac_period_id,
        cost_type_id,
        cost_group_id,
        cost_layer_id,
        cost_element_id,
        level_type,
        last_update_date,
        last_updated_by,
        creation_date,
        created_by,
        last_update_login,
        request_id,
        program_application_id,
        program_id,
        program_update_date,
        inventory_item_id,
        actual_cost,
        prior_cost,
        prior_buy_cost,
        prior_make_cost,
        new_cost,
        new_buy_cost,
        new_make_cost,
        variance_amount,
        insertion_flag,
        user_entered,
        transaction_costed_date,
	txn_category)
  SELECT
        i_txn_id,
        i_pac_period_id,
        i_cost_type_id,
        i_cost_group_id,
        i_cost_layer_id,
        cpicd.cost_element_id,
        cpicd.level_type,
        sysdate,
        i_user_id,
        sysdate,
        i_user_id,
        i_login_id,
        i_req_id,
        i_prg_appl_id,
        i_prg_id,
        sysdate,
        i_item_id,
        nvl(cpicd.item_cost,0),
        nvl(cpicd.item_cost,0),
        nvl(cpicd.item_buy_cost,0),
        nvl(cpicd.item_make_cost,0),
        nvl(cpicd.item_cost,0),
        nvl(cpicd.item_buy_cost,0),
        nvl(cpicd.item_make_cost,0),
        0,
        'Y',
        'N',
        NULL,
	i_txn_category
  FROM  cst_pac_item_cost_details cpicd
  WHERE cpicd.cost_layer_id  = i_cost_layer_id
    AND not exists (
        SELECT 'not exists in mptcd'
        FROM mtl_pac_txn_cost_details mptcd
        WHERE mptcd.transaction_id = i_txn_id
          AND mptcd.pac_period_id  = i_pac_period_id
          AND mptcd.cost_group_id  = i_cost_group_id
          AND mptcd.cost_element_id = cpicd.cost_element_id
          AND mptcd.level_type = cpicd.level_type);
Line: 1631

   ** Insert into mpacd, all the elemental cost :                    **
   ** - exists in mptcd and cpicd                                    **
   ** - exists in mptcd but not exists in cpicd                      **
   ** New cost will be calculated based on current cost (if exists)  **
   ** and cost change in mptcd. 				     **
   ********************************************************************/
  l_stmt_num := 10;
Line: 1638

  INSERT INTO mtl_pac_actual_cost_details (
	transaction_id,
	pac_period_id,
	cost_type_id,
	cost_group_id,
	cost_layer_id,
	cost_element_id,
	level_type,
	last_update_date,
	last_updated_by,
	creation_date,
	created_by,
	last_update_login,
	request_id,
	program_application_id,
	program_id,
	program_update_date,
	inventory_item_id,
	actual_cost,
	prior_cost,
	prior_buy_cost,
	prior_make_cost,
	new_cost,
	new_buy_cost,
	new_make_cost,
        variance_amount,
	insertion_flag,
	user_entered,
	transaction_costed_date,
	txn_category,
	onhand_variance_amount)
  SELECT
	i_txn_id,
	i_pac_period_id,
	i_cost_type_id,
	i_cost_group_id,
	i_cost_layer_id,
      	mptcd.cost_element_id,
      	mptcd.level_type,
      	sysdate,
      	i_user_id,
      	sysdate,
      	i_user_id,
      	i_login_id,
      	i_req_id,
      	i_prg_appl_id,
      	i_prg_id,
      	sysdate,
      	mptcd.inventory_item_id,
      	decode(mptcd.new_periodic_cost,NULL,
             decode(mptcd.percentage_change,NULL,
                  /* value change formula */
                 decode(sign(cpql.layer_quantity),1,
		      decode(sign(i_txn_qty),1,
		       decode(sign(cpql.layer_quantity-i_txn_qty),-1,
                           decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity +
			               (mptcd.value_change/i_txn_qty*cpql.layer_quantity)),-1,
			      0,
			      (nvl(cpicd.item_cost,0)*nvl(cpql.layer_quantity,0) +
			       (mptcd.value_change/i_txn_qty*cpql.layer_quantity))/nvl(cpql.layer_quantity,-1)),
		         decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity + mptcd.value_change),-1,
			      0,
			      (nvl(cpicd.item_cost,0)*nvl(cpql.layer_quantity,0) +
			       mptcd.value_change)/nvl(cpql.layer_quantity,-1))),
     		         decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity + mptcd.value_change),-1,
			      0,
			      (nvl(cpicd.item_cost,0)*nvl(cpql.layer_quantity,0) +
			       mptcd.value_change)/nvl(cpql.layer_quantity,-1))),
		         nvl(cpicd.item_cost,0)),
                   /* percentage change formula */
                   nvl(cpicd.item_cost,0)*(1+mptcd.percentage_change/100)),
             /* new average cost formula */
             mptcd.new_periodic_cost),
      	nvl(cpicd.item_cost,0),
      	nvl(cpicd.item_buy_cost,0),
      	nvl(cpicd.item_make_cost,0),
      	decode(mptcd.new_periodic_cost,NULL,
             decode(mptcd.percentage_change,NULL,
                  /* value change formula */
                 decode(sign(cpql.layer_quantity),1,
		      decode(sign(i_txn_qty),1,
		       decode(sign(cpql.layer_quantity-i_txn_qty),-1,
                           decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity +
			               (mptcd.value_change/i_txn_qty*cpql.layer_quantity)),-1,
			      0,
			      (nvl(cpicd.item_cost,0)*nvl(cpql.layer_quantity,0) +
			       (mptcd.value_change/i_txn_qty*cpql.layer_quantity))/nvl(cpql.layer_quantity,-1)),
		         decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity + mptcd.value_change),-1,
			      0,
			      (nvl(cpicd.item_cost,0)*nvl(cpql.layer_quantity,0) +
			       mptcd.value_change)/nvl(cpql.layer_quantity,-1))),
     		         decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity + mptcd.value_change),-1,
			      0,
			      (nvl(cpicd.item_cost,0)*nvl(cpql.layer_quantity,0) +
			       mptcd.value_change)/nvl(cpql.layer_quantity,-1))),
		         nvl(cpicd.item_cost,0)),
                   /* percentage change formula */
                   nvl(cpicd.item_cost,0)*(1+mptcd.percentage_change/100)),
             /* new average cost formula */
             mptcd.new_periodic_cost),
      	nvl(cpicd.item_buy_cost,0),
      	nvl(cpicd.item_make_cost,0),
	decode(mptcd.value_change,NULL,
	     0,
	     decode(sign(cpql.layer_quantity),1,
	        decode(sign(i_txn_qty),1,
		 decode(sign(cpql.layer_quantity-i_txn_qty),-1,
  	          decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity + (mptcd.value_change/i_txn_qty*cpql.layer_quantity)),-1,
		       (mptcd.value_change/i_txn_qty*cpql.layer_quantity) + nvl(cpicd.item_cost,0) * cpql.layer_quantity,
		       0),
	          decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity + mptcd.value_change),-1,
		       mptcd.value_change + nvl(cpicd.item_cost,0) * cpql.layer_quantity,
		       0)),
       	          decode(sign(nvl(cpicd.item_cost,0) * cpql.layer_quantity + mptcd.value_change),-1,
		       mptcd.value_change + nvl(cpicd.item_cost,0) * cpql.layer_quantity,
		       0)),
		  mptcd.value_change)),
      	'Y',
      	'N',
	NULL,
	i_txn_category,
        decode(mptcd.value_change,NULL,
               0,
	       decode(sign(i_txn_qty),1,
	              decode(sign(cpql.layer_quantity),1,
		             decode(sign(cpql.layer_quantity-i_txn_qty),-1,
			            mptcd.value_change*(1-cpql.layer_quantity/i_txn_qty),
				    0
			            ),
			     0
		             ),
		      0
	              )
               )
  FROM  mtl_pac_txn_cost_details mptcd,
        cst_pac_item_cost_details cpicd,
        cst_pac_quantity_layers cpql
  WHERE mptcd.transaction_id = i_txn_id
    AND mptcd.pac_period_id  = i_pac_period_id
    AND mptcd.cost_group_id  = i_cost_group_id
    AND cpql.cost_layer_id = i_cost_layer_id
    AND cpql.quantity_layer_id = i_qty_layer_id
    AND cpicd.cost_layer_id (+) = i_cost_layer_id
    AND cpicd.cost_element_id (+) = mptcd.cost_element_id
    AND cpicd.level_type (+) = mptcd.level_type;
Line: 1785

  DELETE FROM cst_pac_item_cost_details
  WHERE cost_layer_id = i_cost_layer_id;
Line: 1789

  INSERT INTO cst_pac_item_cost_details(
        cost_layer_id,
        cost_element_id,
        level_type,
        last_update_date,
        last_updated_by,
        creation_date,
        created_by,
        last_update_login,
        request_id,
        program_application_id,
        program_id,
        program_update_date,
        item_cost,
        item_buy_cost,
        item_make_cost)
  SELECT i_cost_layer_id,
        mpacd.cost_element_id,
        mpacd.level_type,
        sysdate,
        i_user_id,
        sysdate,
        i_user_id,
        i_login_id,
        i_req_id,
        i_prg_appl_id,
        i_prg_id,
        sysdate,
        mpacd.new_cost,
        mpacd.new_buy_cost,
        mpacd.new_make_cost
  FROM  mtl_pac_actual_cost_details mpacd
  WHERE mpacd.transaction_id = i_txn_id
  AND   mpacd.cost_group_id = i_cost_group_id
  AND   mpacd.cost_layer_id = i_cost_layer_id
  AND   mpacd.insertion_flag = 'Y';
Line: 1826

  /* It's flag to indicate if we need to update begin item cost with the new item cost */
  /* If the update type is NOT value_change, set the flag to 1 to indicate updating of begin */
  /* item cost with the new cost. Otherwise set it to 0 */
  l_stmt_num := 40;
Line: 1830

  SELECT DECODE(MAX(value_change),NULL, 1, 0)
  INTO l_update_flag
  FROM mtl_pac_txn_cost_details mptcd
  WHERE mptcd.transaction_id = i_txn_id
    AND mptcd.pac_period_id  = i_pac_period_id
    AND mptcd.cost_group_id  = i_cost_group_id;
Line: 1838

  UPDATE cst_pac_item_costs cpic
  SET (last_updated_by,
	last_update_date,
	last_update_login,
	request_id,
	program_application_id,
	program_id,
	program_update_date,
	pl_material,
	pl_material_overhead,
	pl_resource,
	pl_outside_processing,
	pl_overhead,
	tl_material,
	tl_material_overhead,
	tl_resource,
	tl_outside_processing,
	tl_overhead,
	material_cost,
	material_overhead_cost,
	resource_cost,
	outside_processing_cost,
	overhead_cost,
	pl_item_cost,
	tl_item_cost,
	item_cost,
        begin_item_cost,
	item_buy_cost,
	item_make_cost,
	unburdened_cost,
	burden_cost) =
     (SELECT
        i_user_id,
        sysdate,
        i_login_id,
	i_req_id,
      	i_prg_appl_id,
      	i_prg_id,
      	sysdate,
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,1,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,2,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,3,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,4,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,2,DECODE(COST_ELEMENT_ID,5,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,1,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,2,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,3,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,4,ITEM_COST,0),0)),
	SUM(DECODE(LEVEL_TYPE,1,DECODE(COST_ELEMENT_ID,5,ITEM_COST,0),0)),
	SUM(DECODE(COST_ELEMENT_ID,1,ITEM_COST,0)),
	SUM(DECODE(COST_ELEMENT_ID,2,ITEM_COST,0)),
	SUM(DECODE(COST_ELEMENT_ID,3,ITEM_COST,0)),
	SUM(DECODE(COST_ELEMENT_ID,4,ITEM_COST,0)),
	SUM(DECODE(COST_ELEMENT_ID,5,ITEM_COST,0)),
	SUM(DECODE(LEVEL_TYPE,2,ITEM_COST,0)),
	SUM(DECODE(LEVEL_TYPE,1,ITEM_COST,0)),
	SUM(ITEM_COST),
        DECODE(l_update_flag, 1, SUM(ITEM_COST), cpic.begin_item_cost),
	SUM(ITEM_BUY_COST),
	SUM(ITEM_MAKE_COST),
	SUM(DECODE(COST_ELEMENT_ID,2,DECODE(LEVEL_TYPE,2,ITEM_COST,0),ITEM_COST)),
	SUM(DECODE(COST_ELEMENT_ID,2,DECODE(LEVEL_TYPE,1,ITEM_COST,0),0))
      FROM  CST_PAC_ITEM_COST_DETAILS v
      WHERE v.cost_layer_id = i_cost_layer_id
      GROUP BY COST_LAYER_ID)
  WHERE cpic.cost_layer_id = i_cost_layer_id
  AND EXISTS
	(SELECT 'there is detail cost'
	 FROM   cst_pac_item_cost_details cpicd
	 WHERE  cpicd.cost_layer_id = i_cost_layer_id);
Line: 1910

 * For a value change periodic update cost transaction,
 * update the primary_quantity in mmt to the layer quantity from cpql.
 * Prior to this, the quantity at the beginning of the period was being
 * used and this caused errors in the distributions.
 * The layer qty can be obtained from cst_pac_quantity_layers
 */

  l_stmt_num := 60;
Line: 1919

    select nvl(layer_quantity,0)
    into l_onhand
    from cst_pac_quantity_layers
    where cost_group_id = i_cost_group_id and
    pac_period_id = i_pac_period_id and
    inventory_item_id = i_item_id;
Line: 1926

    UPDATE mtl_material_transactions mmt
    SET --primary_quantity  = l_onhand,
        /* Bug 2288994. Update periodic_primary_quantity also */
        periodic_primary_quantity = l_onhand
    WHERE mmt.transaction_id = i_txn_id;
Line: 1931

    fnd_file.put_line(fnd_file.log,'Updated MMT with primary_quantity: ' || to_char(l_onhand));
Line: 1938

      o_err_msg := 'CSTPPWAC.Periodic_Cost_Update (' || to_char(l_stmt_num) || '): '
		|| substr(SQLERRM,1,200);
Line: 1941

END periodic_cost_update_hook;