[Home] [Help]
PACKAGE BODY: APPS.IGI_IAC_SALVAGE_PKG
Source
1 Package Body IGI_IAC_SALVAGE_PKG AS
2 -- $Header: igiiascb.pls 120.3.12010000.2 2010/06/24 17:38:40 schakkin ship $
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 PROCEDURE do_round ( p_amount in out NOCOPY number, p_book_type_code in varchar2) is
17 l_path varchar2(150) := g_path||'do_round(p_amount,p_book_type_code)';
18 l_amount number := p_amount;
19 l_amount_old number := p_amount;
20 --l_path varchar2(150) := g_path||'do_round';
21 begin
22 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'--- Inside Round() ---');
23 IF IGI_IAC_COMMON_UTILS.Iac_Round(X_Amount => l_amount, X_Book => p_book_type_code)
24 THEN
25 p_amount := l_amount;
26 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'IGI_IAC_COMMON_UTILS.Iac_Round is TRUE');
27 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'p_amount = '||p_amount);
28 ELSE
29 p_amount := round( l_amount, 2);
30 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'IGI_IAC_COMMON_UTILS.Iac_Round is FALSE');
31 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'p_amount = '||p_amount);
32 END IF;
33 exception when others then
34 p_amount := l_amount_old;
35 igi_iac_debug_pkg.debug_unexpected_msg(l_path);
36 Raise;
37 END;
38
39 FUNCTION Correction
40 (P_asset_id IN igi_iac_asset_balances.asset_id%TYPE,
41 P_book_type_code IN igi_iac_asset_balances.book_type_code%TYPE,
42 P_value IN OUT NOCOPY Number,
43 P_cost IN Fa_books.cost%TYPE,
44 P_salvage_value IN fa_books.salvage_value%TYPE,
45 p_calling_program VARCHAR2)
46 RETURN Boolean IS
47
48 -- to get latest cost and salvage value for an asset
49 CURSOR C_get_asset_info IS
50 SELECT cost, salvage_value
51 FROM FA_BOOKS
52 WHERE Asset_id=P_Asset_id
53 AND book_type_Code =p_book_type_code
54 AND transaction_header_id_out IS NULL;
55
56 l_cost fa_books.cost%TYPE;
57 l_salvage_value fa_books.salvage_value%TYPE;
58 err_asset_info EXCEPTION;
59 l_path_name VARCHAR2(150) := g_path||'correction';
60
61 BEGIN
62 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
63 p_full_path => l_path_name,
64 p_string => 'Parameter values Asset ID..'||p_asset_id );
65 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
66 p_full_path => l_path_name,
67 p_string => 'Parameter values Book Type Code..'||P_book_type_code);
68 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
69 p_full_path => l_path_name,
70 p_string => 'Parameter values Cost'||P_cost);
71 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
72 p_full_path => l_path_name,
73 p_string => 'Parameter values salavge Value'||P_salvage_value);
74 igi_iac_debug_pkg.debug_other_string(p_level => g_state_level,
75 p_full_path => l_path_name,
76 p_string => 'Parameter values Value to be corrected'||P_value);
77
78 IF P_salvage_value = 0 THEN
79 RETURN TRUE;
80 ELSIF P_Salvage_Value IS NULL THEN
81 -- Get the latest cost and salvage value
82 OPEN c_get_asset_info;
83 FETCH c_get_asset_info INTO l_cost,l_salvage_value;
84 IF c_get_asset_info%NOTFOUND THEN
85 CLOSE c_get_asset_info;
86 RAISE err_asset_info;
87 END IF;
88 CLOSE c_get_asset_info;
89
90 P_value := p_value + (P_value/(l_cost-l_Salvage_value))*l_salvage_value;
91 do_round(p_value,P_book_type_code);
92
93 RETURN TRUE;
94
95 END IF;
96
97
98 P_value := p_value + (P_value/(P_cost- P_Salvage_value))*P_salvage_value;
99 do_round(p_value,P_book_type_code);
100
101 RETURN TRUE;
102
103 EXCEPTION
104 WHEN err_asset_info THEN
105 FND_MESSAGE.SET_NAME('IGI', 'IGI_IAC_EXCEPTION');
106 FND_MESSAGE.SET_TOKEN('PACKAGE','igi_iac_salvage_pkg');
107 FND_MESSAGE.SET_TOKEN('ERROR_MESSAGE','Error in fetching latest cost and salvage value for the asset', TRUE);
108 igi_iac_debug_pkg.debug_other_msg(p_level => g_error_level,
109 p_full_path => l_path_name,
110 p_remove_from_stack => FALSE);
111 fnd_file.put_line(fnd_file.log, fnd_message.get);
112 RETURN FALSE;
113 WHEN others THEN
114 igi_iac_debug_pkg.debug_unexpected_msg(p_full_path => l_path_name);
115 RETURN FALSE;
116
117 END correction;
118
119 END igi_iac_salvage_pkg;
120
121