You are on page 1of 32

select FORMULA_NO item_code, 'PA0' ORG_CODE FROM JLN_formula_headers a,

mtl_system_items_b itm
where a.INVENTORY_ITEM_CODE=itm.SEGMENT1(+) and itm.ORGANIZATION_ID(+)=370
and itm.SEGMENT1 is null

Insert into JLN_FORMULA_HEADERS(FORMULA_NO, FORMULA_VERS, FORMULA_TYPE,


FORMULA_DESC1, FORMULA_CLASS, INACTIVE_IND, FORMULA_UOM, FORMULA_STATUS, FLAG,
RECORD_TYPE,OWNER_ORGANIZATION_CODE, OWNER_NAME, LINE_TYPE, LINE_NO, QTY,
RELEASE_TYPE, COST_ALLOC, SCALE_TYPE_HDR, DETAIL_UOM, SCALE_TYPE_DTL, PHANTOM_TYPE,
DELETE_MARK, CONTRIBUTE_YIELD_IND, INVENTORY_ITEM_CODE) Values
('88503',2,1,'Manufacturing formula for 479 19"',null,0,null, 100,null,null,
'FMO','18461',-1, 1,1,0, 1,1,null,1,0,0,'N','0772080980');

----------
-- select * from rfl_scm_item_list a where a.AMSU_TEXT='PCS' and AMIM_TEXT in
('0538107211','0526558051')

/* Cursor Declaration ***/


declare
cursor c1 is

--select * from XX_ITEM_INTERFACE_STG_DEBUG where SEGMENT1 in ('911461','911462');


--xx_item_interface_stg1;
select a.* from XX_ITEM_INTERFACE_STG_DEBUG a
where -- a.SEGMENT1 in ('911461','911462') and
a.SEGMENT1 not in (select segment1 from mtl_system_items_b i where
organization_id=102 and a.SEGMENT1= i.SEGMENT1 ) -- and a.SEGMENT1 in
('911465','911466','911467')
;

--select ATTRIBUTE1, I.* from mtl_system_items_b i where organization_id=102 and


i.SEGMENT1 in ('32144')

/* Variable Declaration **/

l_org_id number(3);
l_uom varchar2(15);
l_suom varchar2(15);
l_item_type varchar2(60);
l_desc varchar2(60);
l_temp_id varchar2(3);
l_sale_ac number(16);
l_exp_ac number(16);
l_cost_sale_ac number(16);
l_item_number varchar2(100);
l_flag varchar2(4) default'A';
l_msg varchar2(200);
begin
--delete from MTL_SYSTEM_ITEMS_INTERFACE;
--commit;

for x1 in c1 loop
/* Validation For Organization */
-- begin
-- select organization_id into l_org_id
-- from ORG_ORGANIZATION_DEFINITIONS
-- where organization_code = x1.organization_code;
-- exception
-- when others then
-- l_flag :='E';
-- l_msg :='Item Interface'||'Organization Id'||l_org_id||' not in
system';
-- fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
-- end;

/* Validation for Item Number */

ifx1.SEGMENT1 is null then


l_flag :='E';
l_msg :='Item number should not be NULL';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured--'||l_msg);
end if;
/* Validation for Description */

if x1.DESCRIPTION is null then


l_flag :='E';
l_msg :='Item description should not be NULL';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg|| x1.SEGMENT1);
end if;

/* Validation for Unit Of Measure */

if x1.PRIMARY_UOM_CODE is not null then


begin
select UOM_CODE into l_uom
from mtl_units_of_measure
where UOM_CODE =x1.PRIMARY_UOM_CODE;
exception
when others then
l_flag :='E';
l_msg := x1.SEGMENT1||'---'||l_uom ||'UOM is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;
else
l_msg :='Primary UOM should not be NULL ';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end if;

begin
select COST_OF_SALES_ACCOUNT into l_cost_sale_ac
from MTL_PARAMETERS
where ORGANIZATION_ID = 102;
exception
when no_data_found then
l_flag :='E';
l_msg :='Cost of Sales Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Cost of Sales Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

begin
select SALES_ACCOUNT into l_sale_ac
from MTL_PARAMETERS
where ORGANIZATION_ID = 102;

exception
when no_data_found then
l_flag :='E';
l_msg :='Sales Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Sales Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

begin

select EXPENSE_ACCOUNT into l_exp_ac


from MTL_PARAMETERS
where ORGANIZATION_ID = 102;

exception
when no_data_found then
l_flag :='E';
l_msg :='Expence Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Expence Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

if l_flag!='E' then
insert into MTL_SYSTEM_ITEMS_INTERFACE
( ORGANIZATION_ID,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN,
DESCRIPTION,
SEGMENT1,
PRIMARY_UOM_CODE,
TEMPLATE_ID,
SUMMARY_FLAG,
ENABLED_FLAG,
SALES_ACCOUNT,
COST_OF_SALES_ACCOUNT,
EXPENSE_ACCOUNT,
PROCESS_QUALITY_ENABLED_FLAG,
PROCESS_COSTING_ENABLED_FLAG,
RECIPE_ENABLED_FLAG,
PROCESS_EXECUTION_ENABLED_FLAG,
RESTRICT_SUBINVENTORIES_CODE,
RESTRICT_LOCATORS_CODE ,
LOCATION_CONTROL_CODE ,
SET_PROCESS_ID,
PROCESS_FLAG,
TRANSACTION_TYPE/*,
ATTRIBUTE1, -- ou
ATTRIBUTE25, -- TF
ATTRIBUTE26, -- unload
ATTRIBUTE27, -- load
ATTRIBUTE28, -- DP
ATTRIBUTE29, -- TP
ATTRIBUTE30 -- MRP*/
)
values( 102,
sysdate,
fnd_global.USER_ID,
sysdate,
fnd_global.USER_ID,
fnd_global.LOGIN_ID,
x1.DESCRIPTION,
x1.SEGMENT1,
l_uom,
-- l_item_type,
-- 1, -- 1 for FG item, 2 for Purchase
1,
'Y',
'Y',
l_sale_ac,
l_cost_sale_ac,
l_exp_ac,
x1.PROCESS_QUALITY_ENABLED_FLAG,
x1.PROCESS_COSTING_ENABLED_FLAG,
x1.RECIPE_ENABLED_FLAG,
x1.PROCESS_EXECUTION_ENABLED_FLAG,
1,
1,
2,
2,
1,
'CREATE'/*,
x1.ATTRIBUTE1,
x1.ATTRIBUTE25, -- TF
x1.ATTRIBUTE29, -- unload
x1.ATTRIBUTE30, -- load
x1.ATTRIBUTE27, -- DP
x1.ATTRIBUTE28, -- TP
x1.ATTRIBUTE26 -- MRP*/
);

-- MTL_INTERFACE_ERRORS

-- update XX_ITEM_INTERFACE_STG_DEBUG set I_STATUSES='OK' where


SEGMENT1= x1.SEGMENT1;
-- commit;
else
update XX_ITEM_INTERFACE_STG_DEBUG set I_STSTAUS=l_msg where SEGMENT1=
x1.SEGMENT1;
commit;
end if;
end loop;

commit;
end;
/
--------------------

select unit,count(item_id) tm from (


select item_id, item_name, upper(ut.ITEM_D_UNITS_NAME) unit , 'Y','Y','Y','Y',
null,null
from item_master@LSALES a, rfl_fg_item_list b, ITEM_DIST_UNITS@LSALES ut
where b.ITEM_CODE=a.item_id and a.ITEM_D_UNITS_ID=ut.ITEM_D_UNITS_ID --and
upper(ITEM_D_UNITS_NAME)='LB'
and not exists (select * from mtl_system_items_b itm where a.item_id= itm.segment1
and itm.ORGANIZATION_ID=102) --and itm.segment1 is null
) group by unit
order by tm desc

Insert into XX_ITEM_INTERFACE_STG_DEBUG


select SEGMENT1, item_name, upper(ITEM_D_UNITS_NAME) unit , 'Y','Y','Y','Y',
null,null
from item_master@LSALES a, xxcust.xxbkp_notinitem b, ITEM_DIST_UNITS@LSALES ut
where b.SEGMENT1=a.item_id and a.ITEM_D_UNITS_ID=ut.ITEM_D_UNITS_ID --and
upper(ITEM_D_UNITS_NAME)='BAG' --872038
and exists (select * from mtl_system_items_b itm where a.item_id= itm.segment1 and
itm.ORGANIZATION_ID=102)

