[Home] [Help]
PACKAGE BODY: APPS.IGI_IAC_SALVAGE_PKG
Source
1 Package Body IGI_IAC_SALVAGE_PKG AS
2 -- $Header: igiiascb.pls 120.3.12000000.1 2007/08/01 16:19:03 npandya noship $
3
4 --===========================FND_LOG.START=====================================
5
6 g_state_level NUMBER := FND_LOG.LEVEL_STATEMENT;
7 g_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
8 g_event_level NUMBER := FND_LOG.LEVEL_EVENT;
9 g_excep_level NUMBER := FND_LOG.LEVEL_EXCEPTION;
10 g_error_level NUMBER := FND_LOG.LEVEL_ERROR;
11 g_unexp_level NUMBER := FND_LOG.LEVEL_UNEXPECTED;
12 g_path VARCHAR2(100) := 'IGI.PLSQL.igiiascb.igi_iac_salvage_pkg.';
13
14 --===========================FND_LOG.END=====================================
15
16 FUNCTION Correction
17 (P_asset_id IN igi_iac_asset_balances.asset_id%TYPE,
18 P_book_type_code IN igi_iac_asset_balances.book_type_code%TYPE,
19 P_value IN OUT NOCOPY Number,
20 P_cost IN Fa_books.cost%TYPE,
21 P_salvage_value IN fa_books.salvage_value%TYPE,
22 p_calling_program VARCHAR2)
23 RETURN Boolean IS
24
25 -- to get latest cost and salvage value for an asset
26 CURSOR C_get_asset_info IS
27 SELECT cost, salvage_value
28 FROM FA_BOOKS
29 WHERE Asset_id=P_Asset_id
30 AND book_type_Code =p_book_type_code
31 AND transaction_header_id_out IS NULL;
32
33 l_cost fa_books.cost%TYPE;
34 l_salvage_value fa_books.salvage_value%TYPE;
35 err_asset_info EXCEPTION;
36 l_path_name VARCHAR2(150) := g_path||'correction';
37
38 BEGIN
39 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
40 p_full_path => l_path_name,
41 p_string => 'Parameter values Asset ID..'||p_asset_id );
42 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
43 p_full_path => l_path_name,
44 p_string => 'Parameter values Book Type Code..'||P_book_type_code);
45 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
46 p_full_path => l_path_name,
47 p_string => 'Parameter values Cost'||P_cost);
48 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
49 p_full_path => l_path_name,
50 p_string => 'Parameter values salavge Value'||P_salvage_value);
51 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
52 p_full_path => l_path_name,
53 p_string => 'Parameter values Value to be corrected'||P_value);
54
55 IF P_salvage_value = 0 THEN
56 RETURN TRUE;
57 ELSIF P_Salvage_Value IS NULL THEN
58 -- Get the latest cost and salvage value
59 OPEN c_get_asset_info;
60 FETCH c_get_asset_info INTO l_cost,l_salvage_value;
61 IF c_get_asset_info%NOTFOUND THEN
62 CLOSE c_get_asset_info;
63 RAISE err_asset_info;
64 END IF;
65 CLOSE c_get_asset_info;
66
67 P_value := p_value + (P_value/(l_cost-l_Salvage_value))*l_salvage_value;
68
69 RETURN TRUE;
70
71 END IF;
72
73
74 P_value := p_value + (P_value/(P_cost- P_Salvage_value))*P_salvage_value;
75
76 RETURN TRUE;
77
78 EXCEPTION
79 WHEN err_asset_info THEN
80 FND_MESSAGE.SET_NAME('IGI', 'IGI_IAC_EXCEPTION');
81 FND_MESSAGE.SET_TOKEN('PACKAGE','igi_iac_salvage_pkg');
82 FND_MESSAGE.SET_TOKEN('ERROR_MESSAGE','Error in fetching latest cost and salvage value for the asset', TRUE);
83 igi_iac_debug_pkg.debug_other_msg(p_level => g_error_level,
84 p_full_path => l_path_name,
85 p_remove_from_stack => FALSE);
86 fnd_file.put_line(fnd_file.log, fnd_message.get);
87 RETURN FALSE;
88 WHEN others THEN
89 igi_iac_debug_pkg.debug_unexpected_msg(p_full_path => l_path_name);
90 RETURN FALSE;
91
92 END correction;
93
94 END igi_iac_salvage_pkg;
95
96