[Home] [Help]
PACKAGE BODY: APPS.CSE_ASSET_ADJUST_PKG
Source
1 PACKAGE BODY CSE_ASSET_ADJUST_PKG AS
2 -- $Header: CSEFADJB.pls 120.1 2005/06/13 11:28:25 appldev $
3
4 PROCEDURE process_adjustment_trans(
5 x_return_code OUT NOCOPY VARCHAR2
6 ,x_err_buffer OUT NOCOPY VARCHAR2
7 ,p_inv_org_id IN NUMBER
8 ,p_inventory_item_id IN NUMBER
9 , p_conc_request_id IN NUMBER )
10 IS
11 BEGIN
12 NULL ;
13 END process_adjustment_trans ;
14
15
16 PROCEDURE retire_asset (
17 p_ret_asset_rec IN cse_datastructures_pub.asset_query_rec
18 ,p_ret_dist_tbl IN cse_datastructures_pub.distribution_tbl
19 ,p_transaction_id IN NUMBER
20 ,x_return_status OUT NOCOPY VARCHAR2
21 ,x_error_msg OUT NOCOPY VARCHAR2)
22 IS
23
24 BEGIN
25 NULL ;
26 END retire_asset ;
27
28
29
30 PROCEDURE insert_retirement (
31 p_ext_ret_rec IN OUT NOCOPY fa_mass_ext_retirements%ROWTYPE
32 , x_return_status OUT NOCOPY VARCHAR2
33 , x_error_msg OUT NOCOPY VARCHAR2)
34 IS
35 l_api_name VARCHAR2(100) := 'CSE_ASSET_ADJUST_PKG.insert_retirement' ;
36
37 BEGIN
38 cse_util_pkg.write_log('Begin --Insert Retirements ');
39 INSERT INTO fa_mass_ext_retirements (
40 BATCH_NAME ,
41 MASS_EXTERNAL_RETIRE_ID ,
42 RETIREMENT_ID ,
43 BOOK_TYPE_CODE ,
44 REVIEW_STATUS ,
45 ASSET_ID ,
46 DISTRIBUTION_ID ,
47 TRANSACTION_NAME ,
48 DATE_RETIRED ,
49 DATE_EFFECTIVE ,
50 COST_RETIRED ,
51 RETIREMENT_PRORATE_CONVENTION ,
52 UNITS ,
53 PERCENTAGE ,
54 COST_OF_REMOVAL ,
55 PROCEEDS_OF_SALE ,
56 RETIREMENT_TYPE_CODE ,
57 REFERENCE_NUM ,
58 SOLD_TO ,
59 TRADE_IN_ASSET_ID ,
60 CALC_GAIN_LOSS_FLAG,
61 STL_METHOD_CODE ,
62 STL_LIFE_IN_MONTHS ,
63 STL_DEPRN_AMOUNT ,
64 CREATED_BY ,
65 CREATION_DATE ,
66 LAST_UPDATED_BY ,
67 LAST_UPDATE_DATE ,
68 LAST_UPDATE_LOGIN )
69 VALUES
70 (p_ext_ret_rec.BATCH_NAME ,
71 p_ext_ret_rec.MASS_EXTERNAL_RETIRE_ID ,
72 p_ext_ret_rec.RETIREMENT_ID ,
73 p_ext_ret_rec.BOOK_TYPE_CODE ,
74 p_ext_ret_rec.REVIEW_STATUS ,
75 p_ext_ret_rec.ASSET_ID ,
76 p_ext_ret_rec.DISTRIBUTION_ID ,
77 p_ext_ret_rec.TRANSACTION_NAME ,
78 p_ext_ret_rec.DATE_RETIRED ,
79 p_ext_ret_rec.DATE_EFFECTIVE ,
80 p_ext_ret_rec.COST_RETIRED ,
81 p_ext_ret_rec.RETIREMENT_PRORATE_CONVENTION ,
82 p_ext_ret_rec.UNITS ,
83 p_ext_ret_rec.PERCENTAGE ,
84 p_ext_ret_rec.COST_OF_REMOVAL ,
85 p_ext_ret_rec.PROCEEDS_OF_SALE ,
86 p_ext_ret_rec.RETIREMENT_TYPE_CODE ,
87 p_ext_ret_rec.REFERENCE_NUM ,
88 p_ext_ret_rec.SOLD_TO ,
89 p_ext_ret_rec.TRADE_IN_ASSET_ID ,
90 p_ext_ret_rec.CALC_GAIN_LOSS_FLAG,
91 p_ext_ret_rec.STL_METHOD_CODE ,
92 p_ext_ret_rec.STL_LIFE_IN_MONTHS ,
93 p_ext_ret_rec.STL_DEPRN_AMOUNT ,
94 p_ext_ret_rec.CREATED_BY ,
95 p_ext_ret_rec.CREATION_DATE ,
96 p_ext_ret_rec.LAST_UPDATED_BY ,
97 p_ext_ret_rec.LAST_UPDATE_DATE ,
98 p_ext_ret_rec.LAST_UPDATE_LOGIN ) ;
99
100 EXCEPTION
101 WHEN OTHERS
102 THEN
103 x_return_status := fnd_api.G_RET_STS_ERROR ;
104 fnd_message.set_name('CSE','CSE_UNEXP_SQL_ERROR');
105 fnd_message.set_token('API_NAME',l_api_name);
106 fnd_message.set_token('SQL_ERROR',SQLERRM);
107 x_error_msg := fnd_message.get;
108
109 END insert_retirement ;
110
111
112
113 PROCEDURE create_inv_rets(p_asset_id IN NUMBER,
114 p_mass_ext_retire_id IN NUMBER,
115 p_mtl_cost IN OUT NOCOPY NUMBER,
116 p_non_mtl_cost IN OUT NOCOPY NUMBER,
117 x_return_status OUT NOCOPY VARCHAR2,
118 x_error_msg OUT NOCOPY VARCHAR2)
119 IS
120 l_api_name VARCHAR2(100) := 'CSE_ASSET_ADJUST_PKG.create_inv_rets';
121 l_cost NUMBER ;
122 CURSOR mtl_src_lines_cur IS
123 SELECT source_line_id
124 , fixed_assets_cost cost
125 FROM fa_asset_invoices
126 WHERE SIGN(fixed_assets_cost) = SIGN(p_mtl_cost)
127 AND NVL(attribute15,'N') = 'Y'
128 AND date_ineffective IS NULL
129 AND asset_id = p_asset_id ;
130
131
132 CURSOR non_mtl_src_lines_cur IS
133 SELECT source_line_id
134 , fixed_assets_cost cost
135 FROM fa_asset_invoices
136 WHERE SIGN(fixed_assets_cost) = SIGN(p_mtl_cost)
137 AND NVL(attribute15,'N') <> 'Y'
138 AND date_ineffective IS NULL
139 AND asset_id = p_asset_id ;
140
141 BEGIN
142 FOR mtl_src_lines_rec IN mtl_src_lines_cur
143 LOOP
144 IF ABS(mtl_src_lines_rec.cost) < ABS(p_mtl_cost)
145 THEN
146 l_cost := mtl_src_lines_rec.cost ;
147 ELSE
148 l_cost := p_mtl_cost ;
149 END IF ;
150 IF l_cost = 0
151 THEN
152 EXIT ;
153 END IF ;
154 INSERT INTO fa_ext_inv_retirements (
155 mass_external_retire_id
156 , source_line_id
157 , cost_retired )
158 VALUES ( p_mass_ext_retire_id
159 , mtl_src_lines_rec.source_line_id
160 , l_cost) ;
161 p_mtl_cost := p_mtl_cost - l_cost ;
162 END LOOP ;
163 FOR non_mtl_src_lines_rec IN non_mtl_src_lines_cur
164 LOOP
165 IF ABS(non_mtl_src_lines_rec.cost) < ABS(p_non_mtl_cost)
166 THEN
167 l_cost := non_mtl_src_lines_rec.cost ;
168 ELSE
169 l_cost := p_non_mtl_cost ;
170 END IF ;
171 IF l_cost = 0
172 THEN
173 EXIT ;
174 END IF ;
175 INSERT INTO fa_ext_inv_retirements (
176 mass_external_retire_id
177 , source_line_id
178 , cost_retired )
179 VALUES ( p_mass_ext_retire_id
180 , non_mtl_src_lines_rec.source_line_id
181 , l_cost) ;
182 END LOOP ;
183 EXCEPTION
184 WHEN OTHERS
185 THEN
186 x_return_status := fnd_api.G_RET_STS_ERROR ;
187 fnd_message.set_name('CSE','CSE_UNEXP_SQL_ERROR');
188 fnd_message.set_token('API_NAME',l_api_name);
189 fnd_message.set_token('SQL_ERROR',SQLERRM);
190 x_error_msg := fnd_message.get;
191
192 END create_inv_rets ;
193
194
195 END CSE_ASSET_ADJUST_PKG ;