CREATE TABLE APPS.JLN_FORMULA_HEADERS


(
FORMULA_NO VARCHAR2(32 BYTE) NOT NULL,
FORMULA_VERS NUMBER NOT NULL,
FORMULA_TYPE NUMBER(5) NOT NULL,
FORMULA_DESC1 VARCHAR2(70 BYTE),
FORMULA_CLASS VARCHAR2(8 BYTE),
INACTIVE_IND NUMBER(5) NOT NULL,
FORMULA_UOM VARCHAR2(4 BYTE),
FORMULA_STATUS VARCHAR2(30 BYTE),
FLAG VARCHAR2(2 BYTE),
RECORD_TYPE VARCHAR2(12 BYTE),
OWNER_ORGANIZATION_CODE VARCHAR2(10 BYTE),
OWNER_NAME VARCHAR2(20 BYTE),
LINE_TYPE NUMBER(10),
LINE_NO INTEGER,
QTY NUMBER(20,10),
RELEASE_TYPE VARCHAR2(10 BYTE),
COST_ALLOC VARCHAR2(10 BYTE),
SCALE_TYPE_HDR NUMBER(10),
DETAIL_UOM VARCHAR2(10 BYTE),
SCALE_TYPE_DTL INTEGER,
PHANTOM_TYPE INTEGER,
DELETE_MARK VARCHAR2(10 BYTE),
CONTRIBUTE_YIELD_IND VARCHAR2(10 BYTE),
INVENTORY_ITEM_CODE VARCHAR2(15 BYTE)
);
Insert into JLN_FORMULA_HEADERS(FORMULA_NO, FORMULA_VERS, FORMULA_TYPE,
FORMULA_DESC1, FORMULA_CLASS, INACTIVE_IND, FORMULA_UOM, FORMULA_STATUS, FLAG,
RECORD_TYPE,OWNER_ORGANIZATION_CODE, OWNER_NAME, LINE_TYPE, LINE_NO, QTY,
RELEASE_TYPE, COST_ALLOC, SCALE_TYPE_HDR, DETAIL_UOM, SCALE_TYPE_DTL, PHANTOM_TYPE,
DELETE_MARK, CONTRIBUTE_YIELD_IND, INVENTORY_ITEM_CODE) Values
('35521',1,1,'Packaging formula for Vermicelli 200 gm x48 pcs
ctn','',0,'PCS',100,'','','FMO','SETUP
USER',1,1,1000,1,1,1,'PCS',1,0,0,'N','35521');

Insert into JLN_FORMULA_HEADERS(FORMULA_NO, FORMULA_VERS, FORMULA_TYPE,


FORMULA_DESC1, FORMULA_CLASS, INACTIVE_IND, FORMULA_UOM, FORMULA_STATUS, FLAG,
RECORD_TYPE,OWNER_ORGANIZATION_CODE, OWNER_NAME, LINE_TYPE, LINE_NO, QTY,
RELEASE_TYPE, COST_ALLOC, SCALE_TYPE_HDR, DETAIL_UOM, SCALE_TYPE_DTL, PHANTOM_TYPE,
DELETE_MARK, CONTRIBUTE_YIELD_IND, INVENTORY_ITEM_CODE) Values
('35521',1,1,'Packaging formula for Vermicelli 200 gm x48 pcs
ctn','',0,'PCS',100,'','','FMO','SETUP USER',-
1,1,244,1,1,1,'KG',1,0,0,'N','0130019210');

Insert into JLN_FORMULA_HEADERS(FORMULA_NO, FORMULA_VERS, FORMULA_TYPE,


FORMULA_DESC1, FORMULA_CLASS, INACTIVE_IND, FORMULA_UOM, FORMULA_STATUS, FLAG,
RECORD_TYPE,OWNER_ORGANIZATION_CODE, OWNER_NAME, LINE_TYPE, LINE_NO, QTY,
RELEASE_TYPE, COST_ALLOC, SCALE_TYPE_HDR, DETAIL_UOM, SCALE_TYPE_DTL, PHANTOM_TYPE,
DELETE_MARK, CONTRIBUTE_YIELD_IND, INVENTORY_ITEM_CODE) Values
('35521',1,1,'Packaging formula for Vermicelli 200 gm x48 pcs
ctn','',0,'PCS',100,'','','FMO','SETUP USER',-
1,1,8.196721,1,1,1,'KG',1,0,0,'N','0729424400');
Insert into JLN_FORMULA_HEADERS(FORMULA_NO, FORMULA_VERS, FORMULA_TYPE,
FORMULA_DESC1, FORMULA_CLASS, INACTIVE_IND, FORMULA_UOM, FORMULA_STATUS, FLAG,
RECORD_TYPE,OWNER_ORGANIZATION_CODE, OWNER_NAME, LINE_TYPE, LINE_NO, QTY,
RELEASE_TYPE, COST_ALLOC, SCALE_TYPE_HDR, DETAIL_UOM, SCALE_TYPE_DTL, PHANTOM_TYPE,
DELETE_MARK, CONTRIBUTE_YIELD_IND, INVENTORY_ITEM_CODE) Values
('35521',1,1,'Packaging formula for Vermicelli 200 gm x48 pcs
ctn','',0,'PCS',100,'','','FMO','SETUP USER',-
1,1,20.833333,1,1,1,'PCS',1,0,0,'N','0729880800');
Insert into JLN_FORMULA_HEADERS(FORMULA_NO, FORMULA_VERS, FORMULA_TYPE,
FORMULA_DESC1, FORMULA_CLASS, INACTIVE_IND, FORMULA_UOM, FORMULA_STATUS, FLAG,
RECORD_TYPE,OWNER_ORGANIZATION_CODE, OWNER_NAME, LINE_TYPE, LINE_NO, QTY,
RELEASE_TYPE, COST_ALLOC, SCALE_TYPE_HDR, DETAIL_UOM, SCALE_TYPE_DTL, PHANTOM_TYPE,
DELETE_MARK, CONTRIBUTE_YIELD_IND, INVENTORY_ITEM_CODE) Values
('35521',1,1,'Packaging formula for Vermicelli 200 gm x48 pcs
ctn','',0,'PCS',100,'','','FMO','SETUP USER',-
1,1,0.434028,1,1,1,'PCS',1,0,0,'N','0729203010');
Insert into JLN_FORMULA_HEADERS(FORMULA_NO, FORMULA_VERS, FORMULA_TYPE,
FORMULA_DESC1, FORMULA_CLASS, INACTIVE_IND, FORMULA_UOM, FORMULA_STATUS, FLAG,
RECORD_TYPE,OWNER_ORGANIZATION_CODE, OWNER_NAME, LINE_TYPE, LINE_NO, QTY,
RELEASE_TYPE, COST_ALLOC, SCALE_TYPE_HDR, DETAIL_UOM, SCALE_TYPE_DTL, PHANTOM_TYPE,
DELETE_MARK, CONTRIBUTE_YIELD_IND, INVENTORY_ITEM_CODE) Values
('35521',1,1,'Packaging formula for Vermicelli 200 gm x48 pcs
ctn','',0,'PCS',100,'','','FMO','SETUP USER',-
1,1,0.006,1,1,1,'PCS',1,0,0,'N','0729285200');
Insert into JLN_FORMULA_HEADERS(FORMULA_NO, FORMULA_VERS, FORMULA_TYPE,
FORMULA_DESC1, FORMULA_CLASS, INACTIVE_IND, FORMULA_UOM, FORMULA_STATUS, FLAG,
RECORD_TYPE,OWNER_ORGANIZATION_CODE, OWNER_NAME, LINE_TYPE, LINE_NO, QTY,
RELEASE_TYPE, COST_ALLOC, SCALE_TYPE_HDR, DETAIL_UOM, SCALE_TYPE_DTL, PHANTOM_TYPE,
DELETE_MARK, CONTRIBUTE_YIELD_IND, INVENTORY_ITEM_CODE) Values
('35521',1,1,'Packaging formula for Vermicelli 200 gm x48 pcs
ctn','',0,'PCS',100,'','','FMO','SETUP USER',-
1,1,0.011,1,1,1,'PCS',1,0,0,'N','0529574100');
COMMIT;
-----------------------

DECLARE
CURSOR c_header IS

SELECT DISTINCT formula_no


FROM JLN_formula_headers --mii_gmd_formula
WHERE flag IS NULL;

CURSOR c_master (
p_formula varchar2 --TEST_M020
) IS
SELECT *
FROM JLN_formula_headers --mii_gmd_formula
WHERE flag IS NULL
AND formula_no = p_formula;

l_formula_header_tbl gmd_formula_pub.formula_insert_hdr_tbl_type;
l_formula JLN_formula_headers%ROWTYPE; -- mii_gmd_formula%ROWTYPE;
l_count NUMBER := 0;
l_loop_cnt NUMBER := 0;
l_record_count NUMBER := 0;
l_data VARCHAR2 (2000);
l_return_status VARCHAR2 (1);
l_status VARCHAR2 (1);
i NUMBER := 1;
l_dummy_cnt NUMBER;
l_api_version NUMBER := 1;
l_init_msg_list BOOLEAN;
l_commit BOOLEAN;
return_sts BOOLEAN;
v_item_id number;
v_organization_id number;
v_user_id number;
BEGIN
--FND_GLOBAL.APPS_INITIALIZE(1112,22882,552,0);
fnd_global.apps_initialize (user_id => 1187,
resp_id => 50774,
resp_appl_id => 555
);

-- FND_RESPONSIBILITY_VL , FND_user

/*FND_GLOBAL.APPS_INITIALIZE(user_id, resp_id, resp_appl_id);*/


l_init_msg_list := TRUE;
l_commit := TRUE;

FOR l_header IN c_header


LOOP
OPEN c_master(l_header.formula_no);
LOOP
FETCH c_master INTO l_formula;
exit WHEN c_master%NOTFOUND;

dbms_output.put_line (c_master%ROWCOUNT);
BEGIN
SELECT DISTINCT inventory_item_id
INTO v_item_id
FROM mtl_system_items_b
WHERE segment1 = UPPER(l_formula.inventory_item_code);

SELECT organization_id
INTO v_organization_id
FROM mtl_parameters
WHERE organization_code = l_formula.owner_organization_code;

SELECT user_id
INTO v_user_id
FROM fnd_user
WHERE user_name = l_formula.owner_name;

EXCEPTION
WHEN others THEN
UPDATE JLN_formula_headers --mii_gmd_formula
set flag = 'E'
--, note = 'Ada exception'
WHERE formula_no = l_formula.formula_no;
END;

l_formula_header_tbl (c_master%ROWCOUNT).record_type := 'I';


l_formula_header_tbl (c_master%ROWCOUNT).formula_no :=
UPPER(l_formula.formula_no);
l_formula_header_tbl (c_master%ROWCOUNT).formula_vers :=
l_formula.formula_vers;
l_formula_header_tbl (c_master%ROWCOUNT).formula_type :=
l_formula.formula_type;
l_formula_header_tbl (c_master%ROWCOUNT).formula_desc1 :=
l_formula.formula_desc1;
l_formula_header_tbl (c_master%ROWCOUNT).formula_class :=
l_formula.formula_class;
l_formula_header_tbl (c_master%ROWCOUNT).inactive_ind :=
l_formula.inactive_ind;
l_formula_header_tbl (c_master%ROWCOUNT).owner_organization_id :=
v_organization_id;
l_formula_header_tbl (c_master%ROWCOUNT).formula_status :=
l_formula.formula_status;
l_formula_header_tbl (c_master%ROWCOUNT).owner_id := v_user_id;
l_formula_header_tbl (c_master%ROWCOUNT).line_type := l_formula.line_type;
l_formula_header_tbl (c_master%ROWCOUNT).line_no := l_formula.line_no;
l_formula_header_tbl (c_master%ROWCOUNT).inventory_item_id := v_item_id;
l_formula_header_tbl (c_master%ROWCOUNT).qty := l_formula.qty;
l_formula_header_tbl (c_master%ROWCOUNT).detail_uom := l_formula.detail_uom;
l_formula_header_tbl (c_master%ROWCOUNT).release_type :=
l_formula.release_type;
l_formula_header_tbl (c_master%ROWCOUNT).scale_type_hdr :=
l_formula.scale_type_hdr;
l_formula_header_tbl (c_master%ROWCOUNT).scale_type_dtl :=
l_formula.scale_type_dtl;
l_formula_header_tbl (c_master%ROWCOUNT).cost_alloc := l_formula.cost_alloc;
l_formula_header_tbl (c_master%ROWCOUNT).CONTRIBUTE_YIELD_IND := 'N'; --
l_formula.CONTRIBUTE_YIELD_IND;
l_formula_header_tbl (c_master%ROWCOUNT).PHANTOM_TYPE :=
l_formula.PHANTOM_TYPE;
l_formula_header_tbl (c_master%ROWCOUNT).delete_mark :=
l_formula.delete_mark;
l_formula_header_tbl (c_master%ROWCOUNT).CONTRIBUTE_STEP_QTY_IND := 'Y';

DBMS_OUTPUT.put_line ('Value Test ' || l_formula_header_tbl (1).formula_no);

-- UPDATE mii_gmd_formula
-- set flag = 'Y'
-- WHERE formula_no = l_formula.formula_no
-- AND line_no = l_formula.line_no
-- AND inventory_item_code = l_formula.inventory_item_code;

END LOOP;

CLOSE c_master;

gmd_formula_pub.insert_formula
(p_api_version => 1.0,
p_formula_header_tbl => l_formula_header_tbl,
x_return_status => l_return_status,
x_msg_count => l_count,
x_msg_data => l_data
);
DBMS_OUTPUT.put_line ('l_return_status:'||
l_return_status);
DBMS_OUTPUT.put_line ('l_data:'||l_data);

IF l_return_status = 'E' OR l_return_status = 'U'


THEN
UPDATE JLN_formula_headers--mii_gmd_formula
set flag = l_return_status
--, note = l_data
WHERE formula_no = l_formula.formula_no;
ELSE
UPDATE JLN_formula_headers--mii_gmd_formula
set flag = 'Y'
-- , note = l_data
WHERE formula_no = l_formula.formula_no;
END IF;

END LOOP;

IF l_count >= 0
THEN
l_loop_cnt := 1;

LOOP
fnd_msg_pub.get (p_msg_index => l_loop_cnt,
p_data => l_data,
p_encoded => fnd_api.g_false,
p_msg_index_out => l_dummy_cnt
);
DBMS_OUTPUT.put_line ('Record = ' || l_loop_cnt);
DBMS_OUTPUT.put_line (l_data);
IF l_status = 'E' OR l_status = 'U'
THEN
l_data := CONCAT ('ERROR ', l_data);
END IF;

DBMS_OUTPUT.put_line (l_data);

IF (l_status = 'U')
THEN
l_return_status := l_status;
ELSIF (l_status = 'E' AND l_return_status <> 'U')
THEN
l_return_status := l_status;
ELSE
l_return_status := l_status;
END IF;

l_loop_cnt := l_loop_cnt + 1;

IF l_loop_cnt > l_count


THEN
EXIT;
END IF;
END LOOP;
END IF;
COMMIT;

END;

--fm_form_mst b, fm_form_mst_tl
---------------------------------------------
CREATE OR REPLACE PROCEDURE APPS.XXPFL_SUBINV_LOC_INSERT(ERRBUFF OUT
VARCHAR2,RETCODE OUT VARCHAR2) IS
/
***********************************************************************************
*************/
/* Purpose : Assign Itemes to Subinventory and Locator
*/
/* Client : Pran
*/
/* Created By : Suheeb Ali
*/
/* Creation Date : 01-OCT-2013
*/
/
***********************************************************************************
*************/
--DECLARE
M_EXISTS VARCHAR2 (1);
L_ERR_FLAG CHAR (1) := 'N';

--xxpran_item_assig_stg

SELECT ORGANIZATION_ID ,ORGANIZATION_CODE, ORGANIZATION_NAME


FROM ORG_ORGANIZATION_DEFINITIONS a
WHERE 1=1 and a.DISABLE_DATE is not null

CURSOR C1 IS

SELECT ORGANIZATION_ID ,ORGANIZATION_CODE, ORGANIZATION_NAME


FROM ORG_ORGANIZATION_DEFINITIONS a
WHERE 1=1 --and ORGANIZATION_NAME LIKE '%-MEE-%'
--AND USER_DEFINITION_ENABLE_DATE>='01-MAY-2018'
-- AND ORGANIZATION_CODE ='MH5'
--(select distinct organization_code from xxpran_item_assig_stg)

CURSOR SUB_INV(P_ORG NUMBER) IS

SELECT MSI.INVENTORY_ITEM_ID,MP.ORGANIZATION_ID, MSI.SEGMENT1,


MS.SECONDARY_INVENTORY_NAME SECONDARY_INVENTORY,
SYSDATE LAST_UPDATE_DATE,
1110 LAST_UPDATED_BY,
SYSDATE CREATION_DATE,
1110 CREATED_BY,
75516 LAST_UPDATE_LOGIN,
6 INVENTORY_PLANNING_CODE
FROM MTL_SECONDARY_INVENTORIES MS,
MTL_PARAMETERS MP,
MTL_SYSTEM_ITEMS_B MSI
WHERE MS.ORGANIZATION_ID = MP.ORGANIZATION_ID
AND MS.ORGANIZATION_ID = MSI.ORGANIZATION_ID
AND MS.ORGANIZATION_ID =3764--P_ORG
AND LENGTH(MSI.SEGMENT1) < 12 --- <6 For FG and <12 for RM
AND ( UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%STAGE%' --MB0.Scrap
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%RM%' ----then 5digit
code
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%FG%' ----then 10digit
code ACS
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%ME%'
OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%Scrap%'
OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%ACS%'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%MEE%'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%CAFE%'
--OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%VH%'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%CN%'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%ST'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%CV%'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%CIVIL%'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%TRADNG%'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%PK'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%LCM%'
-- OR UPPER(MS.SECONDARY_INVENTORY_NAME) LIKE '%MK'
)

select distinct ORGANIZATION_ID from MTL_ITEM_SUB_INVENTORIES--MTL_ITEM_LOCATIONS


--MTL_SECONDARY_INVENTORIES MS

SELECT 'M'
--INTO M_EXISTS
FROM APPS.MTL_ITEM_SUB_INVENTORIES

MH5

CURSOR SEC_LOC(P_ORG NUMBER,P_SEC_INV VARCHAR2,P_ITEM_ID NUMBER) IS

SELECT i( MSI.INVENTORY_ITEM_ID), SUBINVENTORY_CODE,MSI.INVENTORY_ITEM_ID,


MP.ORGANIZATION_ID,
MIL.INVENTORY_LOCATION_ID SECONDARY_LOCATOR,
SYSDATE LAST_UPDATE_DATE,
1110 LAST_UPDATED_BY,
SYSDATE CREATION_DATE,
1110 CREATED_BY,
75516 LAST_UPDATE_LOGIN
FROM MTL_PARAMETERS MP,
MTL_SYSTEM_ITEMS_B MSI,
MTL_ITEM_LOCATIONS MIL
WHERE MSI.ORGANIZATION_ID = MP.ORGANIZATION_ID
AND MSI.ORGANIZATION_ID = MIL.ORGANIZATION_ID(+)
AND MSI.ORGANIZATION_ID = :P_ORG

AND MSI.INVENTORY_ITEM_ID =MIL.INVENTORY_ITEM_ID(+)


and MIL.INVENTORY_ITEM_ID is null

-- P_ITEM_ID
AND UPPER(MIL.SUBINVENTORY_CODE) LIKE UPPER(P_SEC_INV)

BEGIN
FOR I IN C1 LOOP
IF (L_ERR_FLAG <> 'Y') THEN
FOR R_SUB_INV IN SUB_INV(I.ORGANIZATION_ID) LOOP
-- CHECK IF THE ITEM- ORGANIZATION - SUBINVENTORY COMBINATION IS ALREADY
EXISTING --
begin

SELECT 'M'
INTO M_EXISTS
FROM APPS.MTL_ITEM_SUB_INVENTORIES
WHERE INVENTORY_ITEM_ID = R_SUB_INV.INVENTORY_ITEM_ID
AND ORGANIZATION_ID = R_SUB_INV.ORGANIZATION_ID
--AND UPPER(SECONDARY_INVENTORY) LIKE
UPPER(R_SUB_INV.SECONDARY_INVENTORY)

;
exception
when others then
DBMS_OUTPUT.PUT_LINE('error -'||SQLERRM||
R_SUB_INV.INVENTORY_ITEM_ID);
M_EXISTS := 'N';
end;

IF (M_EXISTS <> 'M') THEN


BEGIN
INSERT INTO MTL_ITEM_SUB_INVENTORIES
(
INVENTORY_ITEM_ID,
ORGANIZATION_ID,
SECONDARY_INVENTORY,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN,
INVENTORY_PLANNING_CODE
)
VALUES
( R_SUB_INV.INVENTORY_ITEM_ID,
R_SUB_INV.ORGANIZATION_ID,
R_SUB_INV.SECONDARY_INVENTORY,
R_SUB_INV.LAST_UPDATE_DATE,
R_SUB_INV.LAST_UPDATED_BY,
R_SUB_INV.CREATION_DATE,
R_SUB_INV.CREATED_BY,
R_SUB_INV.LAST_UPDATE_LOGIN,
R_SUB_INV.INVENTORY_PLANNING_CODE
);

FOR R_SEC_LOC IN
SEC_LOC(I.ORGANIZATION_ID,R_SUB_INV.SECONDARY_INVENTORY,R_SUB_INV.INVENTORY_ITEM_ID
) LOOP
INSERT INTO MTL_SECONDARY_LOCATORS
(
INVENTORY_ITEM_ID,
ORGANIZATION_ID,
SECONDARY_LOCATOR,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN,
SUBINVENTORY_CODE
)
VALUES
( R_SEC_LOC.INVENTORY_ITEM_ID,
R_SEC_LOC.ORGANIZATION_ID,
R_SEC_LOC.SECONDARY_LOCATOR,
R_SEC_LOC.LAST_UPDATE_DATE,
R_SEC_LOC.LAST_UPDATED_BY,
R_SEC_LOC.CREATION_DATE,
R_SEC_LOC.CREATED_BY,
R_SEC_LOC.LAST_UPDATE_LOGIN,
R_SUB_INV.SECONDARY_INVENTORY
);
END LOOP; -- LOCATOR
COMMIT;
END;
ELSE
DBMS_OUTPUT.PUT_LINE('Combination Exist For Item id -'||
R_SUB_INV.INVENTORY_ITEM_ID||'- Org -'||R_SUB_INV.ORGANIZATION_ID||'- SubInv -'||
R_SUB_INV.SECONDARY_INVENTORY);
END IF;

END LOOP; -- SUB INVENTORY


END IF;

END LOOP; -- ORGANIZATION

EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error -'||SQLERRM);
FND_FILE.PUT_LINE( FND_FILE.LOG, 'Error - '||SQLERRM);
END;
/

----------------------------
CREATE OR REPLACE PROCEDURE APPS."PRAN_ITEM_STOCK_STG_PROC_R" as
cursor c1 is

select transaction_interface_id,source_code,source_line_id,
source_header_id,i.inventory_item_id, inventory_item_code , primary_uom_code
,process_flag,validation_required,
transaction_mode,transaction_quantity,o.organization_id, o.organization_code,
primary_quantity,
primary_uom_code transaction_uom ,transaction_date ,subinventory_code,locator_id,
transaction_type_id,transaction_cost,mp.MATERIAL_ACCOUNT MATERIAL_ACCOUNT,
--distribution_account_id,
si.last_update_date,si.last_updated_by,si.creation_date,si.created_by from
pran_item_stock_stg_M si, mtl_system_items_b i, org_organization_definitions o,
mtl_parameters mp
where si.INVENTORY_ITEM_CODE=i.SEGMENT1 and
si.ORGANIZATION_CODE=o.ORGANIZATION_CODE and o.ORGANIZATION_ID=i.ORGANIZATION_ID
and FLAG is not null
and o.ORGANIZATION_ID=mp.ORGANIZATION_ID

c1_rec c1%rowtype;
v_organization_id number(5);
v_inventory_item_id number(10);
v_primary_uom_code varchar2(6);
v_inventory_location_id number(10);
v_subinventory_code varchar2(10);
v_code_combination_id number(10);
v_transaction_type_id number(8);
Begin

for c1_rec in c1 loop


exit when c1%notfound;

begin

-- location
select
inventory_location_id,
subinventory_code
into v_inventory_location_id, v_subinventory_code
from mtl_item_locations
where subinventory_code =c1_rec.subinventory_code;

exception
when no_data_found then

v_organization_id :=null;
v_inventory_item_id :=null;
v_primary_uom_code :=null;
v_inventory_location_id :=null;
v_subinventory_code :=null;

end;

if

v_inventory_location_id is not null


and v_subinventory_code is not null then

update
pran_item_stock_stg_m set flag='Y' where
INVENTORY_ITEM_CODE=c1_rec.INVENTORY_ITEM_CODE
and organization_code =c1_rec.organization_code
and SUBINVENTORY_CODE =c1_rec.SUBINVENTORY_CODE
;

insert into mtl_transactions_interface


(
transaction_interface_id,
source_code,
source_header_id,
source_line_id,
inventory_item_id,
process_flag,
validation_required,
transaction_mode,
transaction_quantity,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
transaction_date,
transaction_type_id,
distribution_account_id,
transaction_uom,
subinventory_code,
locator_id,
TRANSACTION_COST
)
values
(
mtl_material_transactions_s.NEXTVAL,
--c1_rec.source_code,
'Opening Stock Upload',
1,
1,
c1_rec.inventory_item_id,
1,
2,
3,
1*c1_rec.transaction_quantity,
sysdate,
1110,
sysdate,
1110,
c1_rec.organization_id,
--c1_rec.transaction_date,
to_date(sysdate,'dd-mm-yy'),
--
42,
--c1_rec.distribution_account_id,
c1_rec.MATERIAL_ACCOUNT,
--128305,
c1_rec.transaction_uom,
c1_rec.subinventory_code,
--c1_rec.locator_id,
v_inventory_location_id,
null
);
else

update pran_item_stock_stg_m set flag='N' where


inventory_item_code=c1_rec.inventory_item_code
and organization_code =c1_rec.organization_code
and transaction_uom =c1_rec.transaction_uom
and locator_id =c1_rec.locator_id
and subinventory_code =c1_rec.subinventory_code
--and distribution_account_id =c1_rec.MATERIAL_ACCOUNT --distribution_account_id
and transaction_type_id =c1_rec.transaction_type_id;

end if;

end loop;

commit;
End pran_item_stock_stg_proc_R;
/

------------------------------
/* Cursor Declaration ***/
declare
cursor c1 is --select * from XX_ITEM_INTERFACE_STG_DEBUG where SEGMENT1 in
('911461','911462'); --xx_item_interface_stg1;

select a.* from XX_ITEM_INTERFACE_STG_DEBUG a


where -- a.SEGMENT1 in ('911461','911462') and
a.SEGMENT1 not in (select segment1 from mtl_system_items_b i where
organization_id=102 and a.SEGMENT1= i.SEGMENT1 )
and a.SEGMENT1 not in ('0529165010','0532063200') -- and a.SEGMENT1 in
('911465','911466','911467')
;

/* Variable Declaration **/

l_org_id number(3);
l_uom varchar2(15);
l_suom varchar2(15);
l_item_type varchar2(30);
l_desc varchar2(30);
l_temp_id varchar2(3);
l_sale_ac number(16);
l_exp_ac number(16);
l_cost_sale_ac number(16);
l_item_number varchar2(100);
l_flag varchar2(4) default'A';
l_msg varchar2(200);
begin
--delete from MTL_SYSTEM_ITEMS_INTERFACE;
--commit;
l_msg :='OK';

for x1 in c1 loop
/* Validation For Organization */
-- begin
-- select organization_id into l_org_id
-- from ORG_ORGANIZATION_DEFINITIONS
-- where organization_code = x1.organization_code;
-- exception
-- when others then
-- l_flag :='E';
-- l_msg :='Item Interface'||'Organization Id'||l_org_id||' not in
system';
-- fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
-- end;

/* Validation for Item Number */

if x1.SEGMENT1 is null then


l_flag :='E';
l_msg :='Item number should not be NULL';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured--'||l_msg);
end if;
/* Validation for Description */

if x1.DESCRIPTION is null then


l_flag :='E';
l_msg :='Item description should not be NULL';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg|| x1.SEGMENT1);
end if;

