[Home] [Help]
PACKAGE BODY: APPS.IBE_CFG_CONFIG_PVT
Source
1 PACKAGE BODY ibe_cfg_config_pvt AS
2 /* $Header: IBEVFSCB.pls 120.3 2010/11/30 07:49:22 scnagara ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ibe_cfg_config_pvt';
5 l_true VARCHAR2(1) := FND_API.G_TRUE;
6
7 procedure Get_Config_Launch_Info(
8 p_api_version IN NUMBER,
9 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
10 p_commit IN VARCHAR2 := FND_API.g_false,
11 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
12 x_return_status OUT NOCOPY VARCHAR2,
13 x_msg_count OUT NOCOPY NUMBER,
14 x_msg_data OUT NOCOPY VARCHAR2,
15 p_itemid IN NUMBER,
16 p_organization_id IN NUMBER,
17 x_configurable OUT NOCOPY VARCHAR2,
18 -- x_icx_sessn_tkt OUT NOCOPY VARCHAR2, -- taken out as we're using a new java api for bug 3137603
19 x_db_id OUT NOCOPY VARCHAR2,
20 x_servlet_url OUT NOCOPY VARCHAR2,
21 x_sysdate OUT NOCOPY VARCHAR2
22 ) is
23 l_api_name CONSTANT VARCHAR2(30) := 'Get_Config_Launch_Info';
24 l_api_version CONSTANT NUMBER := 1.0;
25
26 l_ui_def_id NUMBER;
27 l_resp_id NUMBER;
28 l_resp_appl_id NUMBER;
29 l_log_enabled VARCHAR2(1) := 'N';
30 l_user_id NUMBER;
31 begin
32 l_user_id := fnd_global.user_id;
33 l_log_enabled := fnd_profile.value_specific(
34 name =>'IBE_DEBUG',
35 user_id => l_user_id);
36 if (l_log_enabled = 'Y') then
37 ----IBE_Util.Enable_Debug;
38 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
39 ibe_util.debug('Starting ibe_cfg_config_pvt.Get_Config_Launch_Info ');
40 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - Key Input: item_id: ' || p_itemid || 'organizationid: ' || p_organization_id);
41 END IF;
42 end if;
43
44 SAVEPOINT Get_Config_Launch_Info_Pvt;
45 -- Standard call to check for call compatibility.
46 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
47 p_api_version ,
48 l_api_name ,
49 G_PKG_NAME )
50 THEN
51 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
52 END IF;
53
54 -- Initialize message list if p_init_msg_list is set to TRUE.
55 IF FND_API.to_Boolean( p_init_msg_list ) THEN
56 FND_MSG_PUB.initialize;
57 END IF;
58
59 -- Initialize API rturn status to success
60 x_return_status := FND_API.g_ret_sts_success;
61
62 -- just something to get working for now
63
64 l_resp_id := fnd_profile.value('RESP_ID');
65 l_resp_appl_id := fnd_profile.value('RESP_APPL_ID');
66
67 if (l_log_enabled = 'Y') then
68 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
69 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - responsibility id ' || l_resp_id);
70 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - calling app id ' || l_resp_appl_id);
71 END IF;
72 -- call configurator API
73 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
74 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - calling CZ_CF_API.UI_FOR_ITEM');
75 END IF;
76 end if;
77 l_ui_def_id := CZ_CF_API.UI_FOR_ITEM (p_itemid, p_organization_id, SYSDATE,
78 'DHTML', FND_API.G_MISS_NUM, l_resp_id, l_resp_appl_id);
79 if (l_log_enabled = 'Y') then
80 ----IBE_Util.Enable_Debug;
81 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
82 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - back from CZ_CF_API.UI_FOR_ITEM');
83 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - l_ui_def_id: ' || to_char(l_ui_def_id));
84 END IF;
85 end if;
86
87 IF l_ui_def_id IS NULL THEN
88 x_configurable := FND_API.G_FALSE;
89 ELSE
90 x_configurable := FND_API.G_TRUE;
91 END IF;
92
93 -- get icx session ticket
94 -- x_icx_sessn_tkt := CZ_CF_API.ICX_SESSION_TICKET;
95
96 -- get the dbc file name
97 x_db_id := FND_WEB_CONFIG.DATABASE_ID;
98
99 -- get the URL for servlet
100 x_servlet_url := fnd_profile.value('CZ_UIMGR_URL');
101
102 -- get the SYSDATE
103 x_sysdate := to_char(sysdate,'mm-dd-yyyy-hh24-mi-ss');
104
105 if (l_log_enabled = 'Y') then
106 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
107 -- ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - x_icx_sessn_tkt: ' || x_icx_sessn_tkt);
108 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - x_db_id : ' || x_db_id );
109 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - x_servlet_url : ' || x_servlet_url);
110 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info - x_sysdate : ' || x_sysdate);
111 END IF;
112 end if;
113
114 IF FND_API.To_Boolean( p_commit ) THEN
115 COMMIT WORK;
116 END IF;
117 FND_MSG_PUB.Count_And_Get
118 ( p_encoded => FND_API.G_FALSE,
119 p_count => x_msg_count,
120 p_data => x_msg_data
121 );
122 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
123 ibe_util.debug('Done with ibe_cfg_config_pvt.Get_Config_Launch_Info');
124 END IF;
125 --IBE_Util.Disable_Debug;
126 EXCEPTION
127 WHEN FND_API.G_EXC_ERROR THEN
128 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
129 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info: EXPECTED ERROR EXCEPTION ');
130 END IF;
131 ROLLBACK TO Get_Config_Launch_Info_Pvt;
132 x_return_status := FND_API.G_RET_STS_ERROR ;
133 FND_MSG_PUB.Count_And_Get
134 ( p_encoded => FND_API.G_FALSE,
135 p_count => x_msg_count,
136 p_data => x_msg_data
137 );
138 --IBE_Util.Disable_Debug;
139 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
140 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
141 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info: UNEXPECTED ERROR EXCEPTION ');
142 END IF;
143 ROLLBACK TO Get_Config_Launch_Info_Pvt;
144 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
145 FND_MSG_PUB.Count_And_Get
146 ( p_encoded => FND_API.G_FALSE,
147 p_count => x_msg_count,
148 p_data => x_msg_data
149 );
150 --IBE_Util.Disable_Debug;
151 WHEN OTHERS THEN
152 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
153 ibe_util.debug('ibe_cfg_config_pvt.Get_Config_Launch_Info: OTHER EXCEPTION ');
154 END IF;
155 ROLLBACK TO Get_Config_Launch_Info_Pvt;
156 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
157 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
158 THEN
159 FND_MSG_PUB.Add_Exc_Msg
160 ( G_PKG_NAME,
161 l_api_name
162 );
163 END IF;
164 FND_MSG_PUB.Count_And_Get
165 ( p_encoded => FND_API.G_FALSE,
166 p_count => x_msg_count,
167 p_data => x_msg_data
168 );
169 --IBE_Util.Disable_Debug;
170
171 end Get_Config_Launch_Info;
172
173 procedure Add_Config_To_Quote(
174 p_api_version IN NUMBER,
175 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
176 p_commit IN VARCHAR2 := FND_API.g_false,
177 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
178 x_return_status OUT NOCOPY VARCHAR2,
179 x_msg_count OUT NOCOPY NUMBER,
180 x_msg_data OUT NOCOPY VARCHAR2,
181 p_quote_hdr_id IN NUMBER := FND_API.g_miss_num,
182 p_quote_line_id IN NUMBER := FND_API.g_miss_num,
183 p_cfg_hdr_id IN NUMBER := FND_API.g_miss_num,
184 p_cfg_rev_num IN NUMBER := FND_API.g_miss_num,
185 p_valid_cfg IN VARCHAR2 := 'Y',
186 p_complete_cfg IN VARCHAR2 := 'Y',
187 p_pricing_request_type IN VARCHAR2 := FND_API.g_miss_char,
188 p_header_pricing_event IN VARCHAR2 := FND_API.g_miss_char,
189 p_line_pricing_event IN VARCHAR2 := FND_API.g_miss_char,
190 p_calc_tax IN VARCHAR2 := 'Y',
191 p_calc_shipping IN VARCHAR2 := 'Y',
192 p_price_mode IN VARCHAR2 := 'ENTIRE_QUOTE' -- change line logic pricing
193 ) is
194 l_count NUMBER;
195 p_config_rec aso_quote_pub.qte_line_dtl_rec_type ;
196 p_line_rec aso_quote_pub.qte_line_rec_type ;
197 l_api_name CONSTANT VARCHAR2(30) := 'Add_Config_To_Quote';
198 l_api_version CONSTANT NUMBER := 1.0;
199
200 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
201 l_qte_header_rec aso_quote_pub.qte_header_rec_type := aso_quote_pub.g_miss_qte_header_rec; -- bug 8769909, scnagara
202
203 Cursor c_old_cfg_info (p_c_quote_line_id INTEGER)
204 IS select CONFIG_HEADER_ID, CONFIG_REVISION_NUM
205 from ASO_QUOTE_LINE_DETAILS
206 where
207 quote_line_id = p_c_quote_line_id;
208 l_log_enabled VARCHAR2(1) := 'N';
209 l_user_id NUMBER;
210 begin
211 --IBE_Util.Enable_Debug;
212 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
213 ibe_util.debug('Starting ibe_cfg_config_pvt.Add_Config_To_Quote ');
214 END IF;
215 SAVEPOINT Add_Config_To_Quote_Pvt;
216 -- Standard call to check for call compatibility.
217 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
218 p_api_version ,
219 l_api_name ,
220 G_PKG_NAME )
221 THEN
222 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
223 END IF;
224
225 -- Initialize message list if p_init_msg_list is set to TRUE.
226 IF FND_API.to_Boolean( p_init_msg_list ) THEN
227 FND_MSG_PUB.initialize;
228 END IF;
229
230 -- Initialize API rturn status to success
231 x_return_status := FND_API.g_ret_sts_success;
232
233 l_qte_header_rec.quote_header_id := p_quote_hdr_id; -- bug 8769909, scnagara
234 l_qte_header_rec.PRICING_STATUS_INDICATOR := 'C';
235 l_qte_header_rec.TAX_STATUS_INDICATOR := 'C';
236
237 l_control_rec.pricing_request_type := p_pricing_request_type;
238 l_control_rec.header_pricing_event := p_header_pricing_event;
239 l_control_rec.line_pricing_event := p_line_pricing_event;
240 l_control_rec.CALCULATE_TAX_FLAG := p_calc_tax;
241 l_control_rec.CALCULATE_FREIGHT_CHARGE_FLAG := p_calc_shipping;
242 l_control_rec.PRICE_MODE := p_price_mode; -- change line logic pricing
243
244 IF (p_price_mode = 'CHANGE_LINE') THEN -- change line logic pricing
245 l_qte_header_rec.PRICING_STATUS_INDICATOR := 'I';
246 l_qte_header_rec.TAX_STATUS_INDICATOR := 'I';
247 END IF;
248
249 p_config_rec.quote_line_id := p_quote_line_id ;
250 p_config_rec.complete_configuration_flag := p_complete_cfg;
251 p_config_rec.valid_configuration_flag := p_valid_cfg;
252
253 -- Get and pass the previously saved config info from the quote line
254 open c_old_cfg_info(p_quote_line_id);
255 fetch c_old_cfg_info into p_config_rec.config_header_id, p_config_rec.config_revision_num;
256 close c_old_cfg_info;
257
258 l_user_id := fnd_global.user_id;
259 l_log_enabled := fnd_profile.value_specific(
260 name =>'IBE_DEBUG',
261 user_id => l_user_id);
262 if (l_log_enabled = 'Y') then
263 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
264 ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote - calling ASO_CFG_PUB.Get_config_details ');
265 ibe_util.debug('New Config info:');
266 ibe_util.debug('p_config_hdr_id ' || p_cfg_hdr_id);
267 ibe_util.debug('p_config_rev_nbr ' || p_cfg_rev_num);
268 ibe_util.debug('p_quote_header_id ' || p_quote_hdr_id);
269 ibe_util.debug('p_config_rec.quote_line_id ' || p_quote_line_id);
270 ibe_util.debug('p_config_rec.complete_configuration_flag ' || p_complete_cfg);
271 ibe_util.debug('p_config_rec.valid_configuration_flag ' || p_valid_cfg);
272 ibe_util.debug('Previous Config info (if any):');
273 ibe_util.debug('p_config_rec.config_header_id ' || p_config_rec.config_header_id);
274 ibe_util.debug('p_config_rec.config_revision_num ' || p_config_rec.config_revision_num);
275 ibe_util.debug('Control Rec info:');
276 ibe_util.debug('l_control_rec.pricing_request_type ' || l_control_rec.pricing_request_type );
277 ibe_util.debug('l_control_rec.header_pricing_event ' || l_control_rec.header_pricing_event);
278 ibe_util.debug('l_control_rec.line_pricing_event ' || l_control_rec.line_pricing_event);
279 ibe_util.debug('l_control_rec.CALCULATE_TAX_FLAG ' || l_control_rec.CALCULATE_TAX_FLAG);
280 ibe_util.debug('l_control_rec.CALCULATE_FREIGHT_CHARGE_FLAG ' || l_control_rec.CALCULATE_FREIGHT_CHARGE_FLAG );
281 ibe_util.debug('l_control_rec.PRICE_MODE ' || l_control_rec.PRICE_MODE );
282 ibe_util.debug('Passing header record to ibe_cfg_config_pvt.Add_Config_To_Quote');
283 END IF;
284 end if;
285 /* -- bug 8769909, scnagara
286 ASO_CFG_PUB.Get_config_details(
287 P_Api_Version_Number => 1.0 ,
288 P_Init_Msg_List => FND_API.g_false,
289 p_commit => FND_API.g_false,
290 p_control_rec => l_control_rec,
291 p_config_rec => p_config_rec ,
292 p_model_line_rec => p_line_rec ,
293 p_config_hdr_id => p_cfg_hdr_id ,
294 p_config_rev_nbr => p_cfg_rev_num ,
295 p_quote_header_id => p_quote_hdr_id,
296 x_return_status => x_return_status ,
297 x_msg_count => x_msg_count ,
298 x_msg_data => x_msg_data);
299 */
300
301 ASO_CFG_PUB.get_config_details( -- bug 8769909, scnagara
302 P_Api_Version_Number => 1.0 ,
303 P_Init_Msg_List => FND_API.g_false,
304 p_commit => FND_API.g_false,
305 p_control_rec => l_control_rec,
306 p_qte_header_rec => l_qte_header_rec,
307 p_model_line_rec => p_line_rec ,
308 p_config_rec => p_config_rec ,
309 p_config_hdr_id => p_cfg_hdr_id ,
310 p_config_rev_nbr => p_cfg_rev_num ,
311 x_return_status => x_return_status ,
312 x_msg_count => x_msg_count ,
313 x_msg_data => x_msg_data);
314 --IBE_Util.Enable_Debug;
315 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
316 ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote - back from ASO_CFG_PUB.Get_config_details ');
317 END IF;
318
319 if x_return_status <> FND_API.g_ret_sts_success then
320 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
321 ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote - non success status from ASO_CFG_PUB.Get_config_details: ' || x_return_status);
322 END IF;
323 FND_MESSAGE.SET_NAME('IBE','IBE_PLSQL_API_ERROR');
324 FND_MESSAGE.SET_TOKEN ( '0' , 'Add_Config_To_Quote - ASO_CFG_PUB.Get_config_details' );
325 FND_MESSAGE.SET_TOKEN ( '1' , x_return_status );
326 FND_MSG_PUB.Add;
327 if x_return_status = FND_API.G_RET_STS_ERROR then
328 RAISE FND_API.G_EXC_ERROR;
329 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
330 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
331 end if;
332 end if;
333
334
335 IF FND_API.To_Boolean( p_commit ) THEN
336 COMMIT WORK;
337 END IF;
338 FND_MSG_PUB.Count_And_Get
339 ( p_encoded => FND_API.G_FALSE,
340 p_count => x_msg_count,
341 p_data => x_msg_data
342 );
343 --IBE_Util.Disable_Debug;
344 EXCEPTION
345 WHEN FND_API.G_EXC_ERROR THEN
346 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
347 ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote: EXPECTED ERROR EXCEPTION ');
348 END IF;
349 ROLLBACK TO Add_Config_To_Quote_Pvt;
350 x_return_status := FND_API.G_RET_STS_ERROR ;
351 FND_MSG_PUB.Count_And_Get
352 ( p_encoded => FND_API.G_FALSE,
353 p_count => x_msg_count,
354 p_data => x_msg_data
355 );
356 --IBE_Util.Disable_Debug;
357 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
358 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
359 ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote: UNEXPECTED ERROR EXCEPTION ');
360 END IF;
361 ROLLBACK TO Add_Config_To_Quote_Pvt;
362 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
363 FND_MSG_PUB.Count_And_Get
364 ( p_encoded => FND_API.G_FALSE,
365 p_count => x_msg_count,
366 p_data => x_msg_data
367 );
368 --IBE_Util.Disable_Debug;
369 WHEN OTHERS THEN
370 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
371 ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote: OTHER EXCEPTION ');
372 END IF;
373 ROLLBACK TO Add_Config_To_Quote_Pvt;
374 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
375 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
376 THEN
377 FND_MSG_PUB.Add_Exc_Msg
378 ( G_PKG_NAME,
379 l_api_name
380 );
381 END IF;
382 FND_MSG_PUB.Count_And_Get
383 ( p_encoded => FND_API.G_FALSE,
384 p_count => x_msg_count,
385 p_data => x_msg_data
386 );
387 --IBE_Util.Disable_Debug;
388
389 end Add_Config_To_Quote;
390
391 end ibe_cfg_config_pvt;