DBA Data[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;