/* Validation for Unit Of Measure */

if x1.PRIMARY_UOM_CODE is not null then


begin
select UOM_CODE into l_uom
from mtl_units_of_measure
where UOM_CODE =x1.PRIMARY_UOM_CODE;
exception
when others then
l_flag :='E';
l_msg := x1.SEGMENT1||'---'||l_uom ||'UOM is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;
else
l_msg :='Primary UOM should not be NULL ';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end if;

begin
select COST_OF_SALES_ACCOUNT into l_cost_sale_ac
from MTL_PARAMETERS
where ORGANIZATION_ID = 102;
exception
when no_data_found then
l_flag :='E';
l_msg :='Cost of Sales Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Cost of Sales Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

begin
select SALES_ACCOUNT into l_sale_ac
from MTL_PARAMETERS
where ORGANIZATION_ID = 102;

exception
when no_data_found then
l_flag :='E';
l_msg :='Sales Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Sales Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

begin

select EXPENSE_ACCOUNT into l_exp_ac


from MTL_PARAMETERS
where ORGANIZATION_ID = 102;

exception
when no_data_found then
l_flag :='E';
l_msg :='Expence Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Expence Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

if l_flag!='E' then
insert into MTL_SYSTEM_ITEMS_INTERFACE
( ORGANIZATION_ID,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN,
DESCRIPTION,
SEGMENT1,
PRIMARY_UOM_CODE,
TEMPLATE_ID,
SUMMARY_FLAG,
ENABLED_FLAG,
SALES_ACCOUNT,
COST_OF_SALES_ACCOUNT,
EXPENSE_ACCOUNT,
PROCESS_QUALITY_ENABLED_FLAG,
PROCESS_COSTING_ENABLED_FLAG,
RECIPE_ENABLED_FLAG,
PROCESS_EXECUTION_ENABLED_FLAG,
RESTRICT_SUBINVENTORIES_CODE,
RESTRICT_LOCATORS_CODE ,
LOCATION_CONTROL_CODE ,
SET_PROCESS_ID,
PROCESS_FLAG,
TRANSACTION_TYPE,
LONG_DESCRIPTION

--ATTRIBUTE_CATEGORY
)
values( 102,
sysdate,
fnd_global.USER_ID,
sysdate,
fnd_global.USER_ID,
fnd_global.LOGIN_ID,
x1.DESCRIPTION,
x1.SEGMENT1,
l_uom,
-- l_item_type,
2,
'Y',
'Y',
l_sale_ac,
l_cost_sale_ac,
l_exp_ac,
x1.PROCESS_QUALITY_ENABLED_FLAG,
x1.PROCESS_COSTING_ENABLED_FLAG,
x1.RECIPE_ENABLED_FLAG,
x1.PROCESS_EXECUTION_ENABLED_FLAG,
1,
1,
2,
2,
1,
'CREATE',
x1.LONG_DESC
);
else
update XX_ITEM_INTERFACE_STG_DEBUG set I_STSTAUS=l_msg where SEGMENT1=
x1.SEGMENT1;
end if;
end loop;

