DBA Data[Home] [Help]

PACKAGE BODY: APPS.ASO_CONC_REQ_INT

Source


1 PACKAGE BODY ASO_CONC_REQ_INT as
2 /* $Header: asoiprqb.pls 120.5 2006/02/08 11:59:46 skulkarn ship $*/
3 
4 G_PKG_NAME CONSTANT     VARCHAR2 (30):= 'ASO_CONC_REQ_INT';
5 
6 Procedure Submit_price_tax_req(
7 		P_Api_Version_Number	IN	NUMBER,
8 		P_Init_Msg_List		IN	VARCHAR2		:= FND_API.G_FALSE,
9 		p_qte_header_rec	IN	ASO_QUOTE_PUB.Qte_Header_Rec_Type,
10 		p_control_rec		IN	ASO_QUOTE_PUB.Control_Rec_Type :=ASO_QUOTE_PUB.G_Miss_Control_Rec,
11 		x_request_id	 OUT NOCOPY /* file.sql.39 change */  Number,
12 		x_return_status	 OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
13 		x_msg_count	 OUT NOCOPY /* file.sql.39 change */  Number,
14 		x_msg_data	 OUT NOCOPY /* file.sql.39 change */  VARCHAR2
15            ) is
16 
17 lx_request_id				Number;
18 errbuf					VARCHAR2(2000);
19 L_API_VERSION				CONSTANT    NUMBER	   := 1.0;
20 l_api_name				CONSTANT VARCHAR2(30)  := 'Submit_price_tax_req';
21 l_header_pricing_event			VARCHAR2(10);
22 l_pricing_request_type			VARCHAR2(10);
23 l_calculate_tax_flag			VARCHAR2(1);
24 l_calc_freight_charge_flag		VARCHAR2(1);
25 l_price_mode				VARCHAR2(20);
26 l_auto_version_flag			VARCHAR2(1);
27 l_copy_task_flag			VARCHAR2(1);
28 l_copy_notes_flag			VARCHAR2(1);
29 l_copy_att_flag				VARCHAR2(1);
30 l_DEPENDENCY_FLAG                  VARCHAR2(1);
31 l_DEFAULTING_FLAG                  VARCHAR2(1);
32 l_DEFAULTING_FWK_FLAG              VARCHAR2(1);
33 l_APPLICATION_TYPE_CODE            VARCHAR2(30);
34 l_pricing_status_indicator		VARCHAR2(11);
35 l_tax_status_indicator			VARCHAR2(11);
36 G_USER_ID				NUMBER := FND_GLOBAL.USER_ID;
37 G_LOGIN_ID				NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
38 x_status				VARCHAR2(1);
39 l_qte_header_rec			ASO_QUOTE_PUB.Qte_Header_Rec_Type:=ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec;
40 l_control_rec				ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_Miss_Control_Rec;
41 l_hd_Price_Attributes_Tbl		ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
42 l_hd_Payment_Tbl			ASO_QUOTE_PUB.Payment_Tbl_Type;
43 l_hd_Shipment_Tbl			ASO_QUOTE_PUB.Shipment_Tbl_Type;
44 l_hd_Freight_Charge_Tbl			ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
45 l_hd_Tax_Detail_Tbl			ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
46 l_hd_Attr_Ext_Tbl			ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
47 l_hd_Sales_Credit_Tbl			ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
48 l_hd_Quote_Party_Tbl			ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
49 l_Qte_Line_Tbl				ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
50 l_Qte_Line_Dtl_Tbl			ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
51 l_Line_Attr_Ext_Tbl			ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
52 l_line_rltship_tbl			ASO_QUOTE_PUB.Line_Rltship_Tbl_Type;
53 l_Price_Adjustment_Tbl			ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
54 l_Price_Adj_Attr_Tbl			ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
55 l_Price_Adj_Rltship_Tbl			ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
56 l_Ln_Price_Attributes_Tbl		ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
57 l_Ln_Payment_Tbl			ASO_QUOTE_PUB.Payment_Tbl_Type;
58 l_Ln_Shipment_Tbl			ASO_QUOTE_PUB.Shipment_Tbl_Type;
59 l_Ln_Freight_Charge_Tbl			ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
60 l_Ln_Tax_Detail_Tbl			ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
61 l_ln_Sales_Credit_Tbl			ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
62 l_ln_Quote_Party_Tbl			ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
63 
64 lx_Qte_Line_Tbl				ASO_QUOTE_PUB.Qte_line_tbl_type;
65 lx_Qte_Line_Dtl_Tbl			ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
66 lx_qte_header_rec			ASO_QUOTE_PUB.Qte_Header_Rec_Type;
67 lx_hd_Price_Attr_Tbl			ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
68 lx_hd_payment_tbl			ASO_QUOTE_PUB.Payment_Tbl_Type;
69 lx_hd_shipment_tbl			ASO_QUOTE_PUB.Shipment_Tbl_Type;
70 lx_hd_freight_charge_tbl		ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
71 lx_hd_tax_detail_tbl			ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
72 lX_hd_Attr_Ext_Tbl			ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
73 lx_Line_Attr_Ext_Tbl			ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
74 lx_line_rltship_tbl			ASO_QUOTE_PUB.Line_Rltship_Tbl_Type;
75 lx_Price_Adjustment_Tbl			ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
76 lx_Price_Adj_Attr_Tbl			ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
77 lx_price_adj_rltship_tbl		ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
78 lx_hd_Sales_Credit_Tbl			ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
79 lx_Quote_Party_Tbl			ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
80 lX_Ln_Sales_Credit_Tbl			ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
81 lX_Ln_Quote_Party_Tbl			ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
82 lx_ln_Price_Attr_Tbl			ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
83 lx_ln_payment_tbl			ASO_QUOTE_PUB.Payment_Tbl_Type;
84 lx_ln_shipment_tbl			ASO_QUOTE_PUB.Shipment_Tbl_Type;
85 lx_ln_freight_charge_tbl		ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
86 lx_ln_tax_detail_tbl			ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
87 l_org_id				NUMBER ;
88 
89 Begin
90 
91 	savepoint Submit_price_tax_req_INT;
92 
93 	-- Standard call to check for call compatibility.
94 	IF NOT FND_API.Compatible_API_Call(
95 		L_API_VERSION       ,
96 		P_API_VERSION_NUMBER,
97 		L_API_NAME          ,
98 		G_PKG_NAME
99 				    ) THEN
100 		  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
101 	END IF;
102 
103 	-- Initialize message list if p_init_msg_list is set to TRUE.
104 	IF FND_API.To_Boolean(p_init_msg_list) THEN
105 		FND_Msg_Pub.initialize;
106 	END IF;
107 
108 
109         x_return_status := FND_API.G_RET_STS_SUCCESS;
110 
111         x_msg_count := 0;
112 
113 /*******************************************************
114  Submit Batch Request
115 *******************************************************/
116 
117 Lock_Exists(
118 		p_quote_header_id	=> p_qte_header_rec.quote_header_id,
119 		x_status		=> x_status);
120 
121 if (x_status = FND_API.G_TRUE) then
122 		IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
123 			FND_MESSAGE.Set_Name('ASO', 'ASO_CONC_REQUEST_RUNNING');
124 			FND_MSG_PUB.ADD;
125 		END IF;
126 
127 		raise FND_API.G_EXC_ERROR;
128 end if;
129 
130 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
131 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request:quote_header_id:'|| p_qte_header_rec.quote_header_id,1,'N');
132 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: header_pricing_event:'|| p_control_rec.header_pricing_event,1,'N');
133 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: pricing_request_type:'|| p_control_rec.pricing_request_type,1,'N');
134 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: calculate_tax_flag:'|| p_control_rec.calculate_tax_flag,1,'N');
135 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: calc_freight_charge_flag:'|| p_control_rec.calculate_freight_charge_flag,1,'N');
136 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: price_mode:'|| p_control_rec.price_mode,1,'N');
137 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: auto_version_flag:'|| p_control_rec.auto_version_flag,1,'N');
138 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: copy_task_flag:'|| p_control_rec.copy_task_flag ,1,'N');
139 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: copy_notes_flag:'|| p_control_rec.copy_notes_flag,1,'N');
140 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: copy_att_flag:'|| p_control_rec.copy_att_flag,1,'N');
141 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: DEPENDENCY_FLAG:'|| p_control_rec.DEPENDENCY_FLAG,1,'N');
142 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: DEFAULTING_FLAG:'|| p_control_rec.DEFAULTING_FLAG,1,'N');
143 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: DEFAULTING_FWK_FLAG:'|| p_control_rec.DEFAULTING_FWK_FLAG,1,'N');
144 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: APPLICATION_TYPE_CODE:'|| p_control_rec.APPLICATION_TYPE_CODE,1,'N');
145 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: pricing status indicator:'|| p_qte_header_rec.Pricing_status_indicator,1,'N');
146 	aso_debug_pub.add('ASO_CONC_REQ: Submit_request: tax status indicator:'|| p_qte_header_rec.tax_status_indicator,1,'N');
147 END IF;
148 
149 	If ((p_control_rec.header_pricing_event = null) or (p_control_rec.header_pricing_event = FND_API.G_MISS_CHAR)) then
150 			l_header_pricing_event := ' ';
151 	else
152 			l_header_pricing_event := p_control_rec.header_pricing_event;
153 	end if;
154 
155 	If ((p_control_rec.pricing_request_type = null) or (p_control_rec.pricing_request_type = FND_API.G_MISS_CHAR)) then
156 			l_pricing_request_type := ' ';
157 	else
158 			l_pricing_request_type := p_control_rec.pricing_request_type;
159 	end if;
160 
161 	If ((p_control_rec.CALCULATE_TAX_FLAG = null) or (p_control_rec.CALCULATE_TAX_FLAG = FND_API.G_MISS_CHAR)) then
162 			l_CALCULATE_TAX_FLAG := ' ';
163 	else
164 			l_CALCULATE_TAX_FLAG := p_control_rec.CALCULATE_TAX_FLAG;
165 	end if;
166 
167 	If ((p_control_rec.calculate_freight_charge_flag = null) or (p_control_rec.calculate_freight_charge_flag = FND_API.G_MISS_CHAR)) then
168 			l_calc_freight_charge_flag := ' ';
169 	else
170 			l_calc_freight_charge_flag := p_control_rec.calculate_freight_charge_flag;
171 	end if;
172 
173 	If ((p_control_rec.auto_version_flag = null) or (p_control_rec.auto_version_flag = FND_API.G_MISS_CHAR)) then
174 			l_auto_version_flag := ' ';
175 	else
176 			l_auto_version_flag := p_control_rec.auto_version_flag;
177 	end if;
178 
179 	If ((p_control_rec.copy_task_flag = null) or (p_control_rec.copy_task_flag = FND_API.G_MISS_CHAR)) then
180 			l_copy_task_flag := ' ';
181 	else
182 			l_copy_task_flag := p_control_rec.copy_task_flag;
183 	end if;
184 
185 	If ((p_control_rec.copy_notes_flag  = null) or (p_control_rec.copy_notes_flag  = FND_API.G_MISS_CHAR)) then
186 			l_copy_notes_flag  := ' ';
187 	else
188 			l_copy_notes_flag  := p_control_rec.copy_notes_flag ;
189 	end if;
190 
191 	If ((p_control_rec.copy_att_flag = null) or (p_control_rec.copy_att_flag = FND_API.G_MISS_CHAR)) then
192 			l_copy_att_flag := ' ';
193 	else
194 			l_copy_att_flag := p_control_rec.copy_att_flag;
195 	end if;
196 
197      --Defaulting Framework changes
198 	If ((p_control_rec.DEPENDENCY_FLAG is NULL ) or (p_control_rec.DEPENDENCY_FLAG = FND_API.G_MISS_CHAR)) then
199 			l_DEPENDENCY_FLAG := ' ';
200 	else
201 			l_DEPENDENCY_FLAG := p_control_rec.DEPENDENCY_FLAG;
202 	End If;
203 
204 	If ((p_control_rec.DEFAULTING_FLAG IS NULL) or (p_control_rec.DEFAULTING_FLAG = FND_API.G_MISS_CHAR)) then
205 			l_DEFAULTING_FLAG := ' ';
206 	else
207 			l_DEFAULTING_FLAG := p_control_rec.DEFAULTING_FLAG;
208 	End If;
209 
210 	If ((p_control_rec.DEFAULTING_FWK_FLAG IS NULL) or (p_control_rec.DEFAULTING_FWK_FLAG = FND_API.G_MISS_CHAR)) then
211 			l_DEFAULTING_FWK_FLAG := ' ';
212 	else
213 			l_DEFAULTING_FWK_FLAG := p_control_rec.DEFAULTING_FWK_FLAG;
214 	End If;
215 
216 	If ((p_control_rec.APPLICATION_TYPE_CODE IS NULL) or (p_control_rec.APPLICATION_TYPE_CODE = FND_API.G_MISS_CHAR)) then
217 			l_APPLICATION_TYPE_CODE := ' ';
218 	else
219 			l_APPLICATION_TYPE_CODE := p_control_rec.APPLICATION_TYPE_CODE;
220 	End If;
221 
222 
223 
224 	If 	(p_qte_header_rec.Pricing_status_indicator = null) then
225 			l_Pricing_status_indicator := ' ';
226 	elsif (p_qte_header_rec.Pricing_status_indicator = FND_API.G_MISS_CHAR) then
227 			l_Pricing_status_indicator := 'G_MISS_CHAR';
228 	else
229 			l_Pricing_status_indicator := p_qte_header_rec.Pricing_status_indicator;
230 	end if;
231 
232 	If (p_qte_header_rec.tax_status_indicator = null) then
233 			l_tax_status_indicator := ' ';
234 	elsif (p_qte_header_rec.tax_status_indicator = FND_API.G_MISS_CHAR) then
235 			l_tax_status_indicator := 'G_MISS_CHAR';
236 	else
237 			l_tax_status_indicator := p_qte_header_rec.tax_status_indicator;
238 	end if;
239 
240 
241 	-- Change START
242 	-- Release 12 MOAC Changes : Bug 4500739
243 	-- Changes Done by : Girish
244 	-- Comments : Setting the org id context before submitting the request
245 
246 	l_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID;
247 	IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
248 		aso_debug_pub.add('ASO_CONC_REQ: Submit_request:Org ID:'|| l_org_id,1,'N');
249 	END IF;
250 	fnd_request.set_org_id(l_org_id);
251 
252 	-- Change END
253 
254 	lx_request_id := fnd_request.submit_request
255 	(	Application	=>	'ASO',
256 		Program		=>	'ASOBTPRC',
257 		Description	=>	null,
258 		Start_time	=>	null,
259 		Sub_request	=>	FALSE,
260 		Argument1		=>	p_qte_header_rec.quote_header_id,
261 		Argument2		=>	l_header_pricing_event,
262 		Argument3		=>	l_pricing_request_type,
263 		Argument4		=>	l_calculate_tax_flag,
264 		Argument5		=>	l_calc_freight_charge_flag,
265 		Argument6		=>	p_control_rec.price_mode,
266 		Argument7		=>	l_auto_version_flag,
267 		Argument8		=>	l_copy_task_flag,
268 		Argument9		=>	l_copy_notes_flag,
269 		Argument10	=>	l_copy_att_flag,
270 		Argument11	=>	l_pricing_status_indicator,
271 		Argument12	=>	l_tax_status_indicator,
272 		Argument13	=>	l_DEPENDENCY_FLAG,
273 		Argument14	=>	l_DEFAULTING_FLAG,
274 		Argument15	=>	l_DEFAULTING_FWK_FLAG,
275 		Argument16	=>	l_APPLICATION_TYPE_CODE);
276 
277 
278 	if lx_request_id = 0 then
279 		fnd_file.put_line(FND_FILE.LOG,'Error in submitting concurrent request');
280 		errbuf  := FND_MESSAGE.GET;
281 		fnd_message.set_name('ASO', errbuf);
282 		FND_MSG_PUB.Add;
283 		raise FND_API.G_EXC_ERROR;
284 	end if;
285 
286 /*******************************************************
287  Update quote with Price_request_id
288 *******************************************************/
289 
290 	l_qte_header_rec				:= p_qte_header_rec;
291 	l_qte_header_rec.price_request_id		:= lx_request_id;
292 	l_qte_header_rec.pricing_status_indicator	:= FND_API.G_MISS_CHAR;
293 	l_qte_header_rec.tax_status_indicator		:= FND_API.G_MISS_CHAR;
294 
295 ASO_QUOTE_PUB.Update_Quote(
296 	p_api_version_number		=> 1.0,
297 	p_init_msg_list			=> FND_API.G_FALSE,
298 	p_commit			=> FND_API.G_FALSE,
299     	P_Validation_Level		=> FND_API.G_VALID_LEVEL_FULL,
300 	p_control_rec			=> l_control_rec,
301     	p_qte_header_rec		=> l_qte_header_rec,
302 	P_hd_Price_Attributes_Tbl 	=> l_hd_Price_Attributes_Tbl,
303 	P_hd_Payment_Tbl		=> l_hd_Payment_Tbl,
304      P_hd_Shipment_Tbl		=> l_hd_Shipment_Tbl,
305      P_hd_Freight_Charge_Tbl		=> l_hd_Freight_Charge_Tbl,
306      P_hd_Tax_Detail_Tbl		=> l_hd_Tax_Detail_Tbl,
307      P_hd_Attr_Ext_Tbl		=> l_hd_Attr_Ext_Tbl,
308      P_hd_Sales_Credit_Tbl		=> l_hd_Sales_Credit_Tbl,
309      P_hd_Quote_Party_Tbl		=> l_hd_Quote_Party_Tbl,
310      P_Qte_Line_Tbl			=> l_Qte_Line_Tbl,
311      P_Qte_Line_Dtl_Tbl		=> l_Qte_Line_Dtl_Tbl,
312      P_Line_Attr_Ext_Tbl		=> l_Line_Attr_Ext_Tbl,
313      P_line_rltship_tbl		=> l_line_rltship_tbl,
314      P_Price_Adjustment_Tbl		=> l_Price_Adjustment_Tbl,
315      P_Price_Adj_Attr_Tbl		=> l_Price_Adj_Attr_Tbl,
316      P_Price_Adj_Rltship_Tbl		=> l_Price_Adj_Rltship_Tbl,
317      P_Ln_Price_Attributes_Tbl	=> l_Ln_Price_Attributes_Tbl,
318      P_Ln_Payment_Tbl		=> l_Ln_Payment_Tbl,
319      P_Ln_Shipment_Tbl		=> l_Ln_Shipment_Tbl,
320      P_Ln_Freight_Charge_Tbl		=> l_Ln_Freight_Charge_Tbl,
321      P_Ln_Tax_Detail_Tbl		=> l_Ln_Tax_Detail_Tbl,
322      P_ln_Sales_Credit_Tbl		=> l_ln_Sales_Credit_Tbl,
323      P_ln_Quote_Party_Tbl		=> l_ln_Quote_Party_Tbl,
324      X_Qte_Header_Rec		=> lx_qte_header_rec,
325      X_Qte_Line_Tbl			=> lx_Qte_Line_Tbl,
326      X_Qte_Line_Dtl_Tbl		=> lx_Qte_Line_Dtl_Tbl,
327      X_hd_Price_Attributes_Tbl	=> lx_hd_Price_Attr_Tbl,
328      X_hd_Payment_Tbl		=> lx_hd_Payment_Tbl,
329      X_hd_Shipment_Tbl		=> lx_hd_Shipment_Tbl,
330     	X_hd_Freight_Charge_Tbl		=> lx_hd_Freight_Charge_Tbl,
331      X_hd_Tax_Detail_Tbl		=> lx_hd_Tax_Detail_Tbl,
332      X_hd_Attr_Ext_Tbl        	=> lX_hd_Attr_Ext_Tbl,
333      X_hd_Sales_Credit_Tbl    	=> lx_hd_Sales_Credit_Tbl,
334      X_hd_Quote_Party_Tbl     	=> lx_Quote_Party_Tbl,
335      X_Line_Attr_Ext_Tbl      	=> lx_Line_Attr_Ext_Tbl,
336      X_line_rltship_tbl       	=> lx_line_rltship_tbl,
337      X_Price_Adjustment_Tbl   	=> lx_Price_Adjustment_Tbl,
338      X_Price_Adj_Attr_Tbl     	=> lx_Price_Adj_Attr_Tbl,
339     	X_Price_Adj_Rltship_Tbl  	=> lx_Price_Adj_Rltship_Tbl,
340      X_ln_Price_Attributes_Tbl	=> lx_ln_Price_Attr_Tbl,
341      X_ln_Payment_Tbl         	=> lx_ln_Payment_Tbl,
342      X_ln_Shipment_Tbl        	=> lx_ln_Shipment_Tbl,
343      X_ln_Freight_Charge_Tbl  	=> lx_ln_Freight_Charge_Tbl,
344      X_ln_Tax_Detail_Tbl      	=> lx_ln_Tax_Detail_Tbl,
345      X_Ln_Sales_Credit_Tbl    	=> lX_Ln_Sales_Credit_Tbl,
346      X_Ln_Quote_Party_Tbl     	=> lX_Ln_Quote_Party_Tbl,
347      X_Return_Status          	=> x_Return_Status,
348      X_Msg_Count              	=> x_Msg_Count,
349      X_Msg_Data               	=> x_Msg_Data);
350 
351 
352 IF x_return_status = FND_API.G_RET_STS_ERROR then
353           x_request_id := null;
354           raise FND_API.G_EXC_ERROR;
355 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
356           x_request_id := null;
357           raise FND_API.G_EXC_UNEXPECTED_ERROR;
358 END IF;
359 
360 		x_request_id := lx_request_id;
361 		commit work;
362 
363 Exception
364 
365     WHEN FND_API.G_EXC_ERROR THEN
366         x_return_status := FND_API.G_RET_STS_ERROR;
367 
368         ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
369              P_API_NAME => L_API_NAME
370             ,P_PKG_NAME => G_PKG_NAME
371             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
372             ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
373             ,X_MSG_COUNT => X_MSG_COUNT
374             ,X_MSG_DATA => X_MSG_DATA
375             ,X_RETURN_STATUS => X_RETURN_STATUS);
376 
377     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
378         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
379 
380 
381         ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
382              P_API_NAME => L_API_NAME
383             ,P_PKG_NAME => G_PKG_NAME
384             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
385             ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
386             ,X_MSG_COUNT => X_MSG_COUNT
387             ,X_MSG_DATA => X_MSG_DATA
388             ,X_RETURN_STATUS => X_RETURN_STATUS);
389 
390     WHEN OTHERS THEN
391         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
392 
393         ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
394              P_API_NAME => L_API_NAME
395             ,P_PKG_NAME => G_PKG_NAME
396             ,P_SQLERRM  => sqlerrm
397             ,P_SQLCODE  => sqlcode
398             ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
399             ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
400             ,X_MSG_COUNT => X_MSG_COUNT
401             ,X_MSG_DATA => X_MSG_DATA
402             ,X_RETURN_STATUS => X_RETURN_STATUS);
403 
404 end Submit_price_tax_req;
405 
406 /*******************************************************
407 Procedure to call pricing
408 ********************************************************/
409 
410 procedure batch_pricing(
411          	errbuf				 OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
412 	 	retcode				 OUT NOCOPY /* file.sql.39 change */  Number,
413   	  	p_quote_header_id			IN	Number,
414          	p_header_pricing_event		IN	VARCHAR2,
415 		p_pricing_request_type		IN	VARCHAR2,
416 		p_calculate_tax_flag		IN	VARCHAR2,
417 		p_calc_freight_charge_flag	IN	VARCHAR2,
418 		p_price_mode				IN	VARCHAR2,
419 		p_auto_version_flag			IN	VARCHAR2,
420          	p_copy_task_flag			IN	VARCHAR2,
421          	p_copy_notes_flag			IN	VARCHAR2,
422          	p_copy_att_flag			IN	VARCHAR2,
423 		p_PRICING_STATUS_INDICATOR	IN	VARCHAR2,
424 		p_TAX_STATUS_INDICATOR		IN	VARCHAR2,
425 		p_DEPENDENCY_FLAG			IN	VARCHAR2,
426          	p_DEFAULTING_FLAG			IN	VARCHAR2,
427          	p_DEFAULTING_FWK_FLAG		IN	VARCHAR2,
428          	p_APPLICATION_TYPE_CODE		IN	VARCHAR2
429 
430 ) is
431 
432 l_api_name        	CONSTANT VARCHAR2(30) := 'batch_pricing';
433 l_subject 	    	VARCHAR2(2000);
434 l_body   	      	VARCHAR2(2000);
435 l_quote_name    	VARCHAR2(240);
436 l_org_id		VARCHAR2(240);
437 l_qte_header_rec  	ASO_QUOTE_PUB.Qte_Header_Rec_Type:=ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec;
438 x_return_status   	VARCHAR2(1);
439 l_last_update_date	DATE;
440 x_msg_count       	Number;
441 l_request_id       	Number;
442 x_msg_index        	Number;
443 x_Msg_Data        	VARCHAR2(2000);
444 l_control_rec     	ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_Miss_Control_Rec;
445 
446 l_qte_line_dtl_tbl        	ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
447 l_ln_shipment_tbl	      	ASO_QUOTE_PUB.Shipment_Tbl_Type;
448 lx_Qte_Line_Tbl           	ASO_QUOTE_PUB.Qte_line_tbl_type;
449 lx_Qte_Line_Dtl_Tbl       	ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
450 lx_qte_header_rec         	ASO_QUOTE_PUB.Qte_Header_Rec_Type;
451 lx_hd_Price_Attr_Tbl      	ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
452 lx_hd_payment_tbl         	ASO_QUOTE_PUB.Payment_Tbl_Type;
453 lx_hd_shipment_tbl        	ASO_QUOTE_PUB.Shipment_Tbl_Type;
454 lx_hd_freight_charge_tbl  	ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
455 lx_hd_tax_detail_tbl      	ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
456 lX_hd_Attr_Ext_Tbl        	ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
457 lx_Line_Attr_Ext_Tbl      	ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
458 lx_line_rltship_tbl       	ASO_QUOTE_PUB.Line_Rltship_Tbl_Type;
459 lx_Price_Adjustment_Tbl   	ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
460 lx_Price_Adj_Attr_Tbl     	ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
461 lx_price_adj_rltship_tbl  	ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
462 lx_hd_Sales_Credit_Tbl    	ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
463 lx_Quote_Party_Tbl        	ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
464 lX_Ln_Sales_Credit_Tbl    	ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
465 lX_Ln_Quote_Party_Tbl     	ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
466 lx_ln_Price_Attr_Tbl      	ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
467 lx_ln_payment_tbl         	ASO_QUOTE_PUB.Payment_Tbl_Type;
468 lx_ln_shipment_tbl        	ASO_QUOTE_PUB.Shipment_Tbl_Type;
469 lx_ln_freight_charge_tbl  	ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
470 lx_ln_tax_detail_tbl      	ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
471 
472 Begin
473 
474 SAVEPOINT Batch_Pricing_INT;
475 /*******************************************************
476  Call update quote with pricing parameters
477 ********************************************************/
478 FND_FILE.PUT_LINE(FND_FILE.LOG,'Quote Header Id for Batch Pricing='||p_quote_header_id);
479 
480 Begin
481 
482    begin
483      SELECT a.quote_name ,a.price_request_id, a.org_id into l_quote_name ,l_request_id, l_org_id
484      FROM ASO_QUOTE_HEADERS_ALL a
485      WHERE a.quote_header_id = p_quote_header_id;
486    end;
487 
488 FND_FILE.PUT_LINE(FND_FILE.LOG,l_quote_name);
489 
490  exception when no_data_found then
491    	x_return_status := FND_API.G_RET_STS_ERROR;
492 
493 end;
494 
495   begin
496      SELECT a.last_update_date into l_last_update_date
497      FROM ASO_QUOTE_HEADERS_ALL a
498      WHERE a.quote_header_id = p_quote_header_id;
499    end;
500 
501 
502     l_qte_header_rec.batch_price_flag			:= FND_API.G_FALSE;
503     l_qte_header_rec.quote_header_id			:= p_quote_header_id;
504     l_qte_header_rec.last_update_date			:= l_last_update_date;
505 
506 	if p_pricing_status_indicator = 'G_MISS_CHAR' then
507 		l_qte_header_rec.pricing_status_indicator	:= FND_API.G_MISS_CHAR;
508 	else
509 		l_qte_header_rec.pricing_status_indicator    := p_pricing_status_indicator;
510 	end if;
511 
512 	if p_tax_status_indicator = 'G_MISS_CHAR' then
513 		l_qte_header_rec.tax_status_indicator        := FND_API.G_MISS_CHAR;
514 	else
515 		l_qte_header_rec.tax_status_indicator		:= p_tax_status_indicator;
516 	end if;
517 
518     l_control_rec.header_pricing_event			:= p_header_pricing_event;
519     l_control_rec.pricing_request_type			:= p_pricing_request_type;
520     l_control_rec.CALCULATE_TAX_FLAG			:= p_calculate_tax_flag;
521     l_control_rec.calculate_freight_charge_flag	:= p_calc_freight_charge_flag;
522     l_control_rec.price_mode				:= p_price_mode ;
523     l_control_rec.auto_version_flag			:= p_auto_version_flag;
524     l_control_rec.copy_task_flag			:= p_copy_task_flag;
525     l_control_rec.copy_notes_flag			:= p_copy_notes_flag;
526     l_control_rec.copy_att_flag				:= p_copy_att_flag;
527     l_control_rec.dependency_flag			:= p_dependency_flag;
528     l_control_rec.defaulting_flag			:= p_defaulting_flag;
529     l_control_rec.defaulting_fwk_flag		:= p_defaulting_fwk_flag;
530     l_control_rec.application_type_code		:= p_application_type_code;
531 
532 
533     mo_global.set_policy_context('S', l_org_id);
534 
535    FND_FILE.PUT_LINE(FND_FILE.LOG,'Before Update quote');
536    FND_FILE.PUT_LINE(FND_FILE.LOG,'Org ID : '||l_org_id);
537 
538    ASO_QUOTE_PUB.Update_Quote(
539           p_api_version_number     	=> 1.0,
540           p_init_msg_list			=> FND_API.G_FALSE,
541           p_commit                 	=> FND_API.G_false,
542           p_control_rec            	=> l_control_rec,
543           p_qte_header_rec         	=> l_qte_header_rec,
544           X_Qte_Header_Rec         	=> lx_qte_header_rec,
545           X_Qte_Line_Tbl           	=> lx_Qte_Line_Tbl,
546           X_Qte_Line_Dtl_Tbl       	=> lx_Qte_Line_Dtl_Tbl,
547           X_hd_Price_Attributes_Tbl 	=> lx_hd_Price_Attr_Tbl,
548           X_hd_Payment_Tbl         	=> lx_hd_Payment_Tbl,
549           X_hd_Shipment_Tbl        	=> lx_hd_Shipment_Tbl,
550           X_hd_Freight_Charge_Tbl  	=> lx_hd_Freight_Charge_Tbl,
551           X_hd_Tax_Detail_Tbl      	=> lx_hd_Tax_Detail_Tbl,
552           X_hd_Attr_Ext_Tbl        	=> lX_hd_Attr_Ext_Tbl,
553           X_hd_Sales_Credit_Tbl    	=> lx_hd_Sales_Credit_Tbl,
554           X_hd_Quote_Party_Tbl     	=> lx_Quote_Party_Tbl,
555           X_Line_Attr_Ext_Tbl      	=> lx_Line_Attr_Ext_Tbl,
556           X_line_rltship_tbl       	=> lx_line_rltship_tbl,
557           X_Price_Adjustment_Tbl   	=> lx_Price_Adjustment_Tbl,
558           X_Price_Adj_Attr_Tbl     	=> lx_Price_Adj_Attr_Tbl,
559           X_Price_Adj_Rltship_Tbl  	=> lx_Price_Adj_Rltship_Tbl,
560           X_ln_Price_Attributes_Tbl	=> lx_ln_Price_Attr_Tbl,
561           X_ln_Payment_Tbl         	=> lx_ln_Payment_Tbl,
562           X_ln_Shipment_Tbl        	=> lx_ln_Shipment_Tbl,
563           X_ln_Freight_Charge_Tbl  	=> lx_ln_Freight_Charge_Tbl,
564           X_ln_Tax_Detail_Tbl      	=> lx_ln_Tax_Detail_Tbl,
565           X_Ln_Sales_Credit_Tbl    	=> lX_Ln_Sales_Credit_Tbl,
569           X_Msg_Data               	=> x_Msg_Data);
566           X_Ln_Quote_Party_Tbl     	=> lX_Ln_Quote_Party_Tbl,
567           X_Return_Status          	=> x_Return_Status,
568           X_Msg_Count              	=> x_Msg_Count,
570 
571         FND_FILE.PUT_LINE(FND_FILE.LOG,X_Return_Status);
572 
573         x_msg_index := 1;
574 
575           while x_msg_count > 0 loop
576                 x_msg_data := fnd_msg_pub.get(x_msg_index,
577                                          fnd_api.g_false);
578                 FND_FILE.PUT_LINE(FND_FILE.LOG,x_msg_data);
579                 x_msg_index := x_msg_index + 1;
580                 x_msg_count := x_msg_count - 1;
581           end loop;
582 
583 /********************************************************
584  Send Notification on completion
585 *********************************************************/
586 
587    If  x_return_status = FND_API.G_RET_STS_ERROR  then
588 	     fnd_message.set_name('ASO','ASO_PRICE_REQ_COM_SUB');
589 		fnd_message.set_token('QUOTE_NAME',l_quote_name);
590 	   	fnd_message.set_token('REQUEST_ID',l_request_id);
591 
592 		l_subject  :=  fnd_message.get ;
593 
594 	   	FND_FILE.PUT_LINE(FND_FILE.LOG,l_subject);
595 
596 		fnd_message.set_name('ASO','ASO_PRICE_REQ_COM_ERR_BODY');
597 		l_body     :=  fnd_message.get ;
598 
599 	   	FND_FILE.PUT_LINE(FND_FILE.LOG,l_body);
600 
601   elsif   x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
602           fnd_message.set_name('ASO','ASO_PRICE_REQ_COM_SUB');
603 		fnd_message.set_token('QUOTE_NAME',l_quote_name);
604 		fnd_message.set_token('REQUEST_ID',l_request_id);
605 
606 		l_subject  :=  fnd_message.get ;
607 
608 		FND_FILE.PUT_LINE(FND_FILE.LOG,l_subject);
609 
610 		fnd_message.set_name('ASO','ASO_PRICE_REQ_COM_ERR_BODY');
611 		l_body     :=  fnd_message.get ;
612 
613 		FND_FILE.PUT_LINE(FND_FILE.LOG,l_body);
614    else
615     		fnd_message.set_name('ASO','ASO_PRICE_REQ_COM_SUB');
616     		fnd_message.set_token('QUOTE_NAME',l_quote_name);
617         	fnd_message.set_token('REQUEST_ID',l_request_id);
618     		l_subject  :=  fnd_message.get ;
619 
620         	FND_FILE.PUT_LINE(FND_FILE.LOG,l_subject);
621 
622     		fnd_message.set_name('ASO','ASO_PRICE_REQ_COM_BODY');
623     		l_body     :=  fnd_message.get ;
624 
625         	FND_FILE.PUT_LINE(FND_FILE.LOG,l_body);
626 
627    end if;
628 
629 IF x_return_status = FND_API.G_RET_STS_ERROR then
630         rollback;
631 elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
632         rollback;
633 else
634 	commit work;
635 END IF;
636 
637   Send_notification(
638    p_quote_header_id    	=>  p_quote_header_id,
639    p_subject        	=>  l_subject,
640    p_body           	=>  l_body);
641 
642    FND_FILE.PUT_LINE(FND_FILE.LOG,'After Notification');
643 
644  EXCEPTION
645     WHEN FND_API.G_EXC_ERROR THEN
646         x_return_status := FND_API.G_RET_STS_ERROR;
647 
648         ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
649              P_API_NAME => L_API_NAME
650             ,P_PKG_NAME => G_PKG_NAME
651             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
652             ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
653             ,X_MSG_COUNT => X_MSG_COUNT
654             ,X_MSG_DATA => X_MSG_DATA
655             ,X_RETURN_STATUS => X_RETURN_STATUS);
656 
657     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
658         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
659 
660 
661         ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
662              P_API_NAME => L_API_NAME
663             ,P_PKG_NAME => G_PKG_NAME
664             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
665             ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
666             ,X_MSG_COUNT => X_MSG_COUNT
667             ,X_MSG_DATA => X_MSG_DATA
668             ,X_RETURN_STATUS => X_RETURN_STATUS);
669 
670     WHEN OTHERS THEN
671         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
672 
673         ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
674              P_API_NAME => L_API_NAME
675             ,P_PKG_NAME => G_PKG_NAME
676             ,P_SQLERRM  => sqlerrm
677             ,P_SQLCODE  => sqlcode
678             ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
679             ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
680             ,X_MSG_COUNT => X_MSG_COUNT
681             ,X_MSG_DATA => X_MSG_DATA
682             ,X_RETURN_STATUS => X_RETURN_STATUS);
683 end  batch_pricing;
684 
685 
686 /*******************************************************
687  Procedure to cancel request
688 *******************************************************/
689 
690 
691 Procedure  Cancel_price_tax_req(
692 		P_Api_Version_Number    	IN   NUMBER,
693 		P_Init_Msg_List         	IN   VARCHAR2	:= FND_API.G_FALSE,
694 		p_qte_header_rec		IN   ASO_QUOTE_PUB.Qte_Header_Rec_Type,
695 		x_return_status	 OUT NOCOPY /* file.sql.39 change */   VARCHAR2,
696 		x_msg_count		 OUT NOCOPY /* file.sql.39 change */   Number,
697 		x_msg_data		 OUT NOCOPY /* file.sql.39 change */   VARCHAR2
698           ) is
699 
700 Cursor find_quote_csr(p_quote_header_id  IN   Number) is
701 
702 select a.quote_name,a.price_request_id from aso_quote_headers_all a
703 where  a.quote_header_id = p_quote_header_id;
704 
705 L_API_VERSION   	CONSTANT    NUMBER    := 1.0;
706 l_api_name        	CONSTANT VARCHAR2(30) := 'Cancel_price_tax_req';
707 l_subject          	VARCHAR2(2000);
708 l_body             	VARCHAR2(2000);
709 l_quote_name      	VARCHAR2(240);
710 l_quote_header_id  	Number;
711 l_result           	boolean  := TRUE;
712 lx_msg_data        	VARCHAR2(2000);
713 errbuf			VARCHAR2(2000);
714 l_request_id       	Number;
715 
716 Begin
717 
718 /*******************************************************
719  Initiate Cancel request
720 *******************************************************/
721    Savepoint Cancel_price_tax_req_INT;
722 
723 	-- Standard call to check for call compatibility.
724 	IF NOT FND_API.Compatible_API_Call(
725 		L_API_VERSION       ,
726 		P_API_VERSION_NUMBER,
727 		L_API_NAME          ,
728 		G_PKG_NAME
729 							  ) THEN
730 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
731 	END IF;
732 
733 	-- Initialize message list if p_init_msg_list is set to TRUE.
734 	IF FND_API.To_Boolean(p_init_msg_list) THEN
735 		FND_Msg_Pub.initialize;
736 	END IF;
737 
738    x_return_status := FND_API.G_RET_STS_SUCCESS;
739 
740    x_msg_count := 0;
741 
742 	    Open find_quote_csr(p_qte_header_rec.quote_header_id);
743 
744 		    fetch find_quote_csr  into l_quote_name,l_request_id;
745 
746 	IF (find_quote_csr%NOTFOUND or l_request_id is null) THEN
747 		CLOSE find_quote_csr;
748 		x_return_status := FND_API.G_RET_STS_ERROR;
749 		IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
750 			FND_MESSAGE.Set_Name('ASO', 'ASO_CONC_REQUEST_NOT_FOUND');
751 			FND_MSG_PUB.ADD;
752 		END IF;
753 
754 		raise FND_API.G_EXC_ERROR;
755 	END IF;
756 
757 	close find_quote_csr  ;
758 
759 l_quote_header_id := p_qte_header_rec.quote_header_id;
760 
761 l_result := FND_CONCURRENT.cancel_request(request_id	=> 	l_request_id,
762                                           message		=> 	lx_msg_data);
763 
764 if  not (l_result) then
765  	errbuf  := FND_MESSAGE.GET;
766  	fnd_message.set_name('ASO',errbuf);
767  	FND_MSG_PUB.Add;
768 end if;
769 
770 
771 /*******************************************************
772  Send Notification on completion
773 *******************************************************/
774 
775     fnd_message.set_name('ASO','ASO_PRICE_REQ_CANCELED_SUB');
776     fnd_message.set_token('QUOTE_NAME',l_quote_name);
777     fnd_message.set_token('REQUEST_ID',l_request_id);
778 
779     l_subject  :=  fnd_message.get ;
780 
781     fnd_message.set_name('ASO','ASO_PRICE_REQ_CANCELED_BODY');
782 
783     l_body     :=  fnd_message.get ;
784 
785   Send_notification(
786    p_quote_header_id	=>  l_quote_header_id,
787    p_subject			=>  l_subject,
788    p_body				=>  l_body);
789 
790 if  not (l_result) then
791  	raise FND_API.G_EXC_ERROR;
792 end if;
793 
794 EXCEPTION
795     WHEN FND_API.G_EXC_ERROR THEN
796         x_return_status := FND_API.G_RET_STS_ERROR;
797 
798         ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
799              P_API_NAME => L_API_NAME
800             ,P_PKG_NAME => G_PKG_NAME
801             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
802             ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
803             ,X_MSG_COUNT => X_MSG_COUNT
804             ,X_MSG_DATA => X_MSG_DATA
805             ,X_RETURN_STATUS => X_RETURN_STATUS);
806 
807     WHEN OTHERS THEN
808         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
809 
810         ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
811              P_API_NAME => L_API_NAME
812             ,P_PKG_NAME => G_PKG_NAME
813             ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
814             ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_INT
815             ,X_MSG_COUNT => X_MSG_COUNT
816             ,X_MSG_DATA => X_MSG_DATA
817             ,X_RETURN_STATUS => X_RETURN_STATUS);
818 
819 end Cancel_price_tax_req;
820 
821 
822 /********************************************************
823  Procedure to get role for sending notification
824  ********************************************************/
825 
826 Procedure Get_Workflow_Role(p_user_id  				IN   Number,
827                             x_wf_role 			 OUT NOCOPY /* file.sql.39 change */   VARCHAR2,
828                             x_notification_preference  OUT NOCOPY /* file.sql.39 change */   VARCHAR2) IS
829 
830 l_forward_displayname VARCHAR2(100);
831 l_person_id Number;
832 l_email_address VARCHAR2(100);
833 l_language VARCHAR2(100);
834 l_territory VARCHAR2(100);
835 
836 Cursor find_person_id is
837 select employee_id from fnd_user
838 where user_id = p_user_id;
839 
840 Begin
841      Open find_person_id;
842 
843      fetch find_person_id  into l_person_id;
844 
845             IF (find_person_id%NOTFOUND or l_person_id is null)  THEN
846                wf_directory.GetRoleName(
847 				p_orig_system		=>	'FND_USR',
848 				p_orig_system_id	=>	p_user_id,
849 				p_name			=>	x_wf_role,
850 				p_display_name		=>	l_forward_displayname );
851             else
852                 wf_directory.GetRoleName(
853 			 	p_orig_system		=>	'PER',
854 				p_orig_system_id	=>	l_person_id,
855 			 	p_name			=>	x_wf_role,
856 			 	p_display_name		=>	l_forward_displayname );
857             END IF;
858      Close find_person_id  ;
859 
860      wf_directory.GetRoleInfo(
861 		role					=>	x_wf_role,
862 		display_name			=>	l_forward_displayname,
863 		email_address			=>	l_email_address,
864 		notification_preference	=>	x_notification_preference,
865 		language				=>	l_language,
866 		territory				=>	l_territory);
867 
868 
869 END Get_Workflow_Role;
870 
871 
872  /********************************************************
873  Update price_request_id in ASO_QUOTE_HEADERS_ALL
874  ********************************************************/
875 
876 procedure Update_price_req_id(p_quote_header_id   IN  Number) is
877 
878 G_USER_ID                     NUMBER := FND_GLOBAL.USER_ID;
879 G_LOGIN_ID                    NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
880 l_last_update_date            Date := SYSDATE;
881 
882 Begin
883 
884 Update ASO_QUOTE_HEADERS_ALL
885 set price_request_id = null,
886 last_update_date = l_last_update_date,
887 object_version_number = object_version_number + 1,
888 last_updated_by = G_USER_ID,
889 last_update_login = G_LOGIN_ID
890 where quote_header_id =p_quote_header_id;
891 
892 end Update_price_req_id;
893 
894 /********************************************************
895  Procedure to send notification
896  ********************************************************/
897 
898 Procedure Send_notification(
899                 p_quote_header_id 	IN  Number,
900                 p_subject       	IN  VARCHAR2,
901                 p_body          	IN  VARCHAR2) is
902 
903 wf_itemkey_seq    	INTEGER;
904 wf_itemkey        	VARCHAR2(30);
905 lx_wf_role         	VARCHAR2(30);
906 l_user_id Number := FND_GLOBAL.USER_ID;
907 lx_notification_preference    VARCHAR2(30);
908 lx_document   	VARCHAR2(2000);
909 lx_document_type   	VARCHAR2(2000);
910 l_qte_number        number;
911 
912 cursor c_get_qte_number is
913 select quote_number
914 from aso_quote_headers_all
915 where quote_header_id = p_quote_header_id;
916 
917 
918 Begin
919 
920    Get_Workflow_Role(
921 	p_user_id					=>	l_user_id,
922 	x_wf_role					=>	lx_wf_role,
923 	x_notification_preference	=>	lx_notification_preference);
924 
925 
926    select ASO_WFNOTIFICATION_S2.NEXTVAL into wf_itemkey_seq from dual;
927 
928    wf_itemkey := 'ASO_NTFY' || wf_itemkey_seq;
929 
930 
931    wf_engine.CreateProcess( itemtype 	=> 'ASO_NTFY',
932 		            itemkey 		=>  wf_itemkey,
933 		            process  		=> 'ASO_SEND_NTFY' );
934 
935    wf_engine.SetItemAttrText( itemtype 	=> 'ASO_NTFY',
936 		              itemkey 		=>  wf_itemkey,
937 		              aname   		=> 'ROLE_TO_NOTIFY',
938 		              avalue   		=>  lx_wf_role );
939 
940    wf_engine.SetItemAttrText( itemtype 	=> 'ASO_NTFY',
941 		              itemkey 		=>  wf_itemkey,
942 		              aname   		=> 'NOTIFICATION_SUBJECT',
943 		              avalue   		=>  p_subject );
944 
945    wf_engine.SetItemAttrText( itemtype  => 'ASO_NTFY',
946 		              itemkey   		=>  wf_itemkey,
947 		              aname     		=> 'NOTIFICATION_BODY',
948 		              avalue    		=>  p_body );
949 
950 
951    wf_engine.SetItemAttrText(
952                         itemtype                     => 'ASO_NTFY',
953                         itemkey                      => wf_itemkey,
954                         aname                        => 'SEQID',
955                         avalue                       => wf_itemkey
956                         );
957 
958 
959    wf_engine.SetItemAttrNumber (
960                         itemtype                     => 'ASO_NTFY',
961                         itemkey                      => wf_itemkey,
962                         aname                        => 'QTEHDRID',
963                         avalue                       => p_quote_header_id
964                         );
965 
966 
967     open c_get_qte_number;
968     fetch c_get_qte_number into l_qte_number;
969     close c_get_qte_number;
970 
971    wf_engine.SetItemAttrNumber (
972                         itemtype                     => 'ASO_NTFY',
973                         itemkey                      => wf_itemkey,
974                         aname                        => 'QTENUMBER',
975                         avalue                       => l_qte_number
976                         );
977 
978 
979    wf_engine.SetItemOwner( itemtype 	=> 'ASO_NTFY',
980 		       	   itemkey  		=>  wf_itemkey,
981        		  	   owner    		=>  lx_wf_role );
982 
983 
984    wf_engine.StartProcess(itemtype => 'ASO_NTFY',
985 		          itemkey  		=>  wf_itemkey );
986 
987 
988    Update_price_req_id(p_quote_header_id     => p_quote_header_id);
989 
990    end send_notification;
991 
992  /*************************************************************
993  Procedure to find  pending /running request for a given quote
994  **************************************************************/
995 
996 Procedure Lock_Exists(p_quote_header_id 	IN 	Number,
997 		          		x_status	 OUT NOCOPY /* file.sql.39 change */ 	 VARCHAR2) IS
998 
999 l_request_id    Number;
1000 
1001 Begin
1002 
1003 Select price_request_id into l_request_id   from aso_quote_headers_all
1004 Where quote_header_id =p_quote_header_id;
1005 
1006 If  l_request_id is null then
1007     x_status := FND_API.G_FALSE;
1008 Else
1009     x_status := FND_API.G_TRUE;
1010 End if;
1011 
1012 end Lock_Exists;
1013 
1014  /*************************************************************
1015  Procedure to create quote details URL
1016  **************************************************************/
1017 
1018 PROCEDURE quote_detail_url (p_quote_header_id     IN    Number,
1019                             p_display_type        IN    VARCHAR2,
1020                             x_document            OUT NOCOPY /* file.sql.39 change */    VARCHAR2) IS
1021 
1022     l_jsp_name                    VARCHAR2 (1000);
1023     l_url                         VARCHAR2 (100);
1024     l_attr_desc                   VARCHAR2 (100);
1025     l_quote_number                Number;
1026     l_party_number                VARCHAR2(30);
1027     l_party_type                  VARCHAR2 (30);
1028     p Number;
1029 
1030     CURSOR get_quote_details (p_quote_header_id  NUMBER ) IS
1031       SELECT qha.quote_number, hca.account_number,
1032       hp.party_type
1033       FROM aso_quote_headers_all qha,
1034       hz_parties hp,
1035       hz_cust_accounts hca
1036       WHERE qha.cust_account_id = hca.cust_account_id(+)
1037       AND hca.party_id = hp.party_id
1038       AND qha.party_id = hca.party_id
1039       AND qha.quote_header_id = p_quote_header_id;
1040 
1041   BEGIN
1042 
1043     -- get the quote header id
1044     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1045       aso_debug_pub.ADD ('Quote header ID is ' || p_quote_header_id,1,'N');
1046     END IF;
1047 
1048     -- get the server address
1049     l_url := fnd_web_config.jsp_agent ();
1050     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1051       aso_debug_pub.ADD ('URL ID is ' || l_url,1,'N');
1052     END IF;
1053 
1054     -- get the quote details
1055     OPEN get_quote_details (p_quote_header_id);
1056 
1057     FETCH get_quote_details INTO l_quote_number,
1058                                  l_party_number,
1059                                  l_party_type;
1060     CLOSE get_quote_details;
1061 
1062     -- get the jsp name
1063     l_jsp_name     := 'qotSZzpAppsLink.jsp?';
1064     l_jsp_name     := l_jsp_name || 'qotFrmMainFile=qotSZzdContainer.jsp';
1065     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotFrmDspFile=qotSCocOverview.jsp';
1066     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotFrmRefFile=qotSCocOverview.jsp';
1067     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotDetCode=QUOTE';
1068     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotPtyType='|| l_party_type;
1069     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotHdrId='|| p_quote_header_id;
1070 if l_party_number is not null then
1071     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotHdrAcctId='||l_party_number;
1072 end if;
1073     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotHdrNbr='|| l_quote_number;
1074     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotReqSetCookie=Y';
1075     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotFromApvlLink=Y';
1076 
1077     -- get the attribute label
1078     Begin
1079 	    fnd_message.set_name('ASO','ASO_QUOTE_DETAILS_URL');
1080     	    l_attr_desc     :=  fnd_message.get;
1081     end;
1082 
1083     -- Create an html text buffer
1084     IF (p_display_type = 'MAILHTML')
1085     THEN
1086       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1087         aso_debug_pub.ADD ('Display type is text/html',1,'N');
1088       END IF;
1089       x_document       := '<a href = "'|| l_url|| l_jsp_name|| '">'||l_attr_desc|| '</a>';
1090 
1091     END IF;
1092 
1093     -- Create a plain text buffer
1094 
1095     IF (p_display_type = 'MAILTEXT')
1096     THEN
1097       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1098         aso_debug_pub.ADD ('Display type is text/plain',1,'N');
1099       END IF;
1100       NULL;
1101     END IF;
1102 
1103     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1104       aso_debug_pub.ADD ('End QUOTE_DETAIL_URL procedure ',1,'N');
1105     END IF;
1106 
1107   EXCEPTION
1108     WHEN OTHERS
1109     THEN
1110       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1111         aso_debug_pub.ADD ('Exception in QUOTE_DETAIL_URL SqlCode :' || SQLERRM,1,'N');
1112       END IF;
1113 
1114       RAISE;
1115 
1116   END quote_detail_url;
1117 
1118  /*************************************************************
1119  Procedure to create quote details URL using Document
1120  **************************************************************/
1121 
1122 PROCEDURE qte_detail_url (
1123     document_id                 IN       VARCHAR2,
1124     display_type                IN       VARCHAR2,
1125     document                    IN OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
1126     document_type               IN OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1127   ) IS
1128     itemtype                      VARCHAR2 (30);
1129     itemkey                       VARCHAR2 (30);
1130     l_quote_header_id             NUMBER;
1131     l_jsp_name                    VARCHAR2 (1000);
1132     l_url                         VARCHAR2 (100);
1133     l_attr_desc                   VARCHAR2 (100);
1134     l_quote_number                Number;
1135     l_party_number                VARCHAR2(30);
1136     l_party_type                  VARCHAR2 (30);
1137     p Number;
1138     wf_itmkey_seq                 INTEGER;
1139     wf_itmkey                     VARCHAR2(30);
1140     l_error                       VARCHAR2(2000);
1141     l_org_id                      NUMBER;
1142 
1143      CURSOR get_quote_details (p_quote_header_id  NUMBER ) IS
1144      SELECT qha.quote_number, hca.account_number,
1145      hp.party_type,qha.org_id
1146      FROM aso_quote_headers_all qha,
1147      hz_parties hp,
1148      hz_cust_accounts hca
1149      WHERE qha.cust_account_id = hca.cust_account_id(+)
1150      AND qha.cust_party_id = hp.party_id
1151      AND qha.quote_header_id =p_quote_header_id;
1152 
1153   BEGIN
1154 
1155     -- get the server address
1156     l_url := fnd_web_config.jsp_agent ();
1157     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1158       aso_debug_pub.ADD ('URL ID is ' || l_url,1,'N');
1159     END IF;
1160 
1161    -- get the quote details
1162     itemtype       := 'ASO_NTFY';
1163     itemkey        :=  document_id;
1164 
1165 
1166     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1167       aso_debug_pub.ADD ('itemtype is ' || itemtype,1,'N');
1168       aso_debug_pub.ADD ('itemkey is ' || itemkey,1,'N');
1169     END IF;
1170 
1171     l_quote_header_id  := wf_engine.getitemattrnumber (
1172                         itemtype                     => itemtype,
1173                         itemkey                      => itemkey,
1174                         aname                        => 'QUOTEHDRID'
1175                       );
1176 
1177 
1178 
1179     OPEN get_quote_details (to_number(l_quote_header_id));
1180 
1181     FETCH get_quote_details INTO l_quote_number,
1182                                  l_party_number,
1183                                  l_party_type,
1184 						   l_org_id;
1185     CLOSE get_quote_details;
1186 
1187     -- get the jsp name
1188     l_jsp_name     := 'qotSZzpAppsLink.jsp?';
1189     l_jsp_name     := l_jsp_name || 'qotFrmMainFile=qotSZzdContainer.jsp';
1190     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotFrmDspFile=qotSCocOverview.jsp';
1191     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotFrmRefFile=qotSCocOverview.jsp';
1192     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotDetCode=QUOTE';
1193     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotPtyType='|| l_party_type;
1194     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotHdrId='|| l_quote_header_id;
1195 if l_party_number is not null then
1196     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotHdrAcctId='||l_party_number;
1197 end if;
1198     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotHdrNbr='|| l_quote_number;
1199     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotReqSetCookie=Y';
1200     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotFromApvlLink=Y';
1201     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotApvOrgId='|| l_org_id;
1202     l_jsp_name     := l_jsp_name|| fnd_global.local_chr (38)|| 'qotApvNotifId=&#NID';
1203 
1204     -- get the attribute label
1205     Begin
1206 	    fnd_message.set_name('ASO','ASO_QUOTE_DETAILS_URL');
1207     	    l_attr_desc     :=  fnd_message.get;
1208     end;
1209 
1210     -- Create an html text buffer
1211     IF (display_type = 'text/html')
1212     THEN
1213       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1214         aso_debug_pub.ADD ('Display type is text/html',1,'N');
1215       END IF;
1216       document       := '<a href = "'|| l_url|| l_jsp_name|| '">'||l_attr_desc|| '</a>';
1217       document_type  := 'text/html';
1218 
1219     END IF;
1220 
1221     -- Create a plain text buffer
1222 
1223     IF (display_type = 'text/plain')
1224     THEN
1225       document_type  := 'text/plain';
1226       IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1227         aso_debug_pub.ADD ('Display type is text/plain',1,'N');
1228       END IF;
1229       NULL;
1230     END IF;
1231 
1232     IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
1233       aso_debug_pub.ADD ('End QUOTE_DETAIL_URL procedure ',1,'N');
1234     END IF;
1235 
1236   EXCEPTION
1237     WHEN OTHERS
1238     THEN
1239    wf_core.context('ASO_CONC_REQ_INT', 'QTE_DETAIL_URL', document_id,
1240                     document_type, sqlerrm);
1241       RAISE;
1242 
1243   END qte_detail_url;
1244 
1245 
1246 
1247 end ASO_CONC_REQ_INT;
1248