1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
DECLARE
TYPE Vchar80TabType is table of varchar2(80) index by binary_integer;
TYPE NumTabType is table of number index by binary_integer;
TYPE DateTabType is table of date index by binary_integer;
MAX_BUFFER_SIZE number := 1000;
l_instance_id_tab NumTabType;
l_item_id_tab NumTabType;
l_organization_id_tab NumTabType;
l_owner_party_id_tab NumTabType;
l_serial_number_tab VChar80TabType;
l_location_type_tab VChar80TabType;
l_capitalization_status_tab NumTabType;
l_instance_end_date_tab DateTabType;
CURSOR inst_cur IS
SELECT instance_id ,
inventory_item_id,
last_vld_organization_id,
owner_party_id,
serial_number,
location_type_code,
active_end_date
FROM csi_item_instances
WHERE capitalization_status is null;
l_internal_party_id number;
l_serial_code number;
l_asset_creation_code varchar2(1);
CURSOR pending_txn_cur(p_instance_id IN number) IS
SELECT ct.transaction_id
FROM csi_transactions ct,
csi_item_instances_h ciih
WHERE ciih.instance_id = p_instance_id
AND ct.transaction_id = ciih.transaction_id
AND ct.transaction_status_code = 'PENDING';
BEGIN
SELECT internal_party_id
INTO l_internal_party_id
FROM csi_install_parameters;
OPEN inst_cur;
LOOP
FETCH inst_cur BULK COLLECT
INTO l_instance_id_tab,
l_item_id_tab,
l_organization_id_tab,
l_owner_party_id_tab,
l_serial_number_tab,
l_location_type_tab,
l_instance_end_date_tab
LIMIT MAX_BUFFER_SIZE;
FOR ind IN 1 .. l_instance_id_tab.COUNT
LOOP
l_capitalization_status_tab(ind) := null;
IF l_owner_party_id_tab(ind) <> l_internal_party_id OR l_instance_end_date_tab(ind) is not null THEN
l_capitalization_status_tab(ind) := 0;
ELSE |
Partager