commit;
end;
/

---------------------------
select * from cm.T_amim a, cm.t_amsu b, cm.t_amig c
where a.AMIM_AMSU=b.OID and a.AMIM_AMIG=c.OID

select AMIM_TEXT,AMIM_NAME, AMIM_SPCF, AMSU_TEXT,AMSU_NAME,


AMIG_TEXT, AMIG_NAME,AMIG_CODE from cm.T_amim@lscm a, cm.t_amsu@lscm b,
rfl_fg_item_list rc, cm.t_amig
where a.AMIM_AMSU=b.OID and a.AMIM_TEXT=rc.ITEM_CODE and a.AMIM_AMIG=c.OID
and AMIG_TEXT='0001300000'
--------------------------------------

select count(segment1) from mtl_system_items_b

select AMSU_TEXT, count(AMIM_TEXT) --,AMIM_NAME, AMSU_TEXT, 'Y','Y','Y','Y',


AMIM_SPCF
from xxscm_items
where AMSU_TEXT!='PCS'
and AMIM_SPCF is not null
group by AMSU_TEXT

select AMSU_TEXT, count(AMIM_TEXT) from xxscm_items


group by AMSU_TEXT

SET DEFINE OFF;

SET DEFINE OFF;


Insert into XX_ITEM_INTERFACE_STG_DEBUG
(SEGMENT1, DESCRIPTION, PRIMARY_UOM_CODE, PROCESS_QUALITY_ENABLED_FLAG,
PROCESS_COSTING_ENABLED_FLAG,
RECIPE_ENABLED_FLAG, PROCESS_EXECUTION_ENABLED_FLAG)
Values
('0628411200', 'TRANSFORMER I/P 220V AC O/P24VAC, 4AMP', 'PCS', 'Y', 'Y',
'Y', 'Y');

