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.1 2005/07/20 23:10:58 appldev 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 ) is
193 	l_count NUMBER;
194 	p_config_rec aso_quote_pub.qte_line_dtl_rec_type ;
195 	p_line_rec   aso_quote_pub.qte_line_rec_type ;
196 	l_api_name	CONSTANT VARCHAR2(30)	:= 'Add_Config_To_Quote';
197 	l_api_version	CONSTANT NUMBER		:= 1.0;
198 
199 	l_control_rec		ASO_QUOTE_PUB.Control_Rec_Type;
200 
201 	Cursor c_old_cfg_info (p_c_quote_line_id INTEGER)
202 	IS select CONFIG_HEADER_ID, CONFIG_REVISION_NUM
203 		from ASO_QUOTE_LINE_DETAILS
204 		where
205 			quote_line_id = p_c_quote_line_id;
206 	l_log_enabled   VARCHAR2(1) := 'N';
207 	l_user_id	NUMBER;
208 begin
209 	--IBE_Util.Enable_Debug;
210 	IF (IBE_UTIL.G_DEBUGON = l_true) THEN
211    	ibe_util.debug('Starting ibe_cfg_config_pvt.Add_Config_To_Quote ');
212 	END IF;
213 	SAVEPOINT	Add_Config_To_Quote_Pvt;
214 	-- Standard call to check for call compatibility.
215 	IF NOT FND_API.Compatible_API_Call ( 	l_api_version        	,
216         	    	    	    	 	p_api_version        	,
217    	       	    	 			l_api_name 	    	,
218 		    	    	    	    	G_PKG_NAME )
219 	THEN
220 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
221 	END IF;
222 
223 	-- Initialize message list if p_init_msg_list is set to TRUE.
224 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
225 		FND_MSG_PUB.initialize;
226 	END IF;
227 
228 	-- Initialize API rturn status to success
229 	x_return_status := FND_API.g_ret_sts_success;
230 
231 	l_control_rec.pricing_request_type := p_pricing_request_type;
232 	l_control_rec.header_pricing_event := p_header_pricing_event;
233 	l_control_rec.line_pricing_event := p_line_pricing_event;
234 	l_control_rec.CALCULATE_TAX_FLAG := p_calc_tax;
235 	l_control_rec.CALCULATE_FREIGHT_CHARGE_FLAG := p_calc_shipping;
236 
237 	p_config_rec.quote_line_id := p_quote_line_id ;
238 	p_config_rec.complete_configuration_flag := p_complete_cfg;
239 	p_config_rec.valid_configuration_flag := p_valid_cfg;
240 
241 	-- Get and pass the previously saved config info from the quote line
242 	open c_old_cfg_info(p_quote_line_id);
243 	fetch c_old_cfg_info into p_config_rec.config_header_id, p_config_rec.config_revision_num;
244 	close c_old_cfg_info;
245 
246 	l_user_id := fnd_global.user_id;
247 	l_log_enabled := fnd_profile.value_specific(
248 				name =>'IBE_DEBUG',
249 				user_id => l_user_id);
250 	if (l_log_enabled = 'Y') then
251 		IF (IBE_UTIL.G_DEBUGON = l_true) THEN
252    		ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote - calling ASO_CFG_PUB.Get_config_details ');
253    		ibe_util.debug('New Config info:');
254    		ibe_util.debug('p_config_hdr_id ' || p_cfg_hdr_id);
255    		ibe_util.debug('p_config_rev_nbr ' || p_cfg_rev_num);
256    		ibe_util.debug('p_quote_header_id ' || p_quote_hdr_id);
257    		ibe_util.debug('p_config_rec.quote_line_id ' || p_quote_line_id);
258    		ibe_util.debug('p_config_rec.complete_configuration_flag ' || p_complete_cfg);
259    		ibe_util.debug('p_config_rec.valid_configuration_flag ' || p_valid_cfg);
260    		ibe_util.debug('Previous Config info (if any):');
261    		ibe_util.debug('p_config_rec.config_header_id ' || p_config_rec.config_header_id);
262    		ibe_util.debug('p_config_rec.config_revision_num ' || p_config_rec.config_revision_num);
263    		ibe_util.debug('Control Rec info:');
264    		ibe_util.debug('l_control_rec.pricing_request_type  ' || l_control_rec.pricing_request_type );
265    		ibe_util.debug('l_control_rec.header_pricing_event ' || l_control_rec.header_pricing_event);
266    		ibe_util.debug('l_control_rec.line_pricing_event  ' || l_control_rec.line_pricing_event);
267    		ibe_util.debug('l_control_rec.CALCULATE_TAX_FLAG ' || l_control_rec.CALCULATE_TAX_FLAG);
268    		ibe_util.debug('l_control_rec.CALCULATE_FREIGHT_CHARGE_FLAG  ' || l_control_rec.CALCULATE_FREIGHT_CHARGE_FLAG );
269 		END IF;
270 	end if;
271 
272 	ASO_CFG_PUB.Get_config_details(
273 		P_Api_Version_Number     => 1.0 ,
274 		P_Init_Msg_List => FND_API.g_false,
275 		p_commit	=> FND_API.g_false,
276 		p_control_rec  	=> l_control_rec,
277 		p_config_rec        => p_config_rec ,
278 		p_model_line_rec     => p_line_rec ,
279 		p_config_hdr_id     => p_cfg_hdr_id ,
280 		p_config_rev_nbr    => p_cfg_rev_num ,
281 		p_quote_header_id   => p_quote_hdr_id,
282 		x_return_status      => x_return_status ,
283 		x_msg_count          => x_msg_count ,
284 		x_msg_data           => x_msg_data);
285 	--IBE_Util.Enable_Debug;
286 	IF (IBE_UTIL.G_DEBUGON = l_true) THEN
287    	ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote - back from ASO_CFG_PUB.Get_config_details ');
288 	END IF;
289 
290 	if x_return_status <> FND_API.g_ret_sts_success then
291 		IF (IBE_UTIL.G_DEBUGON = l_true) THEN
292    		ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote - non success status from ASO_CFG_PUB.Get_config_details: ' || x_return_status);
293 		END IF;
294 		FND_MESSAGE.SET_NAME('IBE','IBE_PLSQL_API_ERROR');
295           	FND_MESSAGE.SET_TOKEN ( '0' , 'Add_Config_To_Quote - ASO_CFG_PUB.Get_config_details' );
296              	FND_MESSAGE.SET_TOKEN ( '1' , x_return_status );
297 		FND_MSG_PUB.Add;
298 		if x_return_status = FND_API.G_RET_STS_ERROR then
299 			RAISE FND_API.G_EXC_ERROR;
300 		elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
301 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
302 		end if;
303 	end if;
304 
305 
306 	IF FND_API.To_Boolean( p_commit ) THEN
307 		COMMIT WORK;
308 	END IF;
309 	FND_MSG_PUB.Count_And_Get
310     	(  	p_encoded 		=> FND_API.G_FALSE,
311 		p_count         	=>      x_msg_count,
312         	p_data          	=>      x_msg_data
313     	);
314 	--IBE_Util.Disable_Debug;
315 EXCEPTION
316 	WHEN FND_API.G_EXC_ERROR THEN
317 		IF (IBE_UTIL.G_DEBUGON = l_true) THEN
318    		ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote: EXPECTED ERROR EXCEPTION ');
319 		END IF;
320 		ROLLBACK TO Add_Config_To_Quote_Pvt;
321 		x_return_status := FND_API.G_RET_STS_ERROR ;
322 		FND_MSG_PUB.Count_And_Get
323     		(  	p_encoded 		=> FND_API.G_FALSE,
324 			p_count         	=>      x_msg_count,
325         		p_data          	=>      x_msg_data
326     		);
327 		--IBE_Util.Disable_Debug;
328 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
329 		IF (IBE_UTIL.G_DEBUGON = l_true) THEN
330    		ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote: UNEXPECTED ERROR EXCEPTION ');
331 		END IF;
332 		ROLLBACK TO Add_Config_To_Quote_Pvt;
333 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
334 		FND_MSG_PUB.Count_And_Get
335     		(  	p_encoded 		=> FND_API.G_FALSE,
336 			p_count         	=>      x_msg_count,
337        			p_data          	=>      x_msg_data
338     		);
339 		--IBE_Util.Disable_Debug;
340 	WHEN OTHERS THEN
341 		IF (IBE_UTIL.G_DEBUGON = l_true) THEN
342    		ibe_util.debug('ibe_cfg_config_pvt.Add_Config_To_Quote: OTHER EXCEPTION ');
343 		END IF;
344 		ROLLBACK TO Add_Config_To_Quote_Pvt;
345 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
346   		IF 	FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
347 		THEN
348         		FND_MSG_PUB.Add_Exc_Msg
349     	    		(	G_PKG_NAME,
350     	    			l_api_name
351 	    		);
352 		END IF;
353 		FND_MSG_PUB.Count_And_Get
354     		(  	p_encoded 		=> FND_API.G_FALSE,
355 			p_count         	=>      x_msg_count,
356        			p_data          	=>      x_msg_data
357     		);
358 		--IBE_Util.Disable_Debug;
359 
360 end Add_Config_To_Quote;
361 
362 end ibe_cfg_config_pvt;