|
|

楼主 |
发表于 2006/7/6 14:12:51
|
显示全部楼层
create or replace procedure cux_svabom( p_inventory_item_id number,
P_organization_id number) is
v_assembly_item mtl_system_items.segment1%type;
v_assembly_item_id mtl_system_items.inventory_item_id%type;
v_componet_item mtl_system_items.segment1%type;
v_componet_item_id mtl_system_items.inventory_item_id%type;
v_organization_id mtl_system_items.organization_id%type;
v_componet_qty bom_inventory_components.component_quantity%type;
v_sequence number:=0;
cursor cux_sva_bom is
SELECT
distinct
msia.segment1 assembly_item,
msia.inventory_item_id assembly_item_id,
msid.segment1 component_item ,
bic.component_item_id,
msia.organization_id,
bic.component_quantity
FROM mtl_system_items msia,
bom_bill_of_materials bbom,--
bom_inventory_components bic,--
mtl_system_items msid
WHERE msia.inventory_item_id=bbom.assembly_item_id
AND bbom.organization_id=msia.organization_id
AND bbom.bill_sequence_id=bic.bill_sequence_id
AND bic.component_item_id=msid.inventory_item_id
AND msia.organization_id=msid.organization_id
AND bic.implementation_date is not null
AND nvl(bic.disable_date,sysdate)>=sysdate
AND msia.organization_id=P_organization_id
AND msia.inventory_item_id=p_inventory_item_id;
begin
v_sequence:=v_sequence+1;
for c_bom in cux_sva_bom Loop
v_assembly_item:=c_bom.assembly_item;
v_assembly_item_id:=c_bom.assembly_item_id;
v_componet_item:=c_bom.component_item;
v_componet_item_id:=c_bom.component_item_id;
v_organization_id:=c_bom.organization_id;
v_componet_qty:=c_bom.component_quantity;
cux_svabom( v_componet_item_id , v_organization_id );
insert into cux_bom_temp3
values(v_assembly_item,v_assembly_item_id,v_componet_item,v_componet_item_id,
v_organization_id,v_componet_qty,v_sequence);
end loop;
/*
OPEN cux_sva_bom;
Loop
FETCH cux_sva_bom into v_assembly_item,v_assembly_item_id,
v_componet_item,v_componet_item_id,v_organization_id,v_componet_qty;
-- DBMS_OUTPUT.PUT_LINE(v_assembly_item||v_componet_item);
EXIT when cux_sva_bom%NOTFOUND;
insert into cux_bom_temp3
values(v_assembly_item,v_assembly_item_id,v_componet_item,v_componet_item_id,
v_organization_id,v_componet_qty,v_sequence);
cux_svabom(v_componet_item_id,v_organization_id);
end loop;
close cux_sva_bom;*/
end cux_svabom; |
|