create table xxscm_items as


select AMIM_TEXT,AMIM_NAME, AMIM_SPCF, AMSU_TEXT,AMSU_NAME,
AMIG_TEXT, AMIG_NAME,AMIG_CODE from cm.T_amim@lscm a, cm.t_amsu@lscm b,
rfl_fg_item_list rc, cm.t_amig@lscm c
where a.AMIM_AMSU=b.OID and a.AMIM_TEXT=rc.ITEM_CODE and a.AMIM_AMIG=c.OID
--and AMIG_TEXT='0001300000'
select ITEM_CODE, count(ITEM_CODE) from rfl_fg_item_list rc
group by ITEM_CODE
having count(ITEM_CODE)>1

select * from rfl_fg_item_list rc


-------------------------------------
/* Cursor Declaration ***/
declare
cursor c1 is select * from XX_ITEM_INTERFACE_STG_DEBUG ; --xx_item_interface_stg1;

/* Variable Declaration **/

l_org_id number(3);
l_uom varchar2(15);
l_suom varchar2(15);
l_item_type varchar2(30);
l_desc varchar2(30);
l_temp_id varchar2(3);
l_sale_ac number(16);
l_exp_ac number(16);
l_cost_sale_ac number(16);
l_item_number varchar2(100);
l_flag varchar2(4) default'A';
l_msg varchar2(200);
begin
--delete from MTL_SYSTEM_ITEMS_INTERFACE;
--commit;

