[Home] [Help]
PACKAGE BODY: APPS.ASO_CFG_PUB
Source
1 PACKAGE BODY aso_cfg_pub as
2 /* $Header: asopcfgb.pls 120.2 2010/09/15 16:55:29 vidsrini ship $ */
3 -- Start of Comments
4 -- Package name : aso_cfg_pub
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9 --private variable declaration
10
11
12 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ASO_CFG_PUB';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asopcfgb.pls';
14
15
16 PROCEDURE Get_config_details(
17 P_Api_Version_Number IN NUMBER := FND_API.G_MISS_NUM,
18 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
19 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
20 p_control_rec IN aso_quote_pub.control_rec_type
21 := aso_quote_pub.G_MISS_control_rec,
22 p_config_rec IN aso_quote_pub.qte_line_dtl_rec_type,
23 p_model_line_rec IN aso_quote_pub.qte_line_rec_type,
24 p_config_hdr_id IN NUMBER,
25 p_config_rev_nbr IN NUMBER,
26 p_quote_header_id IN NUMBER,
27 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
28 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
29 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
30 )
31 IS
32
33 l_qte_header_rec aso_quote_pub.qte_header_rec_type := aso_quote_pub.g_miss_qte_header_rec;
34
35 BEGIN
36 l_qte_header_rec.quote_header_id := p_quote_header_id;
37
38 get_config_details(
39 p_api_version_number => p_api_version_number,
40 p_init_msg_list => fnd_api.g_false,
41 p_commit => p_commit,
42 p_control_rec => p_control_rec,
43 p_qte_header_rec => l_qte_header_rec,
44 p_model_line_rec => p_model_line_rec,
45 p_config_rec => p_config_rec,
46 p_config_hdr_id => p_config_hdr_id,
47 p_config_rev_nbr => p_config_rev_nbr,
48 x_return_status => x_return_status,
49 x_msg_count => x_msg_count,
50 x_msg_data => x_msg_data );
51
52 END get_config_details;
53
54
55 --Overloaded get_config_details procedure
56
57 PROCEDURE get_config_details(
58 p_api_version_number IN NUMBER,
59 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
60 p_commit IN VARCHAR2 := FND_API.G_FALSE,
61 p_control_rec IN aso_quote_pub.control_rec_type
62 := aso_quote_pub.G_MISS_control_rec,
63 p_qte_header_rec IN aso_quote_pub.qte_header_rec_type,
64 p_model_line_rec IN aso_quote_pub.qte_line_rec_type,
65 p_config_rec IN aso_quote_pub.qte_line_dtl_rec_type,
66 p_config_hdr_id IN NUMBER,
67 p_config_rev_nbr IN NUMBER,
68 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
69 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
70 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 )
72
73 IS
74 l_api_name CONSTANT VARCHAR2(30) := 'Get_Config_Details' ;
75 l_api_version_number CONSTANT NUMBER := 1.0;
76
77 BEGIN
78
79 -- Standard Start of API savepoint
80 SAVEPOINT GET_CONFIG_DETAILS_PUB;
81
82 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
83
84 -- Standard call to check for call compatibility.
85 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
86 p_api_version_number,
87 l_api_name,
88 G_PKG_NAME) THEN
89
90 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
91
92 END IF;
93
94 IF aso_debug_pub.g_debug_flag = 'Y' THEN
95 aso_debug_pub.add( 'ASO_CFG_PUB: GET_CONFIG_DETAILS start %%%%%%%%%%%%%%%%%%%', 1, 'Y' );
96 END IF;
97
98 -- Initialize message list if p_init_msg_list is set to TRUE.
99 IF FND_API.to_Boolean( p_init_msg_list ) THEN
100 FND_MSG_PUB.initialize;
101 END IF;
102
103 -- Initialize API return status to SUCCESS
104 x_return_status := FND_API.G_RET_STS_SUCCESS;
105
106 ASO_CFG_INT.Get_config_details(
107 P_Api_Version_Number => P_Api_Version_Number,
108 P_Init_Msg_List => FND_API.G_FALSE,
109 P_Commit => p_commit,
110 p_control_rec => p_control_rec,
111 p_qte_header_rec => p_qte_header_rec,
112 p_model_line_rec => p_model_line_rec,
113 p_config_rec => p_config_rec,
114 p_config_hdr_id => p_config_hdr_id ,
115 p_config_rev_nbr => p_config_rev_nbr,
116 x_return_status => x_return_status,
117 x_msg_count => x_msg_count,
118 x_msg_data => x_msg_data );
119
120
121 -- Check return status from the above procedure call
122 IF x_return_status = FND_API.G_RET_STS_ERROR then
123 raise FND_API.G_EXC_ERROR;
124 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
125 raise FND_API.G_EXC_UNEXPECTED_ERROR;
126 END IF;
127
128
129
130 -- Standard check for p_commit
131 IF FND_API.to_Boolean( p_commit ) THEN
132 COMMIT WORK;
133 END IF;
134
135
136 -- Standard call to get message count and if count is 1, get message info.
137 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
138 p_data => x_msg_data);
139
140 IF aso_debug_pub.g_debug_flag = 'Y' THEN
141 aso_debug_pub.add( 'ASO_CFG_PUB: GET_CONFIG_DETAILS End %%%%%%%%%%%%%%%%%%%', 1, 'Y' );
142 END IF;
143
144 EXCEPTION
145 WHEN FND_API.G_EXC_ERROR THEN
146 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS( P_API_NAME => L_API_NAME
147 ,P_PKG_NAME => G_PKG_NAME
148 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
149 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
150 ,X_MSG_COUNT => X_MSG_COUNT
151 ,X_MSG_DATA => X_MSG_DATA
152 ,X_RETURN_STATUS => X_RETURN_STATUS);
153
154 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
155 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS( P_API_NAME => L_API_NAME
156 ,P_PKG_NAME => G_PKG_NAME
157 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
158 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
159 ,X_MSG_COUNT => X_MSG_COUNT
160 ,X_MSG_DATA => X_MSG_DATA
161 ,X_RETURN_STATUS => X_RETURN_STATUS);
162
163 WHEN OTHERS THEN
164 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS( P_API_NAME => L_API_NAME
165 ,P_PKG_NAME => G_PKG_NAME
166 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
167 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
168 ,X_MSG_COUNT => X_MSG_COUNT
169 ,X_MSG_DATA => X_MSG_DATA
170 ,X_RETURN_STATUS => X_RETURN_STATUS);
171
172 END;
173
174
175
176
177 PROCEDURE Pricing_Callback( p_config_session_key IN VARCHAR2,
178 p_price_type IN VARCHAR2,
179 x_total_price OUT NOCOPY /* file.sql.39 change */ NUMBER )
180 is
181
182 Begin
183
184 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
185
186 ASO_CFG_INT.Pricing_Callback(p_config_session_key => p_config_session_key,
187 p_price_type => p_price_type,
188 x_total_price => x_total_price );
189
190
191 End Pricing_Callback;
192
193
194
195 PROCEDURE pricing_callback_manual( p_config_session_key IN VARCHAR2,
196 p_price_type IN VARCHAR2,
197 x_total_price OUT NOCOPY /* file.sql.39 change */ NUMBER )
198 IS
199
200 l_price_type VARCHAR2(10);
201
202 Begin
203 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
204
205 IF aso_debug_pub.g_debug_flag = 'Y' THEN
206
207 aso_debug_pub.add('ASO_CFG_PUB: pricing_callback_manual: Start %%%%%%%%%%%%%%%%%%%%' , 1, 'Y' );
208 aso_debug_pub.add('pricing_callback_manual: p_config_session_key: ' || p_config_session_key);
209 aso_debug_pub.add('pricing_callback_manual: p_price_type: ' || p_price_type);
210
211 END IF;
212
213 l_price_type := cz_prc_callback_util.g_prc_type_list;
214
215 IF aso_debug_pub.g_debug_flag = 'Y' THEN
216 aso_debug_pub.add('pricing_callback_manual: l_price_type: ' || l_price_type);
217 END IF;
218
219 pricing_callback( p_config_session_key => p_config_session_key,
220 p_price_type => l_price_type,
221 x_total_price => x_total_price);
222
223 IF aso_debug_pub.g_debug_flag = 'Y' THEN
224
225 aso_debug_pub.add('ASO_CFG_PUB: pricing_callback_manual End %%%%%%%%%%%%%%%%%%%%', 1, 'Y' );
226
227 END IF;
228
229 End pricing_callback_manual;
230
231 -- bug8278795
232 PROCEDURE Aso_config_price_items_mls (
233 p_config_session_key IN VARCHAR2,
234 p_price_type IN VARCHAR2, -- list, selling
235 x_total_price OUT NOCOPY NUMBER,
236 x_currency_code OUT NOCOPY VARCHAR2
237 ) IS
238 l_currency_code VARCHAR2(15);
239 l_top_line_id_pos NUMBER;
240 l_top_model_line_id NUMBER;
241 l_debug_level CONSTANT NUMBER := aso_debug_pub.g_debug_level;
242 BEGIN
243 IF l_debug_level > 0 THEN
244 aso_debug_pub.add ('Entering aso_Config_Price_Items_MLS - '
245 || p_config_session_key || ' ***** ' || p_price_type);
246 END IF;
247
248 l_top_line_id_pos := INSTR (p_config_session_key, '-' );
249 l_top_model_line_id := TO_NUMBER (SUBSTR (p_config_session_key, 1, l_top_line_id_pos - 1));
250
251 IF l_debug_level > 0 THEN
252 aso_debug_pub.add('top_model_line_id - ' || l_top_model_line_id);
253 END IF;
254
255 SELECT DISTINCT h.currency_code
256 INTO x_currency_code
257 FROM aso_quote_lines_all l,
258 aso_quote_headers_all h
259 WHERE h.QUOTE_header_id = l.QUOTE_header_id
260 AND l.QUOTE_line_id = l_top_model_line_id;
261
262 pricing_callback (
263 p_config_session_key => p_config_session_key,
264 p_price_type => p_price_type,
265 x_total_price => x_total_price
266 );
267
268 IF l_debug_level > 0 THEN
269 aso_debug_pub.add('Exiting ASO_CONFIG_PRICE_UTIL.ASO_config_price_items_mls');
270 END IF;
271
272 EXCEPTION
273 WHEN TOO_MANY_ROWS THEN
274 IF l_debug_level > 0 THEN
275 aso_debug_pub.add('Exception ASO_CONFIG_PRICE_UTIL.ASO_config_price_items_mls - TOO_MANY_ROWS');
276 END IF;
277 WHEN OTHERS THEN
278 IF l_debug_level > 0 THEN
279 aso_debug_pub.add('Exception ASO_CONFIG_PRICE_UTIL.ASO_config_price_items_mls - OTHERS');
280 END IF;
281 END aso_config_price_items_mls;
282 -- end bug8278795
283
284 -- bug8278795
285 PROCEDURE Aso_Config_Price_Items_MLS_Man(
286 p_config_session_key IN VARCHAR2,
287 p_price_type IN VARCHAR2, -- list, selling
288 x_total_price OUT NOCOPY NUMBER,
289 x_currency_code OUT NOCOPY VARCHAR2
290 ) IS
291 l_currency_code VARCHAR2(15);
292 l_top_line_id_pos NUMBER;
293 l_top_model_line_id NUMBER;
294 l_debug_level CONSTANT NUMBER := aso_debug_pub.g_debug_level;
295 BEGIN
296 IF l_debug_level > 0 THEN
297 aso_debug_pub.add ('Entering aso_Config_Price_Items_MLS - '
298 || p_config_session_key || ' ***** ' || p_price_type);
299 END IF;
300
301 l_top_line_id_pos := INSTR (p_config_session_key, '-' );
302 l_top_model_line_id := TO_NUMBER (SUBSTR (p_config_session_key, 1, l_top_line_id_pos - 1));
303
304 IF l_debug_level > 0 THEN
305 aso_debug_pub.add('top_model_line_id - ' || l_top_model_line_id);
306 END IF;
307
308 SELECT DISTINCT h.currency_code
309 INTO x_currency_code
310 FROM aso_quote_lines_all l,
311 aso_quote_headers_all h
312 WHERE h.QUOTE_header_id = l.QUOTE_header_id
313 AND l.QUOTE_line_id = l_top_model_line_id;
314
315 pricing_callback_manual (
316 p_config_session_key => p_config_session_key,
317 p_price_type => p_price_type,
318 x_total_price => x_total_price
319 );
320
321 IF l_debug_level > 0 THEN
322 aso_debug_pub.add('Exiting ASO_CONFIG_PRICE_UTIL.ASO_config_price_items_mls');
323 END IF;
324
325 EXCEPTION
326 WHEN TOO_MANY_ROWS THEN
327 IF l_debug_level > 0 THEN
328 aso_debug_pub.add('Exception ASO_CONFIG_PRICE_UTIL.ASO_config_price_items_mls - TOO_MANY_ROWS');
329 END IF;
330 WHEN OTHERS THEN
331 IF l_debug_level > 0 THEN
332 aso_debug_pub.add('Exception ASO_CONFIG_PRICE_UTIL.ASO_config_price_items_mls - OTHERS');
333 END IF;
334 END Aso_Config_Price_Items_MLS_Man;
335 -- end bug8278795
336
337 End aso_cfg_pub;