for x1 in c1 loop
/* Validation For Organization */
-- begin
-- select organization_id into l_org_id
-- from ORG_ORGANIZATION_DEFINITIONS
-- where organization_code = x1.organization_code;
-- exception
-- when others then
-- l_flag :='E';
-- l_msg :='Item Interface'||'Organization Id'||l_org_id||' not in
system';
-- fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
-- end;

/* Validation for Item Number */

if x1.SEGMENT1 is null then


l_flag :='E';
l_msg :='Item number should not be NULL';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured--'||l_msg);
end if;
/* Validation for Description */

if x1.DESCRIPTION is null then


l_flag :='E';
l_msg :='Item description should not be NULL';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg|| x1.SEGMENT1);
end if;

/* Validation for Unit Of Measure */


if x1.PRIMARY_UOM_CODE is not null then
begin
select UOM_CODE into l_uom
from mtl_units_of_measure
where UOM_CODE =x1.PRIMARY_UOM_CODE;
exception
when others then
l_flag :='E';
l_msg := x1.SEGMENT1||'---'||l_uom ||'UOM is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;
else
l_msg :='Primary UOM should not be NULL ';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end if;

begin
select COST_OF_SALES_ACCOUNT into l_cost_sale_ac
from MTL_PARAMETERS
where ORGANIZATION_ID = 102;
exception
when no_data_found then
l_flag :='E';
l_msg :='Cost of Sales Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Cost of Sales Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

begin
select SALES_ACCOUNT into l_sale_ac
from MTL_PARAMETERS
where ORGANIZATION_ID = 102;

exception
when no_data_found then
l_flag :='E';
l_msg :='Sales Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Sales Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

begin

select EXPENSE_ACCOUNT into l_exp_ac


from MTL_PARAMETERS
where ORGANIZATION_ID = 102;

exception
when no_data_found then
l_flag :='E';
l_msg :='Expence Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Expence Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

if l_flag!='E' then
insert into MTL_SYSTEM_ITEMS_INTERFACE
( ORGANIZATION_ID,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN,
DESCRIPTION,
SEGMENT1,
PRIMARY_UOM_CODE,
TEMPLATE_ID,
SUMMARY_FLAG,
ENABLED_FLAG,
SALES_ACCOUNT,
COST_OF_SALES_ACCOUNT,
EXPENSE_ACCOUNT,
PROCESS_QUALITY_ENABLED_FLAG,
PROCESS_COSTING_ENABLED_FLAG,
RECIPE_ENABLED_FLAG,
PROCESS_EXECUTION_ENABLED_FLAG,
RESTRICT_SUBINVENTORIES_CODE,
RESTRICT_LOCATORS_CODE ,
LOCATION_CONTROL_CODE ,
SET_PROCESS_ID,
PROCESS_FLAG,
TRANSACTION_TYPE)
values( 102,
sysdate,
fnd_global.USER_ID,
sysdate,
fnd_global.USER_ID,
fnd_global.LOGIN_ID,
x1.DESCRIPTION,
x1.SEGMENT1,
l_uom,
-- l_item_type,
2,
'Y',
'Y',
l_sale_ac,
l_cost_sale_ac,
l_exp_ac,
x1.PROCESS_QUALITY_ENABLED_FLAG,
x1.PROCESS_COSTING_ENABLED_FLAG,
x1.RECIPE_ENABLED_FLAG,
x1.PROCESS_EXECUTION_ENABLED_FLAG,
1,
1,
2,
2,
1,
'CREATE'
);
else
update XX_ITEM_INTERFACE_STG_DEBUG set I_STSTAUS=l_msg where SEGMENT1=
x1.SEGMENT1;
end if;
end loop;

commit;
end;
/

select substr(SECONDARY_INVENTORY_NAME,1,3), 'MG6' ||


substr(SECONDARY_INVENTORY_NAME,4,6) from MTL_SECONDARY_INVENTORIES_FK_V where
organization_id=3829

select ot('MG6') from dual

update MTL_SECONDARY_INVENTORIES_FK_V set SECONDARY_INVENTORY_NAME ='PF6' ||


substr(SECONDARY_INVENTORY_NAME,4,6) where organization_id=3952

select * FROM mtl_secondary_inventories a where organization_id=3829

update mtl_secondary_inventories set SECONDARY_INVENTORY_NAME ='PF6' ||


substr(SECONDARY_INVENTORY_NAME,4,6) where organization_id=3952

select * from MTL_ITEM_LOCATIONS where organization_id=3829

update MTL_ITEM_LOCATIONS set SUBINVENTORY_CODE ='MG6.' || substr(SEGMENT1,4,6)


where organization_id=3829

mtl_parameters d,
eng_ecn_approval_lists e,
hr_locations_all h,
mtl_material_statuses_tl m,
mtl_material_statuses_tl n,
cst_cost_groups cg

--------------------------------------
-- select * from rfl_scm_item_list a where a.AMSU_TEXT='PCS' and AMIM_TEXT in
('0538107211','0526558051')

/* Cursor Declaration ***/


declare
cursor c1 is
--select * from XX_ITEM_INTERFACE_STG_DEBUG where SEGMENT1 in ('911461','911462');
--xx_item_interface_stg1;
select a.* from XX_ITEM_INTERFACE_STG_DEBUG a
where -- a.SEGMENT1 in ('911461','911462') and
a.SEGMENT1 not in (select segment1 from mtl_system_items_b i where
organization_id=102 and a.SEGMENT1= i.SEGMENT1 ) -- and a.SEGMENT1 in
('911465','911466','911467')
;

--select ATTRIBUTE1, I.* from mtl_system_items_b i where organization_id=102 and


i.SEGMENT1 in ('32144')

/* Variable Declaration **/

l_org_id number(3);
l_uom varchar2(15);
l_suom varchar2(15);
l_item_type varchar2(60);
l_desc varchar2(60);
l_temp_id varchar2(3);
l_sale_ac number(16);
l_exp_ac number(16);
l_cost_sale_ac number(16);
l_item_number varchar2(100);
l_flag varchar2(4) default'A';
l_msg varchar2(200);
begin
--delete from MTL_SYSTEM_ITEMS_INTERFACE;
--commit;

for x1 in c1 loop
/* Validation For Organization */
-- begin
-- select organization_id into l_org_id
-- from ORG_ORGANIZATION_DEFINITIONS
-- where organization_code = x1.organization_code;
-- exception
-- when others then
-- l_flag :='E';
-- l_msg :='Item Interface'||'Organization Id'||l_org_id||' not in
system';
-- fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
-- end;

/* Validation for Item Number */

if x1.SEGMENT1 is null then


l_flag :='E';
l_msg :='Item number should not be NULL';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured--'||l_msg);
end if;
/* Validation for Description */

if x1.DESCRIPTION is null then


l_flag :='E';
l_msg :='Item description should not be NULL';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg|| x1.SEGMENT1);
end if;

/* Validation for Unit Of Measure */

if x1.PRIMARY_UOM_CODE is not null then


begin
select UOM_CODE into l_uom
from mtl_units_of_measure
where UOM_CODE =x1.PRIMARY_UOM_CODE;
exception
when others then
l_flag :='E';
l_msg := x1.SEGMENT1||'---'||l_uom ||'UOM is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;
else
l_msg :='Primary UOM should not be NULL ';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end if;

begin
select COST_OF_SALES_ACCOUNT into l_cost_sale_ac
from MTL_PARAMETERS
where ORGANIZATION_ID = 102;
exception
when no_data_found then
l_flag :='E';
l_msg :='Cost of Sales Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Cost of Sales Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

begin
select SALES_ACCOUNT into l_sale_ac
from MTL_PARAMETERS
where ORGANIZATION_ID = 102;

exception
when no_data_found then
l_flag :='E';
l_msg :='Sales Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Sales Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

begin

select EXPENSE_ACCOUNT into l_exp_ac


from MTL_PARAMETERS
where ORGANIZATION_ID = 102;

exception
when no_data_found then
l_flag :='E';
l_msg :='Expence Account should not be Null';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
when others then
l_flag :='E';
l_msg :='Expence Account is not Valid';
fnd_file.PUT_LINE(fnd_file.log,'Error Occured'||l_msg);
end;

if l_flag!='E' then
insert into MTL_SYSTEM_ITEMS_INTERFACE
( ORGANIZATION_ID,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_LOGIN,
DESCRIPTION,
SEGMENT1,
PRIMARY_UOM_CODE,
TEMPLATE_ID,
SUMMARY_FLAG,
ENABLED_FLAG,
SALES_ACCOUNT,
COST_OF_SALES_ACCOUNT,
EXPENSE_ACCOUNT,
PROCESS_QUALITY_ENABLED_FLAG,
PROCESS_COSTING_ENABLED_FLAG,
RECIPE_ENABLED_FLAG,
PROCESS_EXECUTION_ENABLED_FLAG,
RESTRICT_SUBINVENTORIES_CODE,
RESTRICT_LOCATORS_CODE ,
LOCATION_CONTROL_CODE ,
SET_PROCESS_ID,
PROCESS_FLAG,
TRANSACTION_TYPE,
ATTRIBUTE1, -- ou
ATTRIBUTE25, -- TF
ATTRIBUTE26, -- unload
ATTRIBUTE27, -- load
ATTRIBUTE28, -- DP
ATTRIBUTE29, -- TP
ATTRIBUTE30 -- MRP
)
values( 102,
sysdate,
fnd_global.USER_ID,
sysdate,
fnd_global.USER_ID,
fnd_global.LOGIN_ID,
x1.DESCRIPTION,
x1.SEGMENT1,
l_uom,
-- l_item_type,
-- 1, -- 1 for FG item, 2 for Purchase
1,
'Y',
'Y',
l_sale_ac,
l_cost_sale_ac,
l_exp_ac,
x1.PROCESS_QUALITY_ENABLED_FLAG,
x1.PROCESS_COSTING_ENABLED_FLAG,
x1.RECIPE_ENABLED_FLAG,
x1.PROCESS_EXECUTION_ENABLED_FLAG,
1,
1,
2,
2,
1,
'CREATE',
x1.ATTRIBUTE1,
x1.ATTRIBUTE25, -- TF
x1.ATTRIBUTE29, -- unload
x1.ATTRIBUTE30, -- load
x1.ATTRIBUTE27, -- DP
x1.ATTRIBUTE28, -- TP
x1.ATTRIBUTE26 -- MRP
);

-- MTL_INTERFACE_ERRORS

-- update XX_ITEM_INTERFACE_STG_DEBUG set I_STATUSES='OK' where


SEGMENT1= x1.SEGMENT1;
-- commit;
else
update XX_ITEM_INTERFACE_STG_DEBUG set I_STATUSES=l_msg where
SEGMENT1= x1.SEGMENT1;
commit;
end if;
end loop;

commit;
end;
/

--------------------------------

select * from t_icat a, mtl_system_items_b si, mtl_system_items_b itm


where a.ITEM_CODE=si.SEGMENT1 and si.ORGANIZATION_ID=102 and si.

select t.TRANSACTION_TYPE_ID, t.TRANSACTION_TYPE_NAME, --count(INVENTORY_ITEM_ID)


sum(TRANSACTION_VALUE) TRANSACTION_VALUE,PERIOD_NAME from xxxx_summary_stock a,
mtl_transaction_types t
where a.TRANSACTION_TYPE_ID=t.TRANSACTION_TYPE_ID
group by t.TRANSACTION_TYPE_ID, t.TRANSACTION_TYPE_NAME,PERIOD_NAME

create table xxxx_summary_stock as

insert into xxxx_summary_stock


select OPERATING_UNIT,ORGANIZATION_ID,
INVENTORY_ITEM_ID,sum(nvl(TRANSACTION_QUANTITY,0))
TRANSACTION_QUANTITY,TRANSACTION_UOM,TRANSACTION_TYPE_ID,
sum(nvl(TRANSACTION_VALUE,0)) TRANSACTION_VALUE
,'Jul-20-21' period_name from xxxx where TRANSACTION_DATE>=to_date('01-07-
2020','dd-mm-yyyy')
group by OPERATING_UNIT,ORGANIZATION_ID,
INVENTORY_ITEM_ID,TRANSACTION_UOM,TRANSACTION_TYPE_ID

delete from xxxx where TRANSACTION_DATE>=to_date('01-07-2020','dd-mm-yyyy')

create table xxxx as


SELECT *
FROM gmf_xla_extract_headers a
WHERE legal_entity_id = 23275
AND ledger_id = 2021
AND entity_code = 'INVENTORY'

, mtl_transaction_types tp
WHERE legal_entity_id = 23275
AND ledger_id = 2021
AND entity_code = 'INVENTORY'
AND reference_no IN (579, 580)
AND TO_DATE (transaction_date, 'dd-mm-yy') >=
TO_DATE ('01/11/20', 'dd-mm-yy')
AND a.transaction_type_id = tp.transaction_type_id
AND a.transaction_action_id = tp.transaction_action_id
AND valuation_cost_type_id = 1000
AND valuation_cost_type = 'PFL PMAC'
AND currency_code = 'BDT'

create table t6 as
--create view p_item_cogs_v as
select --b.ae_header_id ,
c.segment1 ou, to_char(e.TRANSACTION_DATE, 'YYYYMM') period_SLNO,
ah.PERIOD_NAME, i.INVENTORY_ITEM_ID,i.segment1 item, i.description itemname,
b.accounted_dr, b.accounted_cr, b.code_combination_id, u1.NAME rcvou , ah.entity_id
,d.source_id_int_1
, f.organization_name rcvorgnm, f.organization_code rcvdorg from xla_ae_lines b,
gl_code_combinations c, hr_operating_units u1, xla_ae_headers ah,
xla.xla_transaction_entities d, mtl_material_transactions e
, mtl_system_items_b i, org_organization_definitions f--
,--,MTL_ITEM_CATEGORIES_V ct,
-- org_acct_periods pd
where b.application_id=555 and b.ledger_id=2021 and
to_date(b.accounting_date,'dd/mm/yy') between to_date('01/10/20','dd/mm/yy') and
to_date('31/10/20','dd/mm/yy')
AND b.code_combination_id =c.code_combination_id
AND c.segment6 = '124818'
AND b.ae_header_id in (
select a.ae_header_id from xla_ae_headers a--, gl_code_combinations c
where a.application_id=555 and a.ledger_id=2021 and a.PERIOD_NAME='Oct-20-21'
)
and c.segment1=u1.SHORT_CODE
and b.ae_header_id=ah.ae_header_id and ah.application_id=555 and
ah.ledger_id=2021 and ah.PERIOD_NAME='Oct-20-21'
and ah.entity_id = d.entity_id
and ah.application_id = d.application_id
and d.source_id_int_1 = e.transaction_id
and e.inventory_item_id = i.inventory_item_id
and e.organization_id = i.organization_id
and e.organization_id = f.organization_id

SELECT ou, item, itemname, SUM (NVL (accounted_dr, 0)) accounted_dr,


SUM (NVL (accounted_cr, 0)) accounted_cr,
(SUM (NVL (accounted_dr, 0)) - SUM (NVL (accounted_cr, 0))) total, 'Jan-
19-20' PERIOD_NAME
FROM t GROUP BY ou, item, itemname

SELECT
g.ATTRIBUTE1 ou, f.attribute3 trn_ou, organization_code, category_id, 'Stock'
stocktype,
0 stock_amount, ROUND (SUM (nvl(sales_amount,0)),2) sales_amount,
0 cogs_amount, 0 rcv_amount, 0 issue_amount from item_sales_tl s

delete from item_sales_tl

create table item_sales_tl as

insert into item_sales_tl


select * from item_sales_v a

--drop table item_sales_tl

create or replace view item_sales_v as


select TO_CHAR(P.START_DATE,'YYYYMM') PERIOD_SLNO, g.ATTRIBUTE1 ou, g.segment1
item, g.description item_name,'Stock' stocktype, h.CATEGORY_ID,
g.ORGANIZATION_ID, j.ORGANIZATION_CODE, f.attribute3 trn_ou,
--f.interface_line_attribute2 order_type,
SUM (NVL (f.quantity_invoiced, 0)) qty,
SUM (NVL (f.quantity_invoiced, 0) * NVL (f.unit_selling_price, 0) *
nvl(e.EXCHANGE_RATE,1)
) SALES_AMOUNT,
SUM (NVL (f.quantity_credited, 0)) crqty,
SUM (NVL (f.quantity_credited, 0) * NVL (f.unit_selling_price, 0) *
nvl(e.EXCHANGE_RATE,1)
) crvalue
FROM xla_ae_headers b,gl_period_statuses p,
xla.xla_transaction_entities d, xxorg_organization_definitions j,
ra_customer_trx_all e,
ra_customer_trx_lines_all f,
mtl_system_items_b g, mtl_item_categories h
WHERE b.application_id = 222
--AND b.period_name = 'Nov-20-21'
and b.PERIOD_NAME=P.PERIOD_NAME AND P.APPLICATION_ID=101 and
add_months(sysdate, -3) between p.START_DATE and p.END_DATE
AND b.entity_id = d.entity_id
AND b.application_id = d.application_id
AND d.entity_code = 'TRANSACTIONS'
AND d.source_id_int_1 = e.customer_trx_id
AND e.customer_trx_id = f.customer_trx_id
-- AND f.attribute3 = '111'
--AND f.interface_line_attribute2 = 'PFL Export Order'
AND f.inventory_item_id = g.inventory_item_id
AND g.organization_id = 102 and g.ORGANIZATION_ID=h.ORGANIZATION_ID and
g.INVENTORY_ITEM_ID=h.INVENTORY_ITEM_ID and h.CATEGORY_SET_ID=1
and g.ORGANIZATION_ID=j.ORGANIZATION_ID
GROUP BY TO_CHAR(P.START_DATE,'YYYYMM') , g.segment1, g.ORGANIZATION_ID,
j.ORGANIZATION_CODE,
g.description, h.CATEGORY_ID,
f.attribute3,
g.ATTRIBUTE1

order by f.attribute3,g.segment1,f.interface_line_attribute2,g.ATTRIBUTE1

select * from item_cogs_v

SALES_AMOUNT

/* Formatted on 2020/12/13 10:46 (Formatter Plus v4.8.8) */


SELECT b.organization_id, b.subinventory_code,
b.inventory_item_id, SUM (b.opq) opq, SUM (b.req) req,
SUM (b.isq) isq, SUM (b.primary_quantity) clq,
SUM (b.primary_quantity * b.actual_cost) t_value,
SUM (b.op_rate) op_rate,
SUM (b.primary_quantity) + SUM (b.trnq2) trnq2
FROM (SELECT a.organization_id, a.acct_period_id, a.subinventory_code,
a.inventory_item_id, 0 opq,
(CASE
WHEN a.transaction_type_id IN
(2, 15, 18, 42, 44, 52, 53, 61, 1002, 100002)
AND primary_quantity > 0
THEN primary_quantity
WHEN a.transaction_type_id IN (17, 71, 1003)
AND primary_quantity < 0
THEN primary_quantity
ELSE 0
END
) req,
(CASE
WHEN a.transaction_type_id IN
(2, 32, 33, 35, 52, 53, 62, 63, 145)
AND primary_quantity < 0
THEN primary_quantity
WHEN a.transaction_type_id IN (43)
AND primary_quantity > 0
THEN primary_quantity
ELSE 0
END
) isq,
a.primary_quantity, NVL (a.actual_cost, 0) actual_cost,
0 op_rate,
DECODE (SUBSTR (UPPER (a.subinventory_code), 5, 5),
'STAGE', 0,
1
) trnq2
FROM mtl_material_transactions a,
xxorg_organization_definitions org,
hr_operating_units unt,
org_acct_periods p
WHERE a.organization_id = org.organization_id
AND org.operating_unit = unt.organization_id
AND unt.short_code = :ou
AND a.organization_id = NVL (:p_inv_org, a.organization_id)
AND a.organization_id = p.organization_id
AND a.acct_period_id = p.acct_period_id
AND p.period_name = :periodname
--AND A.ACCT_PERIOD_ID = NVL(:P_INV_PERIOD,A.ACCT_PERIOD_ID)
AND a.subinventory_code = NVL (:p_sub_inv, a.subinventory_code)
AND a.inventory_item_id = NVL (:p_item_id, a.inventory_item_id)
UNION ALL
SELECT a.organization_id, a.acct_period_id, a.subinventory_code,
a.inventory_item_id, a.opening_qty opq, 0 req, 0 isq,
a.opening_qty primary_quantity, a.opening_rate actual_cost,
a.opening_rate op_rate, 1 trnq2
FROM xprg_inv_item_ledger a,
xxorg_organization_definitions org,
hr_operating_units unt,
org_acct_periods p
WHERE a.organization_id = org.organization_id
AND org.operating_unit = unt.organization_id
AND unt.short_code = :ou
AND a.organization_id = p.organization_id
AND a.acct_period_id = p.acct_period_id
AND p.period_name = :periodname
AND a.organization_id = NVL (:p_inv_org, a.organization_id)
-- AND A.ACCT_PERIOD_ID = NVL(:P_INV_PERIOD,A.ACCT_PERIOD_ID)
AND a.subinventory_code = NVL (:p_sub_inv, a.subinventory_code)
AND a.inventory_item_id = NVL (:p_item_id, a.inventory_item_id)
/*
SELECT A.ORGANIZATION_ID, TO_NUMBER(:P_INV_PERIOD) ACCT_PERIOD_ID,
A.SUBINVENTORY_CODE, A.INVENTORY_ITEM_ID,
SUM(NVL(A.PRIMARY_QUANTITY,0)) OPQ, 0 REQ, 0 ISQ, 0 PRIMARY_QUANTITY, 0 T_VALUE
FROM MTL_MATERIAL_TRANSACTIONS A
WHERE TRUNC(A.TRANSACTION_DATE) >= '30-Apr-2015'
AND TRUNC(A.TRANSACTION_DATE) <= '30-Jun-2016'
AND A.TRANSACTION_TYPE_ID NOT IN (65,80,98,99)
AND A.SUBINVENTORY_CODE IS NOT NULL
AND A.ORGANIZATION_ID = :P_INV_ORG
AND A.SUBINVENTORY_CODE = NVL(:P_SUB_INV,A.SUBINVENTORY_CODE)
AND A.INVENTORY_ITEM_ID = NVL(:P_ITEM_ID, A.INVENTORY_ITEM_ID)
GROUP BY A.ORGANIZATION_ID, A.SUBINVENTORY_CODE, A.INVENTORY_ITEM_ID
HAVING SUM(NVL(A.PRIMARY_QUANTITY,0))>0*/
) b
GROUP BY b.organization_id,
b.subinventory_code,
b.inventory_item_id
--HAVING SUM(B.OPQ) + SUM(B.PRIMARY_QUANTITY) > 0

HAVING SUM (b.trnq2) > 0

You might also like