DBA Data[Home] [Help]

PACKAGE BODY: APPS.ASO_QUOTE_PUB

Source


1 PACKAGE BODY ASO_QUOTE_PUB as
2 /* $Header: asopqteb.pls 120.3 2006/05/02 13:21:46 hagrawal ship $ */
3 -- Start of Comments
4 -- Package name     : ASO_QUOTE_PUB
5 -- Purpose          :
6 -- History          :
7 --                     12-16-04  skulkarn: fixed bug 4046692
8 -- NOTE             :
9 -- End of Comments
10 
11 
12 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_QUOTE_PUB';
13 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asopqteb.pls';
14 
15 
16 x_msg_count number;
17 x_msg_data varchar2(1000);
18 
19 PROCEDURE Convert_Party_To_Id (
20 	p_column_name	IN	VARCHAR2,
21 	p_party_type	IN	VARCHAR2,
22 	p_party_id	IN	NUMBER,
23 	p_party_name	IN	VARCHAR2,
24 	p_person_first_name	IN	VARCHAR2,
25 	p_person_middle_name	IN	VARCHAR2,
26 	p_person_last_name	IN	VARCHAR2,
27 	x_party_id OUT NOCOPY /* file.sql.39 change */  NUMBER,
28 	x_return_status OUT NOCOPY /* file.sql.39 change */  VARCHAR2)
29 IS
30     l_party_rec		ASO_PARTY_INT.Party_Rec_Type;
31 BEGIN
32 
33 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
34 
35     x_party_id := p_party_id;
36     x_return_status := FND_API.G_RET_STS_SUCCESS;
37     IF (p_party_id IS NOT NULL
38 	AND p_party_id <> FND_API.G_MISS_NUM) THEN
39 	ASO_UTILITY_PVT.Set_Message(
40 		p_msg_level     => FND_MSG_PUB.G_MSG_LVL_SUCCESS,
41 		p_msg_name      => 'ASO_API_ATTRIBUTE_IGNORED',
42 		p_token1        => 'COLUMN',
43 		p_token1_value  => p_column_name);
44     ELSIF (p_person_first_name <> FND_API.G_MISS_CHAR
45 		AND p_person_first_name IS NOT NULL)
46 	OR (p_party_name <> FND_API.G_MISS_CHAR
47 		AND p_party_name IS NOT NULL) THEN
48 	l_party_rec.party_id := p_party_id;
49 	l_party_rec.party_type := p_party_type;
50 	l_party_rec.party_name := p_party_name;
51 	l_party_rec.person_first_name := p_person_first_name;
52 	l_party_rec.person_middle_name := p_person_middle_name;
53 	l_party_rec.person_last_name := p_person_last_name;
54 	ASO_PARTY_INT.Create_Party(
55 		p_party_rec	=> l_party_rec,
56 		x_party_id	=> x_party_id,
57 		x_return_status => x_return_status,
58         x_msg_count  => x_msg_count,
59         x_msg_data => x_msg_data  );
60     END IF;
61 END;
62 
63 PROCEDURE Convert_Site_To_Id (
64 	p_column_name	IN	VARCHAR2,
65 	p_party_id	IN	NUMBER,
66 	p_party_site_id	IN	NUMBER,
67 	p_site_use_type IN	VARCHAR2,
68 	p_address1	IN	VARCHAR2,
69 	p_address2	IN	VARCHAR2,
70 	p_address3	IN	VARCHAR2,
71 	p_address4	IN	VARCHAR2,
72 	p_country_code	IN	VARCHAR2,
73 	p_country	IN	VARCHAR2,
74 	p_city		IN	VARCHAR2,
75 	p_postal_code	IN	VARCHAR2,
76 	p_province	IN	VARCHAR2,
77 	p_county	IN	VARCHAR2,
78 	x_party_site_id OUT NOCOPY /* file.sql.39 change */  NUMBER,
79 	x_return_status OUT NOCOPY /* file.sql.39 change */  VARCHAR2)
80 IS
81     l_party_site_rec	ASO_PARTY_INT.Party_Site_Rec_Type;
82     l_msg_data VARCHAR2(2000);
83     l_msg_count NUMBER;
84 
85 BEGIN
86 
87 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
88 
89     x_party_site_id := p_party_site_id;
90     x_return_status := FND_API.G_RET_STS_SUCCESS;
91     IF (p_party_site_id IS NOT NULL
92 	AND p_party_site_id <> FND_API.G_MISS_NUM) THEN
93 	ASO_UTILITY_PVT.Set_Message(
94 		p_msg_level     => FND_MSG_PUB.G_MSG_LVL_SUCCESS,
95 		p_msg_name      => 'ASO_API_ATTRIBUTE_IGNORED',
96 		p_token1        => 'COLUMN',
97 		p_token1_value  => p_column_name);
98     ELSIF (p_address1 <> FND_API.G_MISS_CHAR AND
99 		p_address1 IS NOT NULL AND
100 		p_country <> FND_API.G_MISS_CHAR AND
101 		p_country IS NOT NULL AND
102 		p_party_id <> FND_API.G_MISS_NUM  AND  -- bug 4046692 changed from G_MISS_CHAR to G_MISS_NUM
103 		p_party_id IS NULL) THEN
104 	l_party_site_rec.party_id := p_party_id;
105 	l_party_site_rec.party_site_use_type := p_site_use_type;
106     	l_party_site_rec.location.address1 := p_address1;
107     	l_party_site_rec.location.address2 := p_address2;
108     	l_party_site_rec.location.address3 := p_address3;
109     	l_party_site_rec.location.address4 := p_address4;
110     	l_party_site_rec.location.city := p_city;
111     	l_party_site_rec.location.postal_code := p_postal_code;
112     	l_party_site_rec.location.province := p_province;
113     	l_party_site_rec.location.county := p_county;
114     	l_party_site_rec.location.country := p_country;
115 	ASO_PARTY_INT.Create_Party_Site(
116 		p_party_site_rec => l_party_site_rec,
117 		x_party_site_id	 => x_party_site_id,
118 		x_return_status	 => x_return_status,
119 		x_msg_data => l_msg_data,
120 		x_msg_count => l_msg_count);
121     END IF;
122 END;
123 
124 
125 PROCEDURE Convert_Header_Values_To_Ids(
126          P_Qte_Header_rec        IN    Qte_Header_Rec_Type,
127          x_qte_header_rec	  OUT NOCOPY /* file.sql.39 change */  Qte_Header_Rec_Type
128 )
129 IS
130     l_any_errors  BOOLEAN := FALSE;
131     l_return_status     VARCHAR2(1);
132 BEGIN
133 
134 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
135 
136     x_qte_header_rec := p_qte_header_rec;
137     -- party_id
138     Convert_Party_To_Id (
139 	p_column_name	=> 'PARTY_NAME',
140 	p_party_id	=> p_qte_header_rec.party_id,
141 	p_party_type	=> p_qte_header_rec.party_type,
142 	p_party_name	=> p_qte_header_rec.party_name,
143 	p_person_first_name	=> p_qte_header_rec.person_first_name,
144 	p_person_middle_name	=> p_qte_header_rec.person_middle_name,
145 	p_person_last_name	=> p_qte_header_rec.person_last_name,
146 	x_party_id	=> x_qte_header_rec.party_id,
147 	x_return_status => l_return_status);
148     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
149         l_any_errors := TRUE;
150     END IF;
151     -- invoice_to_party_id
152     Convert_Party_To_Id (
153 	p_column_name	=> 'INVOICE_TO_PARTY_NAME',
154 	p_party_id	=> p_qte_header_rec.invoice_to_party_id,
155 	p_party_name	=> p_qte_header_rec.invoice_to_party_name,
156 	p_party_type	=> 'PERSON',
157 	p_person_first_name	=> p_qte_header_rec.invoice_to_contact_first_name,
158 	p_person_middle_name	=> p_qte_header_rec.invoice_to_contact_middle_name,
159 	p_person_last_name	=> p_qte_header_rec.invoice_to_contact_last_name,
160 	x_party_id	=> x_qte_header_rec.invoice_to_party_id,
161 	x_return_status => l_return_status);
162     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
163         l_any_errors := TRUE;
164     END IF;
165     -- invoice_to_site_id
166     Convert_Site_To_Id (
167 	p_column_name	=> 'INVOICE_TO_SITE_LOCATION',
168 	p_party_id	=> p_qte_header_rec.invoice_to_party_id,
169 	p_party_site_id	=> p_qte_header_rec.invoice_to_party_site_id,
170 	p_site_use_type => 'INVOICE_TO',
171 	p_address1	=> p_qte_header_rec.invoice_to_address1,
172 	p_address2	=> p_qte_header_rec.invoice_to_address2,
173 	p_address3	=> p_qte_header_rec.invoice_to_address3,
174 	p_address4	=> p_qte_header_rec.invoice_to_address4,
175 	p_country_code	=> p_qte_header_rec.invoice_to_country_code,
176 	p_country	=> p_qte_header_rec.invoice_to_country,
177 	p_city		=> p_qte_header_rec.invoice_to_city,
178 	p_postal_code	=> p_qte_header_rec.invoice_to_postal_code,
179 	p_province	=> p_qte_header_rec.invoice_to_province,
180 	p_county	=> p_qte_header_rec.invoice_to_county,
181 	x_party_site_id	=> x_qte_header_rec.invoice_to_party_site_id,
182 	x_return_status => l_return_status);
183     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
184         l_any_errors := TRUE;
185     END IF;
186     -- no value-to-id conversion for the following fields. If the user wants
187     -- to input any related data, the ID must be passed in.
188     -- status_id
189     -- org_contact_id
190     -- source_campaign_id
191     -- compaign_id
192     -- order_type_id
193     -- employee_person_id
194     -- price_list_id
195     IF l_any_errors THEN
196           raise FND_API.G_EXC_ERROR;
197     END IF;
198 END;
199 
200 PROCEDURE Convert_Shipment_Values_To_Ids(
201          P_shipment_Rec   IN    shipment_Rec_Type,
202          x_shipment_rec	  OUT NOCOPY /* file.sql.39 change */  shipment_Rec_Type
203 )
204 IS
205     l_any_errors  BOOLEAN := FALSE;
206     l_return_status     VARCHAR2(1);
207 BEGIN
208 
209 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
210 
211     x_shipment_rec := p_shipment_rec;
212     -- ship_to_party_id
213     Convert_Party_To_Id (
214 	p_column_name	=> 'SHIP_TO_PARTY_NAME',
215 	p_party_id	=> p_shipment_rec.ship_to_party_id,
216 	p_party_name	=> p_shipment_rec.ship_to_party_name,
217 	p_party_type	=> 'PERSON',
218 	p_person_first_name	=> p_shipment_rec.ship_to_contact_first_name,
219 	p_person_middle_name	=> p_shipment_rec.ship_to_contact_middle_name,
220 	p_person_last_name	=> p_shipment_rec.ship_to_contact_last_name,
221 	x_party_id	=> x_shipment_rec.ship_to_party_id,
222 	x_return_status => l_return_status);
223     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
224         l_any_errors := TRUE;
225     END IF;
226     -- ship_to_site_id
227     Convert_Site_To_Id (
228 	p_column_name	=> 'SHIP_TO_SITE_LOCATION',
229 	p_party_id	=> p_shipment_rec.ship_to_party_id,
230 	p_party_site_id	=> p_shipment_rec.ship_to_party_site_id,
231 	p_site_use_type => 'INVOICE_TO',
232 	p_address1	=> p_shipment_rec.ship_to_address1,
233 	p_address2	=> p_shipment_rec.ship_to_address2,
234 	p_address3	=> p_shipment_rec.ship_to_address3,
235 	p_address4	=> p_shipment_rec.ship_to_address4,
236 	p_country_code	=> p_shipment_rec.ship_to_country_code,
237 	p_country	=> p_shipment_rec.ship_to_country,
238 	p_city		=> p_shipment_rec.ship_to_city,
239 	p_postal_code	=> p_shipment_rec.ship_to_postal_code,
240 	p_province	=> p_shipment_rec.ship_to_province,
241 	p_county	=> p_shipment_rec.ship_to_county,
242 	x_party_site_id	=> x_shipment_rec.ship_to_party_site_id,
243 	x_return_status => l_return_status);
244     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
245         l_any_errors := TRUE;
246     END IF;
247     -- no value-to-id conversion for the following fields. If the user wants
248     -- to input any related data, the CODE must be passed in.
249     -- SHIP_METHOD_CODE
250     -- FREIGHT_TERMS_CODE
251     -- FREIGHT_CARRIER_CODE
252     -- FOB_CODE
253     IF l_any_errors THEN
254           raise FND_API.G_EXC_ERROR;
255     END IF;
256 END;
257 
258 PROCEDURE Convert_Line_Values_To_Ids(
259          P_QTE_Line_Rec        IN    QTE_Line_Rec_Type,
260          x_QTE_Line_rec	  OUT NOCOPY /* file.sql.39 change */  QTE_Line_Rec_Type
261 )
262 IS
263 BEGIN
264 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
265     x_qte_line_rec := p_qte_line_rec;
266     null;
267 END;
268 
269 PROCEDURE Create_quote(
270     P_Api_Version_Number         IN   NUMBER,
271     P_Init_Msg_List              IN   VARCHAR2                                := FND_API.G_FALSE,
272     P_Commit                     IN   VARCHAR2                                := FND_API.G_FALSE,
273     P_Control_Rec		        IN   Control_Rec_Type                        := G_Miss_Control_Rec,
274     P_Qte_Header_Rec		   IN   Qte_Header_Rec_Type                     := G_MISS_Qte_Header_Rec,
275     P_hd_Price_Attributes_Tbl	   IN   ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := G_Miss_Price_Attributes_Tbl,
276     P_hd_Payment_Tbl		   IN   ASO_QUOTE_PUB.Payment_Tbl_Type          := G_MISS_PAYMENT_TBL,
277     P_hd_Shipment_Rec		   IN   ASO_QUOTE_PUB.Shipment_Rec_Type         := G_MISS_SHIPMENT_REC,
278     P_hd_Freight_Charge_Tbl	   IN   ASO_QUOTE_PUB.Freight_Charge_Tbl_Type   := G_Miss_Freight_Charge_Tbl,
279     P_hd_Tax_Detail_Tbl		   IN   ASO_QUOTE_PUB.Tax_Detail_Tbl_Type       := G_Miss_Tax_Detail_Tbl,
280     P_Qte_Line_Tbl		        IN   Qte_Line_Tbl_Type                       := G_MISS_QTE_LINE_TBL,
281     P_Qte_Line_Dtl_Tbl		   IN   Qte_Line_Dtl_Tbl_Type                   := G_MISS_QTE_LINE_DTL_TBL,
282     P_Line_Attr_Ext_Tbl		   IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
283     P_line_rltship_tbl		   IN   Line_Rltship_Tbl_Type                   := G_MISS_Line_Rltship_Tbl,
284     P_Price_Adjustment_Tbl	   IN   Price_Adj_Tbl_Type                      := G_Miss_Price_Adj_Tbl,
285     P_Price_Adj_Attr_Tbl	        IN   Price_Adj_Attr_Tbl_Type                 := G_Miss_PRICE_ADJ_ATTR_Tbl,
286     P_Price_Adj_Rltship_Tbl	   IN   Price_Adj_Rltship_Tbl_Type              := G_Miss_Price_Adj_Rltship_Tbl,
287     P_Ln_Price_Attributes_Tbl	   IN   Price_Attributes_Tbl_Type               := G_Miss_Price_Attributes_Tbl,
288     P_Ln_Payment_Tbl		   IN   Payment_Tbl_Type                        := G_MISS_PAYMENT_TBL,
289     P_Ln_Shipment_Tbl		   IN   Shipment_Tbl_Type                       := G_MISS_SHIPMENT_TBL,
290     P_Ln_Freight_Charge_Tbl	   IN   Freight_Charge_Tbl_Type                 := G_Miss_Freight_Charge_Tbl,
291     P_Ln_Tax_Detail_Tbl		   IN   Tax_Detail_Tbl_Type                     := G_Miss_Tax_Detail_Tbl,
292     x_Qte_Header_Rec		   OUT NOCOPY /* file.sql.39 change */  Qte_Header_Rec_Type,
293     X_Qte_Line_Tbl		        OUT NOCOPY /* file.sql.39 change */  Qte_Line_Tbl_Type,
294     X_Qte_Line_Dtl_Tbl		   OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_Tbl_Type,
295     X_Hd_Price_Attributes_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
296     X_Hd_Payment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
297     X_Hd_Shipment_Rec		   OUT NOCOPY /* file.sql.39 change */  Shipment_Rec_Type,
298     X_Hd_Freight_Charge_Tbl	   OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
299     X_Hd_Tax_Detail_Tbl		   OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
300     x_Line_Attr_Ext_Tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
301     X_line_rltship_tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Rltship_Tbl_Type,
302     X_Price_Adjustment_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
303     X_Price_Adj_Attr_Tbl	        OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
304     X_Price_Adj_Rltship_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Adj_Rltship_Tbl_Type,
305     X_Ln_Price_Attributes_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
306     X_Ln_Payment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
307     X_Ln_Shipment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
308     X_Ln_Freight_Charge_Tbl	   OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
309     X_Ln_Tax_Detail_Tbl		   OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
310     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
311     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
312     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
313     )
314 IS
315 
316  x_hd_Attr_Ext_Tbl		       Line_Attribs_Ext_Tbl_Type;
317  x_hd_Sales_Credit_Tbl          Sales_Credit_Tbl_Type ;
318  x_hd_Quote_Party_Tbl           Quote_Party_Tbl_Type;
319  x_ln_Sales_Credit_Tbl          Sales_Credit_Tbl_Type ;
320  x_ln_Quote_Party_Tbl           Quote_Party_Tbl_Type;
321 
322 BEGIN
323    aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
324 
325    Create_quote(
326 	    P_Api_Version_Number	      => 1.0,
327 	    P_Init_Msg_List		      => p_init_msg_list,
328 	    P_Commit			      => p_commit,
329 	    P_Control_Rec		      => p_control_rec,
330 	    P_qte_header_rec		 => p_qte_header_rec,
331 	    P_Hd_Price_Attributes_Tbl	 => p_Hd_Price_Attributes_Tbl,
332 	    P_Hd_Payment_Tbl		 => p_Hd_Payment_Tbl,
333 	    P_Hd_Shipment_Rec		 => p_Hd_Shipment_Rec,
334 	    P_Hd_Freight_Charge_Tbl	 => p_Hd_Freight_Charge_Tbl,
335 	    P_Hd_Tax_Detail_Tbl		 => p_Hd_Tax_Detail_Tbl,
336 	    P_Qte_Line_Tbl		      => p_Qte_Line_Tbl,
337 	    P_Qte_Line_Dtl_Tbl		 => p_Qte_Line_Dtl_Tbl,
338 	    P_Line_Attr_Ext_Tbl		 => P_Line_Attr_Ext_Tbl,
339 	    P_Line_rltship_tbl		 => p_Line_Rltship_Tbl,
340 	    P_Price_Adjustment_Tbl	 => p_Price_Adjustment_Tbl,
341 	    P_Price_Adj_Attr_Tbl	      => P_Price_Adj_Attr_Tbl,
342 	    P_Price_Adj_Rltship_Tbl	 => p_Price_Adj_Rltship_Tbl,
343 	    P_Ln_Price_Attributes_Tbl	 => p_Ln_Price_Attributes_Tbl,
344 	    P_Ln_Payment_Tbl		 => p_Ln_Payment_Tbl,
345 	    P_Ln_Shipment_Tbl		 => p_Ln_Shipment_Tbl,
346 	    P_Ln_Freight_Charge_Tbl	 => p_Ln_Freight_Charge_Tbl,
347 	    P_Ln_Tax_Detail_Tbl		 => p_Ln_Tax_Detail_Tbl,
348 	    x_qte_header_rec		 => x_qte_header_rec,
349 	    X_Hd_Price_Attributes_Tbl	 => x_Hd_Price_Attributes_Tbl,
350 	    X_Hd_Payment_Tbl		 => x_Hd_Payment_Tbl,
351 	    X_Hd_Shipment_Rec		 => x_Hd_Shipment_Rec,
352 	    X_Hd_Freight_Charge_Tbl	 => x_Hd_Freight_Charge_Tbl,
353 	    X_Hd_Tax_Detail_Tbl		 => x_Hd_Tax_Detail_Tbl,
354          X_hd_Attr_Ext_Tbl		 => X_hd_Attr_Ext_Tbl,
355          X_hd_Sales_Credit_Tbl      => X_hd_Sales_Credit_Tbl,
356          X_hd_Quote_Party_Tbl       => X_hd_Quote_Party_Tbl,
357 	    X_Qte_Line_Tbl		      => x_Qte_Line_Tbl,
358 	    X_Qte_Line_Dtl_Tbl		 => x_Qte_Line_Dtl_Tbl,
359 	    x_Line_Attr_Ext_Tbl		 => x_Line_Attr_Ext_Tbl,
360 	    X_Line_rltship_tbl		 => x_Line_Rltship_Tbl,
361 	    X_Price_Adjustment_Tbl	 => x_Price_Adjustment_Tbl,
362 	    x_Price_Adj_Attr_Tbl	      => x_Price_Adj_Attr_Tbl,
363 	    X_Price_Adj_Rltship_Tbl	 => x_Price_Adj_Rltship_Tbl,
364 	    X_Ln_Price_Attributes_Tbl	 => x_Ln_Price_Attributes_Tbl,
365 	    X_Ln_Payment_Tbl		 => x_Ln_Payment_Tbl,
366 	    X_Ln_Shipment_Tbl		 => x_Ln_Shipment_Tbl,
367 	    X_Ln_Freight_Charge_Tbl	 => x_Ln_Freight_Charge_Tbl,
368 	    X_Ln_Tax_Detail_Tbl		 => x_Ln_Tax_Detail_Tbl,
369          X_Ln_Sales_Credit_Tbl      => X_ln_Sales_Credit_Tbl,
370          X_Ln_Quote_Party_Tbl       => X_ln_Quote_Party_Tbl,
371 	    X_Return_Status            => x_return_status,
372 	    X_Msg_Count                => x_msg_count,
373 	    X_Msg_Data                 => x_msg_data);
374 
375 END Create_Quote;
376 
377 
378 PROCEDURE Update_quote(
379     P_Api_Version_Number         IN   NUMBER,
380     P_Init_Msg_List              IN   VARCHAR2                                := FND_API.G_FALSE,
381     P_Commit                     IN   VARCHAR2                                := FND_API.G_FALSE,
382     P_Control_Rec		        IN   Control_Rec_Type                        := G_Miss_Control_Rec,
383     P_Qte_Header_Rec		   IN   Qte_Header_Rec_Type                     := G_MISS_Qte_Header_Rec,
384     P_hd_Price_Attributes_Tbl	   IN   ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := G_Miss_Price_Attributes_Tbl,
385     P_hd_Payment_Tbl		   IN   ASO_QUOTE_PUB.Payment_Tbl_Type          := G_MISS_PAYMENT_TBL,
386     P_hd_Shipment_Tbl		   IN   ASO_QUOTE_PUB.Shipment_Tbl_Type         := G_MISS_SHIPMENT_TBL,
387     P_hd_Freight_Charge_Tbl	   IN   ASO_QUOTE_PUB.Freight_Charge_Tbl_Type   := G_Miss_Freight_Charge_Tbl,
388     P_hd_Tax_Detail_Tbl		   IN   ASO_QUOTE_PUB.Tax_Detail_Tbl_Type       := G_Miss_Tax_Detail_Tbl,
389     P_Qte_Line_Tbl		        IN   Qte_Line_Tbl_Type                       := G_MISS_QTE_LINE_TBL,
390     P_Qte_Line_Dtl_Tbl		   IN   Qte_Line_Dtl_Tbl_Type                   := G_MISS_QTE_LINE_DTL_TBL,
391     P_Line_Attr_Ext_Tbl		   IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
392     P_line_rltship_tbl		   IN   Line_Rltship_Tbl_Type                   := G_MISS_Line_Rltship_Tbl,
393     P_Price_Adjustment_Tbl	   IN   Price_Adj_Tbl_Type                      := G_Miss_Price_Adj_Tbl,
394     P_Price_Adj_Attr_Tbl	        IN   Price_Adj_Attr_Tbl_Type                 := G_Miss_PRICE_ADJ_ATTR_Tbl,
395     P_Price_Adj_Rltship_Tbl	   IN   Price_Adj_Rltship_Tbl_Type              := G_Miss_Price_Adj_Rltship_Tbl,
396     P_Ln_Price_Attributes_Tbl	   IN   Price_Attributes_Tbl_Type               := G_Miss_Price_Attributes_Tbl,
397     P_Ln_Payment_Tbl		   IN   Payment_Tbl_Type                        := G_MISS_PAYMENT_TBL,
398     P_Ln_Shipment_Tbl		   IN   Shipment_Tbl_Type                       := G_MISS_SHIPMENT_TBL,
399     P_Ln_Freight_Charge_Tbl	   IN   Freight_Charge_Tbl_Type                 := G_Miss_Freight_Charge_Tbl,
400     P_Ln_Tax_Detail_Tbl		   IN   Tax_Detail_Tbl_Type                     := G_Miss_Tax_Detail_Tbl,
401     x_Qte_Header_Rec		   OUT NOCOPY /* file.sql.39 change */  Qte_Header_Rec_Type,
402     X_Qte_Line_Tbl		        OUT NOCOPY /* file.sql.39 change */  Qte_Line_Tbl_Type,
403     X_Qte_Line_Dtl_Tbl		   OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_Tbl_Type,
404     X_Hd_Price_Attributes_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
405     X_Hd_Payment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
406     X_Hd_Shipment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
407     X_Hd_Freight_Charge_Tbl	   OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
408     X_Hd_Tax_Detail_Tbl		   OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
409     x_Line_Attr_Ext_Tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
410     X_line_rltship_tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Rltship_Tbl_Type,
411     X_Price_Adjustment_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
412     X_Price_Adj_Attr_Tbl	        OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
413     X_Price_Adj_Rltship_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Adj_Rltship_Tbl_Type,
414     X_Ln_Price_Attributes_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
415     X_Ln_Payment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
416     X_Ln_Shipment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
417     X_Ln_Freight_Charge_Tbl	   OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
418     X_Ln_Tax_Detail_Tbl		   OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
419     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
420     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
421     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
422     )
423 IS
424 
425  x_hd_Attr_Ext_Tbl		       Line_Attribs_Ext_Tbl_Type;
426  x_hd_Sales_Credit_Tbl          Sales_Credit_Tbl_Type ;
427  x_hd_Quote_Party_Tbl           Quote_Party_Tbl_Type;
428  x_ln_Sales_Credit_Tbl          Sales_Credit_Tbl_Type ;
429  x_ln_Quote_Party_Tbl           Quote_Party_Tbl_Type;
430 
431 BEGIN
432      aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
433 
434      Update_quote(
435 	    P_Api_Version_Number	      => 1.0,
436 	    P_Init_Msg_List		      => p_init_msg_list,
437 	    P_Commit			      => p_commit,
438 	    P_Control_Rec		      => p_control_rec,
439 	    P_qte_header_rec		 => p_qte_header_rec,
440 	    P_Hd_Price_Attributes_Tbl	 => p_Hd_Price_Attributes_Tbl,
441 	    P_Hd_Payment_Tbl		 => p_Hd_Payment_Tbl,
442 	    P_Hd_Shipment_Tbl		 => p_Hd_Shipment_Tbl,
443 	    P_Hd_Freight_Charge_Tbl	 => p_Hd_Freight_Charge_Tbl,
444 	    P_Hd_Tax_Detail_Tbl		 => p_Hd_Tax_Detail_Tbl,
445 	    P_Qte_Line_Tbl		      => p_Qte_Line_Tbl,
446 	    P_Qte_Line_Dtl_Tbl		 => p_Qte_Line_Dtl_Tbl,
447 	    P_Line_Attr_Ext_Tbl		 => P_Line_Attr_Ext_Tbl,
448 	    P_Line_rltship_tbl		 => p_Line_Rltship_Tbl,
449 	    P_Price_Adjustment_Tbl	 => p_Price_Adjustment_Tbl,
450 	    P_Price_Adj_Attr_Tbl	      => P_Price_Adj_Attr_Tbl,
451 	    P_Price_Adj_Rltship_Tbl	 => p_Price_Adj_Rltship_Tbl,
452 	    P_Ln_Price_Attributes_Tbl	 => p_Ln_Price_Attributes_Tbl,
453 	    P_Ln_Payment_Tbl		 => p_Ln_Payment_Tbl,
454 	    P_Ln_Shipment_Tbl		 => p_Ln_Shipment_Tbl,
455 	    P_Ln_Freight_Charge_Tbl	 => p_Ln_Freight_Charge_Tbl,
456 	    P_Ln_Tax_Detail_Tbl		 => p_Ln_Tax_Detail_Tbl,
457 	    x_qte_header_rec		 => x_qte_header_rec,
458 	    X_Hd_Price_Attributes_Tbl	 => x_Hd_Price_Attributes_Tbl,
459 	    X_Hd_Payment_Tbl		 => x_Hd_Payment_Tbl,
460 	    X_Hd_Shipment_tbl		 => x_Hd_Shipment_tbl,
461 	    X_Hd_Freight_Charge_Tbl	 => x_Hd_Freight_Charge_Tbl,
462 	    X_Hd_Tax_Detail_Tbl		 => x_Hd_Tax_Detail_Tbl,
463          X_hd_Attr_Ext_Tbl		 => X_hd_Attr_Ext_Tbl,
464          X_hd_Sales_Credit_Tbl      => X_hd_Sales_Credit_Tbl,
465          X_hd_Quote_Party_Tbl       => X_hd_Quote_Party_Tbl,
466 	    X_Qte_Line_Tbl		      => x_Qte_Line_Tbl,
467 	    X_Qte_Line_Dtl_Tbl		 => x_Qte_Line_Dtl_Tbl,
468 	    x_Line_Attr_Ext_Tbl		 => x_Line_Attr_Ext_Tbl,
469 	    X_Line_rltship_tbl		 => x_Line_Rltship_Tbl,
470 	    X_Price_Adjustment_Tbl	 => x_Price_Adjustment_Tbl,
471 	    x_Price_Adj_Attr_Tbl	      => x_Price_Adj_Attr_Tbl,
472 	    X_Price_Adj_Rltship_Tbl	 => x_Price_Adj_Rltship_Tbl,
473 	    X_Ln_Price_Attributes_Tbl	 => x_Ln_Price_Attributes_Tbl,
474 	    X_Ln_Payment_Tbl		 => x_Ln_Payment_Tbl,
475 	    X_Ln_Shipment_Tbl		 => x_Ln_Shipment_Tbl,
476 	    X_Ln_Freight_Charge_Tbl	 => x_Ln_Freight_Charge_Tbl,
477 	    X_Ln_Tax_Detail_Tbl		 => x_Ln_Tax_Detail_Tbl,
478          X_Ln_Sales_Credit_Tbl      => X_ln_Sales_Credit_Tbl,
479          X_Ln_Quote_Party_Tbl       => X_ln_Quote_Party_Tbl,
480 	    X_Return_Status            => x_return_status,
481 	    X_Msg_Count                => x_msg_count,
482 	    X_Msg_Data                 => x_msg_data);
483 
484 End Update_quote;
485 
486 
487 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
488 -- The Master delete procedure may not be needed depends on different business requirements.
489 
490 PROCEDURE Delete_quote(
491     P_Api_Version_Number         IN   NUMBER,
492     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
493     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
494     P_Qte_Header_Id		        IN   NUMBER,
495     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
496     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
497     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
498     )
499 
500 IS
501     l_api_name                CONSTANT VARCHAR2(30) := 'DELETE_QUOTE';
502     l_api_version_number      CONSTANT NUMBER       := 1.0;
503     l_qte_header_id NUMBER;
504 BEGIN
505       -- Standard Start of API savepoint
506       SAVEPOINT DELETE_QUOTE_PUB;
507 
508       aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
509 
510       -- Standard call to check for call compatibility.
511       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
512                          	             p_api_version_number,
513                                            l_api_name,
514                                            G_PKG_NAME) THEN
515           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
516       END IF;
517 
518       -- Initialize message list if p_init_msg_list is set to TRUE.
519       IF FND_API.to_Boolean( p_init_msg_list ) THEN
520           FND_MSG_PUB.initialize;
521       END IF;
522 
523       -- Initialize API return status to SUCCESS
524       x_return_status := FND_API.G_RET_STS_SUCCESS;
525       l_qte_header_id := P_qte_header_id;
526 
527       --
528       -- API body
529       --
530       -- call user hooks
531       -- customer pre processing
532 
533       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
534 
535           ASO_QUOTE_CUHK.Delete_quote_PRE( P_Qte_Header_Id   => l_qte_header_id,
536                                            X_Return_Status   => x_return_status,
537   	                                      X_Msg_Count       => x_msg_count ,
538   	                                      X_Msg_Data        => x_msg_data );
539 
540           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
541 
542               IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
543 		        FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
544 		        FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Delete_Quote_PRE', FALSE);
545 		        FND_MSG_PUB.ADD;
546               END IF;
547 
548               IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
549                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
550               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
551                     RAISE FND_API.G_EXC_ERROR;
552               END IF;
553 
554           END IF;
555 
556       END IF; -- customer hook
557 
558       -- vertical hook
559       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
560 
561           ASO_QUOTE_VUHK.Delete_quote_PRE( P_Qte_Header_Id  => l_qte_header_id,
562                                            X_Return_Status  => x_return_status,
563   	                                      X_Msg_Count      => x_msg_count,
564   	                                      x_Msg_Data       => x_msg_data );
565 
566           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
567 
568               IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
569 		        FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
570 		        FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Delete_Quote_PRE', FALSE);
571 		        FND_MSG_PUB.ADD;
572               END IF;
573 
574               IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
575                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
576               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
577                    RAISE FND_API.G_EXC_ERROR;
578               END IF;
579 
580           END IF;
581 
582       END IF; -- vertical hook
583 
584       ASO_QUOTE_HEADERS_PVT.Delete_quote( P_Api_Version_Number  => 1.0,
585 		                                P_Init_Msg_List       => FND_API.G_FALSE,
586 		                                P_Commit              => p_commit,
587 		                                P_Qte_Header_ID       => l_Qte_Header_Id,
588 		                                X_Return_Status       => x_return_status,
589 		                                X_Msg_Count           => x_msg_count,
590 		                                X_Msg_Data            => x_msg_data);
591 
592       -- Check return status from the above procedure call
593       IF x_return_status = FND_API.G_RET_STS_ERROR then
594           raise FND_API.G_EXC_ERROR;
595       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
596           raise FND_API.G_EXC_UNEXPECTED_ERROR;
597       END IF;
598 
599       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
600 
601           ASO_QUOTE_CUHK.Delete_quote_POST( P_Qte_Header_Id		=> l_qte_header_id,
602    	                                       X_Return_Status         => x_return_status,
603 		                                  X_Msg_Count             => x_msg_count,
604 		                                  X_Msg_Data              => x_msg_data );
605 
606           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
607 
608               IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
609 		        FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
610 		        FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Delete_Quote_POST', FALSE);
611 		        FND_MSG_PUB.ADD;
612               END IF;
613 
614               IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
615                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
616               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
617                    RAISE FND_API.G_EXC_ERROR;
618               END IF;
619 
620           END IF;
621 
622       END IF; -- customer hook
623 
624       -- vertical hook
625       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
626 
627           ASO_QUOTE_VUHK.Delete_quote_POST( P_Qte_Header_Id  => l_qte_header_id,
628    	                                       X_Return_Status  => x_return_status,
629 		                                  X_Msg_Count      => x_msg_count,
630 		                                  X_Msg_Data       => x_msg_data );
631 
632           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
633 
634               IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
635 		        FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
636 		        FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Delete_Quote_POST', FALSE);
637 		        FND_MSG_PUB.ADD;
638               END IF;
639 
640               IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
641                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
642               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
643                    RAISE FND_API.G_EXC_ERROR;
644               END IF;
645 
646           END IF;
647 
648       END IF; -- vertical hook
649 
650 	 --
651       -- End of API body
652       --
653 
654       -- Standard check for p_commit
655       IF FND_API.to_Boolean( p_commit ) THEN
656           COMMIT WORK;
657       END IF;
658 
659       -- Standard call to get message count and if count is 1, get message info.
660       FND_MSG_PUB.Count_And_Get( p_count => x_msg_count,
661                                  p_data  => x_msg_data );
662 
663       EXCEPTION
664 
665           WHEN FND_API.G_EXC_ERROR THEN
666 
667               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
668 		         P_API_NAME        => L_API_NAME
669                   ,P_PKG_NAME        => G_PKG_NAME
670                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
671                   ,P_PACKAGE_TYPE    => ASO_UTILITY_PVT.G_PUB
672                   ,X_MSG_COUNT       => X_MSG_COUNT
673                   ,X_MSG_DATA        => X_MSG_DATA
674                   ,X_RETURN_STATUS   => X_RETURN_STATUS);
675 
676           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
677 
678               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
679                    P_API_NAME        => L_API_NAME
680                   ,P_PKG_NAME        => G_PKG_NAME
681                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
682                   ,P_PACKAGE_TYPE    => ASO_UTILITY_PVT.G_PUB
683                   ,X_MSG_COUNT       => X_MSG_COUNT
684                   ,X_MSG_DATA        => X_MSG_DATA
685                   ,X_RETURN_STATUS   => X_RETURN_STATUS);
686 
687           WHEN OTHERS THEN
688               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
689                    P_API_NAME        => L_API_NAME
690                   ,P_PKG_NAME        => G_PKG_NAME
691                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
692                   ,P_PACKAGE_TYPE    => ASO_UTILITY_PVT.G_PUB
693                   ,X_MSG_COUNT       => X_MSG_COUNT
694                   ,X_MSG_DATA        => X_MSG_DATA
695                   ,X_RETURN_STATUS   => X_RETURN_STATUS);
696 
697 End Delete_quote;
698 
699 
700 PROCEDURE Get_quote(
701     P_Api_Version_Number         IN   NUMBER,
702     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
703     P_Qte_Header_Rec		 IN   Qte_Header_Rec_Type,
704   -- Hint: Add list of bind variables here
705     p_rec_requested              IN   NUMBER  := G_DEFAULT_NUM_REC_FETCH,
706     p_start_rec_prt              IN   NUMBER  := 1,
707     p_return_tot_count           IN   NUMBER  := FND_API.G_FALSE,
708   -- Hint: user defined record type
709     p_order_by_rec               IN   QTE_sort_rec_type,
710     x_return_status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
711     x_msg_count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
712     x_msg_data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
713     X_QTE_Header_Tbl		 OUT NOCOPY /* file.sql.39 change */  QTE_Header_Tbl_Type,
714     x_returned_rec_count         OUT NOCOPY /* file.sql.39 change */  NUMBER,
715     x_next_rec_ptr               OUT NOCOPY /* file.sql.39 change */  NUMBER,
716     x_tot_rec_count              OUT NOCOPY /* file.sql.39 change */  NUMBER
717   -- other optional parameters
718 --  x_tot_rec_amount             OUT NOCOPY /* file.sql.39 change */  NUMBER
719     )
720 
721  IS
722 l_api_name                CONSTANT VARCHAR2(30) := 'GET_QUOTE';
723 l_api_version_number      CONSTANT NUMBER   := 1.0;
724  BEGIN
725       -- Standard Start of API savepoint
726       SAVEPOINT GET_QUOTE_PUB;
727 
728 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
729 
730       -- Standard call to check for call compatibility.
731       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
732                          	             p_api_version_number,
733                                            l_api_name,
734                                            G_PKG_NAME)
735       THEN
736           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
737       END IF;
738 
739 
740       -- Initialize message list if p_init_msg_list is set to TRUE.
741       IF FND_API.to_Boolean( p_init_msg_list )
742       THEN
743           FND_MSG_PUB.initialize;
744       END IF;
745 
746 
747 
748 
749       -- Initialize API return status to SUCCESS
750       x_return_status := FND_API.G_RET_STS_SUCCESS;
751 
752       --
753       -- API body
754       --
755       ASO_QUOTE_HEADERS_PVT.Get_quote(
756 		P_Api_Version_Number         => 1.0,
757 		P_Init_Msg_List              => FND_API.G_FALSE,
758 		P_Qte_Header_Rec  =>  P_Qte_Header_Rec,
759 		p_rec_requested              => p_rec_requested,
760 		p_start_rec_prt              => p_start_rec_prt,
761 		p_return_tot_count           => p_return_tot_count,
762 		p_order_by_rec               => p_order_by_rec,
763 		X_Return_Status              => x_return_status,
764 		X_Msg_Count                  => x_msg_count,
765 		X_Msg_Data                   => x_msg_data,
766 		X_Qte_Header_Tbl  => X_Qte_Header_Tbl,
767 		x_returned_rec_count         => x_returned_rec_count,
768 		x_next_rec_ptr               => x_next_rec_ptr,
769 		x_tot_rec_count              => x_tot_rec_count
770       );
771 
772 
773 
774 
775       -- Check return status from the above procedure call
776       IF x_return_status = FND_API.G_RET_STS_ERROR then
777           raise FND_API.G_EXC_ERROR;
778       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
779           raise FND_API.G_EXC_UNEXPECTED_ERROR;
780       END IF;
781 
782       --
783       -- End of API body
784       --
785 
786 
787 
788       -- Standard call to get message count and if count is 1, get message info.
789       FND_MSG_PUB.Count_And_Get
790       (  p_count          =>   x_msg_count,
791          p_data           =>   x_msg_data
792       );
793 
794       EXCEPTION
795           WHEN FND_API.G_EXC_ERROR THEN
796               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
797                    P_API_NAME => L_API_NAME
798                   ,P_PKG_NAME => G_PKG_NAME
799                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
800                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
801                   ,X_MSG_COUNT => X_MSG_COUNT
802                   ,X_MSG_DATA => X_MSG_DATA
803                   ,X_RETURN_STATUS => X_RETURN_STATUS);
804 
805           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
806               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
807                    P_API_NAME => L_API_NAME
808                   ,P_PKG_NAME => G_PKG_NAME
809                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
810                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
811                   ,X_MSG_COUNT => X_MSG_COUNT
812                   ,X_MSG_DATA => X_MSG_DATA
813                   ,X_RETURN_STATUS => X_RETURN_STATUS);
814 
815           WHEN OTHERS THEN
816               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
817                    P_API_NAME => L_API_NAME
818                   ,P_PKG_NAME => G_PKG_NAME
819                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
820                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
821                   ,X_MSG_COUNT => X_MSG_COUNT
822                   ,X_MSG_DATA => X_MSG_DATA
823                   ,X_RETURN_STATUS => X_RETURN_STATUS);
824 End Get_quote;
825 
826 PROCEDURE Validate_quote(
827     P_Api_Version_Number         IN   NUMBER,
828     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
829     P_Qte_Header_Id		 IN   NUMBER,
830     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
831     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
832     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
833     )
834 IS
835     l_api_name                CONSTANT VARCHAR2(30) := 'VALIDATE_QUOTE';
836     l_api_version_number      CONSTANT NUMBER   := 1.0;
837 BEGIN
838       -- Standard Start of API savepoint
839       SAVEPOINT validate_QUOTE_PUB;
840 
841 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
842 
843       -- Standard call to check for call compatibility.
844       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
845                          	             p_api_version_number,
846                                            l_api_name,
847                                            G_PKG_NAME)
848       THEN
849           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
850       END IF;
851 
852 
853       -- Initialize message list if p_init_msg_list is set to TRUE.
854       IF FND_API.to_Boolean( p_init_msg_list )
855       THEN
856           FND_MSG_PUB.initialize;
857       END IF;
858 
859 
860 
861 
862       -- Initialize API return status to SUCCESS
863       x_return_status := FND_API.G_RET_STS_SUCCESS;
864 
865       --
866       -- API body
867       --
868 
869 
870       ASO_QUOTE_HEADERS_PVT.Validate_Quote(
871 		P_Api_Version_Number     => 1.0,
872 		P_Init_Msg_List          => FND_API.G_FALSE,
873 		P_Qte_Header_Id		 => p_qte_header_id,
874 		X_Return_Status          => x_return_status,
875 		X_Msg_Count              => x_msg_count,
876 		X_Msg_Data               => x_msg_data);
877 
878       -- Check return status from the above procedure call
879       IF x_return_status = FND_API.G_RET_STS_ERROR then
880           raise FND_API.G_EXC_ERROR;
881       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
882           raise FND_API.G_EXC_UNEXPECTED_ERROR;
883       END IF;
884 
885       --
886       -- End of API body
887       --
888 
889 
890 
891       -- Standard call to get message count and if count is 1, get message info.
892       FND_MSG_PUB.Count_And_Get
893       (  p_count          =>   x_msg_count,
894          p_data           =>   x_msg_data
895       );
896 
897       EXCEPTION
898           WHEN FND_API.G_EXC_ERROR THEN
899               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
900                    P_API_NAME => L_API_NAME
901                   ,P_PKG_NAME => G_PKG_NAME
902                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
903                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
904                   ,X_MSG_COUNT => X_MSG_COUNT
905                   ,X_MSG_DATA => X_MSG_DATA
906                   ,X_RETURN_STATUS => X_RETURN_STATUS);
907 
908           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
909               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
910                    P_API_NAME => L_API_NAME
911                   ,P_PKG_NAME => G_PKG_NAME
912                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
913                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
914                   ,X_MSG_COUNT => X_MSG_COUNT
915                   ,X_MSG_DATA => X_MSG_DATA
916                   ,X_RETURN_STATUS => X_RETURN_STATUS);
917 
918           WHEN OTHERS THEN
919               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
920                    P_API_NAME => L_API_NAME
921                   ,P_PKG_NAME => G_PKG_NAME
922                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
923                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
924                   ,X_MSG_COUNT => X_MSG_COUNT
925                   ,X_MSG_DATA => X_MSG_DATA
926                   ,X_RETURN_STATUS => X_RETURN_STATUS);
927 END Validate_Quote;
928 
929 PROCEDURE Submit_quote(
930     P_Api_Version_Number         IN   NUMBER,
931     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
932     P_control_rec		        IN   Submit_Control_Rec_Type
933 				                               := g_miss_Submit_Control_Rec,
934     P_Qte_Header_Id		        IN   NUMBER,
935     x_order_header_rec		   OUT NOCOPY /* file.sql.39 change */  Order_Header_Rec_Type,
936     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
937     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
938     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
939     )
940 IS
941     l_api_name                CONSTANT VARCHAR2(30) := 'SUBMIT_QUOTE';
942     l_api_version_number      CONSTANT NUMBER   := 1.0;
943     l_control_rec             Submit_Control_Rec_Type := P_control_rec;
944     l_Qte_Header_Id           NUMBER;
945     l_qte_header_rec          ASO_QUOTE_PUB.qte_Header_Rec_Type;
946 BEGIN
947       -- Standard Start of API savepoint
948       SAVEPOINT SUBMIT_QUOTE_PUB;
949 
950 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
951 
952       -- Standard call to check for call compatibility.
953       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
954                          	             p_api_version_number,
955                                            l_api_name,
956                                            G_PKG_NAME)
957       THEN
958           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
959       END IF;
960 
961 
962       -- Initialize message list if p_init_msg_list is set to TRUE.
963       IF FND_API.to_Boolean( p_init_msg_list )
964       THEN
965           FND_MSG_PUB.initialize;
966       END IF;
967 
968 
969 
970 
971       -- Initialize API return status to SUCCESS
972       x_return_status := FND_API.G_RET_STS_SUCCESS;
973       l_Qte_Header_Id := P_Qte_Header_Id;
974 
975       --
976       -- API body
977       --
978 
979       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
980        ASO_QUOTE_CUHK.Submit_quote_PRE(
981     p_control_rec		 => l_control_rec,
982     P_Qte_Header_Id		 => l_Qte_Header_Id,
983     X_Return_Status      => X_Return_Status,
984     X_Msg_Count          => X_Msg_Count,
985     X_Msg_Data            => X_Msg_Data    );
986        IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
987              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
988 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
989 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Submit_Quote_PRE', FALSE);
990 		  FND_MSG_PUB.ADD;
991              END IF;
992                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
993                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
994                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
995                     RAISE FND_API.G_EXC_ERROR;
996                  END IF;
997           END IF;
998       END IF; -- customer hook
999        -- vertical hook
1000        IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
1001          ASO_QUOTE_VUHK.Submit_quote_PRE(
1002     p_control_rec		 => l_control_rec,
1003     P_Qte_Header_Id		 => l_Qte_Header_Id,
1004     X_Return_Status      => X_Return_Status,
1005     X_Msg_Count          => X_Msg_Count,
1006     X_Msg_Data            => X_Msg_Data    );
1007       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1008              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1009 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
1010 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Submit_Quote_PRE', FALSE);
1011 		  FND_MSG_PUB.ADD;
1012              END IF;
1013                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1014                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1015                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1016                     RAISE FND_API.G_EXC_ERROR;
1017                  END IF;
1018        END IF;
1019       END IF;
1020 
1021 	 l_qte_header_rec.quote_header_id := l_Qte_Header_Id;
1022 	 l_qte_header_rec.last_update_date := FND_API.G_MISS_DATE;
1023 
1024       ASO_SUBMIT_QUOTE_PVT.Submit_Quote(
1025 		P_Api_Version_Number => 1.0,
1026 		P_Init_Msg_List      => p_init_msg_list,
1027 		P_Control_Rec		 => l_control_rec,
1028 		P_Qte_Header_Rec	 => l_qte_header_rec,
1029 		x_order_header_rec	 => x_Order_Header_Rec,
1030 		X_Return_Status      => x_return_status,
1031 		X_Msg_Count          => x_msg_count,
1032 		X_Msg_Data           => x_msg_data);
1033 
1034       -- Check return status from the above procedure call
1035       IF x_return_status = FND_API.G_RET_STS_ERROR then
1036           raise FND_API.G_EXC_ERROR;
1037       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1038           raise FND_API.G_EXC_UNEXPECTED_ERROR;
1039       END IF;
1040 
1041          --  call user hooks
1042       -- customer post processing
1043 
1044     IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
1045          ASO_QUOTE_CUHK.Submit_quote_POST(
1046     p_control_rec		 => l_control_rec,
1047     P_Qte_Header_Id		 => l_Qte_Header_Id,
1048     p_order_header_rec   => x_order_header_rec,
1049     X_Return_Status      => X_Return_Status,
1050     X_Msg_Count          => X_Msg_Count,
1051     X_Msg_Data            => X_Msg_Data    );
1052 
1053      IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1054              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1055 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
1056 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Submit_Quote_POST', FALSE);
1057 		  FND_MSG_PUB.ADD;
1058              END IF;
1059                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1060                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1061                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1062                     RAISE FND_API.G_EXC_ERROR;
1063                  END IF;
1064           END IF;
1065       END IF; -- customer hook
1066 
1067       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
1068       ASO_QUOTE_VUHK.Submit_quote_POST(
1069     p_control_rec		 => l_control_rec,
1070     P_Qte_Header_Id		 => l_Qte_Header_Id,
1071     p_order_header_rec   => x_order_header_rec,
1072     X_Return_Status      => X_Return_Status,
1073     X_Msg_Count          => X_Msg_Count,
1074     X_Msg_Data            => X_Msg_Data    );
1075     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1076              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1077 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
1078 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Submit_Quote_POST', FALSE);
1079 		  FND_MSG_PUB.ADD;
1080              END IF;
1081                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1082                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1083                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1084                     RAISE FND_API.G_EXC_ERROR;
1085                  END IF;
1086           END IF;
1087       END IF; -- vertical hook
1088       --
1089       -- End of API body
1090       --
1091 
1092 
1093 
1094 
1095       -- Standard call to get message count and if count is 1, get message info.
1096       FND_MSG_PUB.Count_And_Get
1097       (  p_count          =>   x_msg_count,
1098          p_data           =>   x_msg_data
1099       );
1100 
1101       EXCEPTION
1102           WHEN FND_API.G_EXC_ERROR THEN
1103               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1104                    P_API_NAME => L_API_NAME
1105                   ,P_PKG_NAME => G_PKG_NAME
1106                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1107                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1108                   ,X_MSG_COUNT => X_MSG_COUNT
1109                   ,X_MSG_DATA => X_MSG_DATA
1110                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1111 
1112           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1113               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1114                    P_API_NAME => L_API_NAME
1115                   ,P_PKG_NAME => G_PKG_NAME
1116                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1117                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1118                   ,X_MSG_COUNT => X_MSG_COUNT
1119                   ,X_MSG_DATA => X_MSG_DATA
1120                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1121 
1122           WHEN OTHERS THEN
1123               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1124                    P_API_NAME => L_API_NAME
1125                   ,P_PKG_NAME => G_PKG_NAME
1126                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
1127                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1128                   ,X_MSG_COUNT => X_MSG_COUNT
1129                   ,X_MSG_DATA => X_MSG_DATA
1130                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1131 END Submit_Quote;
1132 
1133 
1134 PROCEDURE Copy_quote(
1135     P_Api_Version_Number         IN   NUMBER,
1136     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1137     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1138     P_Qte_Header_Id		 IN   NUMBER,
1139     P_Last_Update_Date		 IN   DATE,
1140     P_Copy_Only_Header		 IN   VARCHAR2	   := FND_API.G_FALSE,
1141     P_New_Version		 IN   VARCHAR2	   := FND_API.G_FALSE,
1142     P_Qte_Status_Id		 IN   NUMBER	   := NULL,
1143     P_Qte_Number		 IN   NUMBER	   := NULL,
1144     X_Qte_Header_Id		 OUT NOCOPY /* file.sql.39 change */  NUMBER,
1145     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
1146     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
1147     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1148     )
1149 IS
1150     l_api_name                CONSTANT VARCHAR2(30) := 'COPY_QUOTE';
1151     l_api_version_number      CONSTANT NUMBER   := 1.0;
1152     l_Qte_Header_Id  NUMBER;
1153     l_Last_Update_Date DATE;
1154     l_Copy_Only_Header VARCHAR2(30);
1155     l_New_Version VARCHAR2(30);
1156     l_Qte_Status_Id NUMBER;
1157     l_Qte_Number NUMBER;
1158     l_NEW_Qte_Header_Id NUMBER;
1159     l_control_rec ASO_QUOTE_PUB.control_rec_type := G_MISS_Control_Rec ;
1160 BEGIN
1161       -- Standard Start of API savepoint
1162       SAVEPOINT COPY_QUOTE_PUB;
1163 
1164 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
1165 
1166       -- Standard call to check for call compatibility.
1167       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1168                          	             p_api_version_number,
1169                                            l_api_name,
1170                                            G_PKG_NAME)
1171       THEN
1172           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1173       END IF;
1174 
1175 
1176       -- Initialize message list if p_init_msg_list is set to TRUE.
1177       IF FND_API.to_Boolean( p_init_msg_list )
1178       THEN
1179           FND_MSG_PUB.initialize;
1180       END IF;
1181 
1182 
1183 
1184 
1185       -- Initialize API return status to SUCCESS
1186       x_return_status := FND_API.G_RET_STS_SUCCESS;
1187 
1188       --
1189       -- API body
1190       --
1191 
1192     -- mapping to local variables
1193     l_Qte_Header_Id    :=   P_Qte_Header_Id	;
1194     l_Last_Update_Date := P_Last_Update_Date;
1195     l_Copy_Only_Header :=  P_Copy_Only_Header;
1196     l_New_Version   := P_New_Version;
1197     l_Qte_Status_Id := P_Qte_Status_Id;
1198     l_Qte_Number := P_Qte_Number	;
1199 
1200      IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
1201      ASO_QUOTE_CUHK.Copy_quote_PRE(
1202     P_Qte_Header_Id		 => l_Qte_Header_Id,
1203     P_Last_Update_Date	  => l_Last_Update_Date,
1204     P_Copy_Only_Header		 => l_Copy_Only_Header,
1205     P_New_Version		 => l_New_Version,
1206     P_Qte_Status_Id		=> l_Qte_Status_Id	,
1207     P_Qte_Number		 => l_Qte_Number	,
1208     X_Return_Status      => X_Return_Status ,
1209     X_Msg_Count           =>     X_Msg_Count,
1210     X_Msg_Data            =>        X_Msg_Data
1211     );
1212      IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1213            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1214 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
1215 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Copy_Quote_PRE', FALSE);
1216 		  FND_MSG_PUB.ADD;
1217              END IF;
1218                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1219                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1220                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1221                     RAISE FND_API.G_EXC_ERROR;
1222                  END IF;
1223           END IF;
1224       END IF; -- customer hook
1225        -- vertical hook
1226        IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
1227        ASO_QUOTE_VUHK.Copy_quote_PRE(
1228     P_Qte_Header_Id		 => l_Qte_Header_Id,
1229     P_Last_Update_Date	  => l_Last_Update_Date,
1230     P_Copy_Only_Header		 => l_Copy_Only_Header,
1231     P_New_Version		 => l_New_Version,
1232     P_Qte_Status_Id		=> l_Qte_Status_Id	,
1233     P_Qte_Number		 => l_Qte_Number	,
1234     X_Return_Status      => X_Return_Status ,
1235     X_Msg_Count           =>     X_Msg_Count,
1236     X_Msg_Data            =>        X_Msg_Data
1237     );
1238      IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1239            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1240 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
1241 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Copy_Quote_PRE', FALSE);
1242 		  FND_MSG_PUB.ADD;
1243      END IF;
1244                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1245                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1246                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1247                     RAISE FND_API.G_EXC_ERROR;
1248                  END IF;
1249           END IF;
1250       END IF;
1251 
1252 
1253       ASO_QUOTE_HEADERS_PVT.Copy_Quote(
1254 		P_Api_Version_Number	=> 1.0,
1255 		P_Init_Msg_List		=> FND_API.G_FALSE,
1256 		P_Commit		=> p_commit,
1257 		P_Qte_Header_Id		=> p_qte_header_id,
1258                 P_control_rec           =>  l_control_rec,
1259 		P_Last_Update_Date	=> p_last_update_date,
1260 		P_Copy_Only_Header	=> p_copy_only_header,
1261 		P_New_Version		=> p_new_version,
1262 		P_Qte_Status_Id		=> p_qte_status_id,
1263 		P_Qte_Number		=> p_qte_number,
1264 		X_Qte_Header_Id		=> x_qte_header_id,
1265 		X_Return_Status         => x_return_status,
1266 		X_Msg_Count             => x_msg_count,
1267 		X_Msg_Data              => x_msg_data);
1268 
1269 
1270 
1271       -- Check return status from the above procedure call
1272       IF x_return_status = FND_API.G_RET_STS_ERROR then
1273           raise FND_API.G_EXC_ERROR;
1274       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1275           raise FND_API.G_EXC_UNEXPECTED_ERROR;
1276       END IF;
1277 
1278   l_NEW_Qte_Header_Id := x_qte_header_id;
1279 
1280   IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
1281       ASO_QUOTE_CUHK.Copy_quote_POST(
1282     P_Qte_Header_Id		 => l_Qte_Header_Id,
1283     P_Last_Update_Date	  => l_Last_Update_Date,
1284     P_Copy_Only_Header		 => l_Copy_Only_Header,
1285     P_New_Version		 => l_New_Version,
1286     P_Qte_Status_Id		=> l_Qte_Status_Id	,
1287     P_Qte_Number		 => l_Qte_Number	,
1288     P_NEW_Qte_Header_Id  => l_NEW_Qte_Header_Id,
1289     X_Return_Status      => X_Return_Status ,
1290     X_Msg_Count           =>     X_Msg_Count,
1291     X_Msg_Data            =>        X_Msg_Data
1292     );
1293       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1294              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1295 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
1296 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Copy_Quote_POST', FALSE);
1297 		  FND_MSG_PUB.ADD;
1298              END IF;
1299                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1300                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1301                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1302                     RAISE FND_API.G_EXC_ERROR;
1303                  END IF;
1304           END IF;
1305       END IF; -- customer hook
1306       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
1307       ASO_QUOTE_VUHK.Copy_quote_POST(
1308     P_Qte_Header_Id		 => l_Qte_Header_Id,
1309     P_Last_Update_Date	  => l_Last_Update_Date,
1310     P_Copy_Only_Header		 => l_Copy_Only_Header,
1311     P_New_Version		 => l_New_Version,
1312     P_Qte_Status_Id		=> l_Qte_Status_Id	,
1313     P_Qte_Number		 => l_Qte_Number	,
1314     P_NEW_Qte_Header_Id  => l_NEW_Qte_Header_Id,
1315     X_Return_Status      => X_Return_Status ,
1316     X_Msg_Count           =>     X_Msg_Count,
1317     X_Msg_Data            =>        X_Msg_Data
1318     );
1319       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1320              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1321 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
1322 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Copy_Quote_POST', FALSE);
1323 		  FND_MSG_PUB.ADD;
1324              END IF;
1325                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1326                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1327                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1328                     RAISE FND_API.G_EXC_ERROR;
1329                  END IF;
1330           END IF;
1331       END IF;
1332       --
1333       -- End of API body
1334       --
1335 
1336       -- Standard check for p_commit
1337       IF FND_API.to_Boolean( p_commit )
1338       THEN
1339           COMMIT WORK;
1340       END IF;
1341 
1342 
1343 
1344 
1345       -- Standard call to get message count and if count is 1, get message info.
1346       FND_MSG_PUB.Count_And_Get
1347       (  p_count          =>   x_msg_count,
1348          p_data           =>   x_msg_data
1349       );
1350 
1351       EXCEPTION
1352           WHEN FND_API.G_EXC_ERROR THEN
1353               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1354                    P_API_NAME => L_API_NAME
1355                   ,P_PKG_NAME => G_PKG_NAME
1356                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1357                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1358                   ,X_MSG_COUNT => X_MSG_COUNT
1359                   ,X_MSG_DATA => X_MSG_DATA
1360                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1361 
1362           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1363               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1364                    P_API_NAME => L_API_NAME
1365                   ,P_PKG_NAME => G_PKG_NAME
1366                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1367                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1368                   ,X_MSG_COUNT => X_MSG_COUNT
1369                   ,X_MSG_DATA => X_MSG_DATA
1370                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1371 
1372           WHEN OTHERS THEN
1373               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
1374                    P_API_NAME => L_API_NAME
1375                   ,P_PKG_NAME => G_PKG_NAME
1376                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
1377                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
1378                   ,X_MSG_COUNT => X_MSG_COUNT
1379                   ,X_MSG_DATA => X_MSG_DATA
1380                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1381 END Copy_Quote;
1382 
1383 
1384 -- Overloaded Copy_quote
1385 
1386 PROCEDURE Copy_quote(
1387     P_Api_Version_Number         IN   NUMBER,
1388     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1389     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1390     P_control_rec                IN  Control_Rec_Type,
1391     P_Qte_Header_Id       IN   NUMBER,
1392     P_Last_Update_Date         IN   DATE,
1393     P_Copy_Only_Header         IN   VARCHAR2    := FND_API.G_FALSE,
1394     P_New_Version         IN   VARCHAR2    := FND_API.G_FALSE,
1395     P_Qte_Status_Id       IN   NUMBER      := NULL,
1396     P_Qte_Number          IN   NUMBER      := NULL,
1397     X_Qte_Header_Id       OUT NOCOPY /* file.sql.39 change */  NUMBER,
1398     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
1399     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
1400     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1401     )
1402 IS
1403 
1404   l_api_name                CONSTANT VARCHAR2(30) := 'COPY_QUOTE';
1405     l_api_version_number      CONSTANT NUMBER   := 1.0;
1406     l_Qte_Header_Id  NUMBER;
1407     l_Last_Update_Date DATE;
1408     l_Copy_Only_Header VARCHAR2(30);
1409     l_New_Version VARCHAR2(30);
1410     l_Qte_Status_Id NUMBER;
1411     l_Qte_Number NUMBER;
1412     l_NEW_Qte_Header_Id NUMBER;
1413     BEGIN
1414 
1415 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
1416 
1417   ASO_QUOTE_HEADERS_PVT.Copy_Quote(
1418 		P_Api_Version_Number	=> 1.0,
1419 		P_Init_Msg_List		=> FND_API.G_FALSE,
1420 		P_Commit		=> p_commit,
1421 		P_control_rec           =>  P_control_rec,
1422 		P_Qte_Header_Id		=> p_qte_header_id,
1423 		P_Last_Update_Date	=> p_last_update_date,
1424 		P_Copy_Only_Header	=> p_copy_only_header,
1425 		P_New_Version		=> p_new_version,
1426 		P_Qte_Status_Id		=> p_qte_status_id,
1427 		P_Qte_Number		=> p_qte_number,
1428 		X_Qte_Header_Id		=> x_qte_header_id,
1429 		X_Return_Status         => x_return_status,
1430 		X_Msg_Count             => x_msg_count,
1431 		X_Msg_Data              => x_msg_data);
1432 
1433 
1434 END;
1435 
1436 --   *******************************************************
1437 --    Start of Comments
1438 --   *******************************************************
1439 --   API Name:  Create_Quote_Line
1440 --   Type    :  Public
1441 --   Pre-Req :
1442 --   Parameters:
1443 --   IN
1444 --       p_api_version_number      IN   NUMBER     Required
1445 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
1446 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
1447 --       P_qte_lines_Rec     IN    qte_line_Rec_Type         Required
1448 --       P_quote_header_id   IN    NUMBER                    Required
1449 --       P_header_last_update_date IN DATE                   Required
1450 --       P_Payment_Tbl       IN    Payment_Tbl_Type
1451 --       P_Price_Adj_Tbl     IN    Price_Adj_Tbl_Type
1452 --       P_Qte_Line_Dtl_Rec  IN    Qte_Line_Dtl_Rec_Type
1453 --       P_Shipment_Tbl      IN    Shipment_Tbl_Type
1454 --       P_Tax_Detail_Tbl      IN    Tax_Detail_Tbl_Type
1455 --       P_Freight_Charge_Tbl  IN    Freight_Charge_Tbl_Type
1456 --       P_Line_Rltship_Tbl IN   Line_Rltship_Tbl_Type
1457 --       P_Price_Attributes_Tbl  IN   Price_Attributes_Tbl_Type
1458 --       P_Price_Adj_Rltship_Tbl IN Price_Adj_Rltship_Tbl_Type
1459 --       P_Update_Header_Flag    IN   VARCHAR2     Optional  Default = FND_API.G_TRUE
1460 
1461 --   OUT:
1462 --       X_quote_line_id     OUT NOCOPY /* file.sql.39 change */  NUMBER,
1463 --       x_return_status           OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1464 --       x_msg_count               OUT NOCOPY /* file.sql.39 change */  NUMBER
1465 --       x_msg_data                OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1466 --   Version : Current version 2.0
1467 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
1468 --         and basic operation, developer must manually add parameters and business logic as necessary.
1469 --
1470 --   End of Comments
1471 --
1472 
1473 
1474 PROCEDURE Create_Quote_Line(
1475     P_Api_Version_Number   IN   NUMBER,
1476     P_Init_Msg_List        IN   VARCHAR2     := FND_API.G_FALSE,
1477     P_Commit               IN   VARCHAR2     := FND_API.G_FALSE,
1478     P_Qte_Line_Rec         IN   Qte_Line_Rec_Type  := G_MISS_qte_line_REC,
1479     P_Control_Rec          IN   Control_rec_Type   := G_MISS_control_REC,
1480     P_Qte_Line_Dtl_TBL     IN   Qte_Line_Dtl_Tbl_Type  := G_MISS_qte_line_dtl_TBL,
1481     P_Line_Attribs_Ext_Tbl IN   Line_Attribs_Ext_Tbl_type
1482                                         := G_Miss_Line_Attribs_Ext_Tbl,
1483     P_Payment_Tbl          IN   Payment_Tbl_Type   := G_MISS_Payment_TBL,
1484     P_Price_Adj_Tbl        IN   Price_Adj_Tbl_Type := G_MISS_Price_Adj_TBL,
1485     P_Price_Attributes_Tbl IN   Price_Attributes_Tbl_Type := G_MISS_Price_attributes_TBL,
1486     P_Price_Adj_Attr_Tbl    IN  Price_Adj_Attr_Tbl_Type
1487 					:= G_Miss_PRICE_ADJ_ATTR_Tbl,
1488     P_Shipment_Tbl          IN  Shipment_Tbl_Type   := G_MISS_shipment_TBL,
1489     P_Tax_Detail_Tbl        IN  Tax_Detail_Tbl_Type:= G_MISS_tax_detail_TBL,
1490     P_Freight_Charge_Tbl    IN  Freight_Charge_Tbl_Type   := G_MISS_freight_charge_TBL,
1491     P_Update_Header_Flag    IN  VARCHAR2   := FND_API.G_TRUE,
1492     X_Qte_Line_Rec          OUT NOCOPY /* file.sql.39 change */  Qte_Line_Rec_Type,
1493     X_Qte_Line_Dtl_TBL      OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_TBL_Type,
1494     X_Line_Attribs_Ext_Tbl  OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_type,
1495     X_Payment_Tbl           OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
1496     X_Price_Adj_Tbl         OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
1497     X_Price_Attributes_Tbl  OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type ,
1498     X_Price_Adj_Attr_Tbl    OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
1499     X_Shipment_Tbl          OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
1500     X_Tax_Detail_Tbl        OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
1501     X_Freight_Charge_Tbl    OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type ,
1502     X_Return_Status         OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
1503     X_Msg_Count             OUT NOCOPY /* file.sql.39 change */  NUMBER,
1504     X_Msg_Data              OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1505 )
1506 IS
1507 X_Sales_Credit_Tbl  Sales_Credit_Tbl_Type;
1508 X_Quote_Party_Tbl   Quote_Party_Tbl_Type;
1509 BEGIN
1510 
1511 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
1512 
1513   Create_Quote_Line(
1514     P_Api_Version_Number  => p_api_version_number,
1515     P_Init_Msg_List       => p_init_msg_list,
1516     P_Commit              => p_commit,
1517     P_Qte_Line_Rec        => p_qte_line_rec,
1518     P_Control_REC         => p_control_rec   ,
1519     P_Payment_Tbl         => p_payment_tbl   ,
1520     P_Price_Adj_Tbl       => p_price_adj_tbl ,
1521     P_Qte_Line_Dtl_Tbl    => p_Qte_Line_Dtl_Tbl,
1522     P_Shipment_Tbl        => p_Shipment_Tbl ,
1523     P_Tax_Detail_Tbl      => p_Tax_Detail_Tbl ,
1524     P_Freight_Charge_Tbl  => p_Freight_Charge_Tbl,
1525     P_Price_Attributes_Tbl  => p_Price_Attributes_Tbl,
1526     P_Price_Adj_Attr_Tbl    =>p_Price_Adj_Attr_Tbl,
1527     P_Line_Attribs_Ext_Tbl  =>p_Line_Attribs_Ext_Tbl,
1528     P_Update_Header_Flag    =>p_Update_Header_Flag ,
1529     X_qte_line_rec         => X_qte_line_rec,
1530     X_payment_tbl	   => x_payment_tbl,
1531     X_Price_Adj_Tbl        => x_price_adj_tbl,
1532     X_Qte_Line_Dtl_Tbl     => x_qte_line_dtl_tbl,
1533     X_Shipment_Tbl         => x_shipment_tbl,
1534     X_Tax_Detail_Tbl       => x_tax_detail_tbl,
1535     X_Freight_Charge_Tbl   => x_freight_charge_tbl,
1536     X_Price_Attributes_Tbl => x_price_attributes_tbl,
1537     X_Price_Adj_Attr_Tbl    => x_Price_Adj_Attr_Tbl,
1538     X_Line_Attribs_Ext_Tbl  => x_Line_Attribs_Ext_Tbl,
1539     X_Sales_Credit_Tbl      => X_Sales_Credit_Tbl ,
1540     X_Quote_Party_Tbl       => X_Quote_Party_Tbl,
1541     X_Return_Status        => x_return_status,
1542     X_Msg_Count            => x_msg_count,
1543     X_Msg_Data             => x_msg_data
1544     );
1545 
1546 END Create_Quote_Line;
1547 
1548 
1549 
1550 --   *******************************************************
1551 --    Start of Comments
1552 --   *******************************************************
1553 --   API Name:  Update_Quote_Line
1554 --   Type    :  Public
1555 --   Pre-Req :
1556 --   Parameters:
1557 --   IN
1558 --       p_api_version_number      IN   NUMBER     Required
1559 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
1560 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
1561 --       p_identity_salesforce_id  IN   NUMBER     Optional  Default = NULL
1562 --       P_qte_lines_Rec     IN    qte_line_Rec_Type         Required
1563 --       P_quote_header_id   IN    NUMBER                    Required
1564 --       P_header_last_update_date IN DATE                   Required
1565 --       P_Payment_Tbl       IN    Payment_Tbl_Type
1566 --       P_Price_Adj_Tbl     IN    Price_Adj_Tbl_Type
1567 --       P_Qte_Line_Dtl_Rec  IN    Qte_Line_Dtl_Rec_Type
1568 --       P_Shipment_Tbl      IN    Shipment_Tbl_Type
1569 --       P_Tax_Detail_Tbl      IN    Tax_Detail_Tbl_Type
1570 --       P_Freight_Charge_Tbl  IN    Freight_Charge_Tbl_Type
1571 --       P_Line_Rltship_Tbl IN   Line_Rltship_Tbl_Type
1572 --       P_Price_Attributes_Tbl  IN   Price_Attributes_Tbl_Type
1573 --       P_Price_Adj_Rltship_Tbl IN Price_Adj_Rltship_Tbl_Type
1574 --       P_Update_Header_Flag    IN   VARCHAR2     Optional  Default = FND_API.G_TRUE
1575 --   OUT:
1576 --       X_quote_line_id     OUT NOCOPY /* file.sql.39 change */  NUMBER,
1577 --       x_return_status           OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1578 --       x_msg_count               OUT NOCOPY /* file.sql.39 change */  NUMBER
1579 --       x_msg_data                OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1580 --   Version : Current version 2.0
1581 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
1582 --         and basic operation, developer must manually add parameters and business logic as necessary.
1583 --
1584 --   End of Comments
1585 --
1586 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
1587 
1588 PROCEDURE Update_Quote_Line(
1589     P_Api_Version_Number   IN   NUMBER,
1590     P_Init_Msg_List        IN   VARCHAR2     := FND_API.G_FALSE,
1591     P_Commit               IN   VARCHAR2     := FND_API.G_FALSE,
1592     P_Qte_Line_Rec         IN   Qte_Line_Rec_Type  := G_MISS_qte_line_REC,
1593     P_Control_Rec          IN   Control_rec_Type   := G_MISS_control_REC,
1594     P_Qte_Line_Dtl_Tbl     IN   Qte_Line_Dtl_Tbl_Type  := G_MISS_qte_line_dtl_TBL,
1595     P_Line_Attribs_Ext_Tbl IN   Line_Attribs_Ext_Tbl_type
1596                                         := G_Miss_Line_Attribs_Ext_Tbl,
1597     P_Payment_Tbl          IN   Payment_Tbl_Type   := G_MISS_Payment_TBL,
1598     P_Price_Adj_Tbl        IN   Price_Adj_Tbl_Type := G_MISS_Price_Adj_TBL,
1599     P_Price_Attributes_Tbl IN   Price_Attributes_Tbl_Type := G_MISS_Price_attributes_TBL,
1600     P_Price_Adj_Attr_Tbl    IN  Price_Adj_Attr_Tbl_Type
1601 					:= G_Miss_PRICE_ADJ_ATTR_Tbl,
1602     P_Shipment_Tbl          IN  Shipment_Tbl_Type   := G_MISS_shipment_TBL,
1603     P_Tax_Detail_Tbl        IN  Tax_Detail_Tbl_Type:= G_MISS_tax_detail_TBL,
1604     P_Freight_Charge_Tbl    IN  Freight_Charge_Tbl_Type   := G_MISS_freight_charge_TBL,
1605     P_Update_Header_Flag    IN  VARCHAR2   := FND_API.G_TRUE,
1606     X_Qte_Line_Rec          OUT NOCOPY /* file.sql.39 change */  Qte_Line_Rec_Type,
1607     X_Qte_Line_Dtl_Tbl      OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_Tbl_Type,
1608     X_Line_Attribs_Ext_Tbl  OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_type,
1609     X_Payment_Tbl           OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
1610     X_Price_Adj_Tbl         OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
1611     X_Price_Attributes_Tbl  OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type ,
1612     X_Price_Adj_Attr_Tbl    OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
1613     X_Shipment_Tbl          OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
1614     X_Tax_Detail_Tbl        OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
1615     X_Freight_Charge_Tbl    OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type ,
1616     X_Return_Status         OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
1617     X_Msg_Count             OUT NOCOPY /* file.sql.39 change */  NUMBER,
1618     X_Msg_Data              OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1619     )
1620 IS
1621 
1622 X_Sales_Credit_Tbl  Sales_Credit_Tbl_Type;
1623 X_Quote_Party_Tbl   Quote_Party_Tbl_Type;
1624 BEGIN
1625 
1626 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
1627 
1628 Update_Quote_Line(
1629     P_Api_Version_Number  => 1.0,
1630     P_Init_Msg_List       => p_init_msg_list,
1631     P_Commit              => p_commit,
1632     P_Qte_Line_Rec        => p_qte_line_rec,
1633     P_Control_REC         => p_control_rec      ,
1634     P_Payment_Tbl         => p_payment_tbl      ,
1635     P_Price_Adj_Tbl       => p_price_adj_tbl ,
1636     P_Qte_Line_Dtl_TBL    => p_Qte_Line_Dtl_TBL ,
1637     P_Shipment_Tbl        => p_Shipment_Tbl ,
1638     P_Tax_Detail_Tbl      => p_Tax_Detail_Tbl ,
1639     P_Freight_Charge_Tbl  => p_Freight_Charge_Tbl,
1640     P_Price_Attributes_Tbl => p_Price_Attributes_Tbl,
1641     P_Price_Adj_Attr_Tbl    =>p_Price_Adj_Attr_Tbl,
1642     P_Line_Attribs_Ext_Tbl  =>p_Line_Attribs_Ext_Tbl,
1643     P_Update_Header_Flag    =>p_Update_Header_Flag ,
1644     X_qte_line_rec         => X_qte_line_rec,
1645     X_payment_tbl	   => x_payment_tbl,
1646     X_Price_Adj_Tbl        => x_price_adj_tbl,
1647     X_Qte_Line_Dtl_tbl     => x_qte_line_dtl_tbl,
1648     X_Shipment_Tbl         => x_shipment_tbl,
1649     X_Tax_Detail_Tbl       => x_tax_detail_tbl,
1650     X_Freight_Charge_Tbl   => x_freight_charge_tbl,
1651     X_Price_Attributes_Tbl => x_price_attributes_tbl,
1652     X_Price_Adj_Attr_Tbl    =>x_Price_Adj_Attr_Tbl,
1653     X_Line_Attribs_Ext_Tbl  =>x_Line_Attribs_Ext_Tbl,
1654     X_Sales_Credit_Tbl      => X_Sales_Credit_Tbl,
1655     X_Quote_Party_Tbl       => X_Quote_Party_Tbl,
1656     X_Return_Status        => x_return_status,
1657     X_Msg_Count            => x_msg_count,
1658     X_Msg_Data             => x_msg_data
1659     );
1660 
1661 END Update_Quote_Line;
1662 
1663 
1664 --   *******************************************************
1665 --    Start of Comments
1666 --   *******************************************************
1667 --   API Name:  Delete_Quote_Line
1668 --   Type    :  Public
1669 --   Pre-Req :
1670 --   Parameters:
1671 --   IN
1672 --       p_api_version_number      IN   NUMBER     Required
1673 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
1674 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
1675 --       p_identity_salesforce_id  IN   NUMBER     Optional  Default = NULL
1676 --       P_qte_line_Rec      IN qte_line_Rec_Type  Required
1677 --       P_quote_header_id   IN    NUMBER                    Required
1678 --       P_header_last_update_date IN DATE                   Required
1679 --
1680 --   OUT:
1681 --       x_return_status           OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1682 --       x_msg_count               OUT NOCOPY /* file.sql.39 change */  NUMBER
1683 --       x_msg_data                OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1684 --   Version : Current version 2.0
1685 --   Note: This automatic generated procedure definition, it includes standard IN/OUT parameters
1686 --         and basic operation, developer must manually add parameters and business logic as necessary.
1687 --
1688 --   End of Comments
1689 --
1690 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
1691 --       The Master delete procedure may not be needed depends on different business requirements.
1692 
1693 PROCEDURE Delete_Quote_Line(
1694     P_Api_Version_Number         IN   NUMBER,
1695     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1696     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
1697     P_qte_line_Rec     IN qte_line_Rec_Type,
1698     P_Control_Rec      IN    Control_rec_Type   := G_MISS_control_REC,
1699     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
1700     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
1701     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1702     )
1703 IS
1704 
1705 BEGIN
1706 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
1707    Delete_Quote_Line(
1708     P_Api_Version_Number  => 1.0,
1709     P_Init_Msg_List       => P_Init_Msg_List  ,
1710     P_Commit              => p_commit,
1711     P_qte_line_Rec        => P_qte_line_Rec,
1712     P_Control_Rec         => p_control_rec,
1713     P_Update_Header_Flag  => 'N',
1714     X_Return_Status       => X_Return_Status,
1715     X_Msg_Count           => x_msg_count,
1716     X_Msg_Data            => x_msg_data
1717     );
1718 End Delete_quote_line;
1719 
1720 
1721 -- added by kchervel 06/26/00
1722 
1723 
1724 --   *******************************************************
1725 --    Start of Comments
1726 --   *******************************************************
1727 --   API Name:  Create_quote
1728 --   Type    :  Public
1729 --   Pre-Req :
1730 --   Parameters:
1731 
1732 --   Version : Current version 2.0
1733 --   Note: This is an overloaded procedure. It takes additional attributes
1734 --   which include the hd_attributes, sales credits and quote party record
1735 --   types
1736 --
1737 --   End of Comments
1738 --
1739 
1740 PROCEDURE Create_quote(
1741     P_Api_Version_Number       IN   NUMBER,
1742     P_Init_Msg_List            IN   VARCHAR2                                := FND_API.G_FALSE,
1743     P_Commit                   IN   VARCHAR2                                := FND_API.G_FALSE,
1744     P_Validation_Level 	      IN   NUMBER                                  := FND_API.G_VALID_LEVEL_FULL,
1745     P_Control_Rec		      IN   Control_Rec_Type                        := G_Miss_Control_Rec,
1746     P_Qte_Header_Rec		 IN   Qte_Header_Rec_Type                     := G_MISS_Qte_Header_Rec,
1747     P_hd_Price_Attributes_Tbl	 IN   ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := G_Miss_Price_Attributes_Tbl,
1748     P_hd_Payment_Tbl		 IN   ASO_QUOTE_PUB.Payment_Tbl_Type          := G_MISS_PAYMENT_TBL,
1749     P_hd_Shipment_Rec		 IN   ASO_QUOTE_PUB.Shipment_Rec_Type         := G_MISS_SHIPMENT_REC,
1750     P_hd_Freight_Charge_Tbl	 IN   ASO_QUOTE_PUB.Freight_Charge_Tbl_Type   := G_Miss_Freight_Charge_Tbl,
1751     P_hd_Tax_Detail_Tbl		 IN   ASO_QUOTE_PUB.Tax_Detail_Tbl_Type       := G_Miss_Tax_Detail_Tbl,
1752     P_hd_Attr_Ext_Tbl		 IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
1753     P_hd_Sales_Credit_Tbl      IN   Sales_Credit_Tbl_Type                   := G_MISS_Sales_Credit_Tbl,
1754     P_hd_Quote_Party_Tbl       IN   Quote_Party_Tbl_Type                    := G_MISS_Quote_Party_Tbl,
1755     P_Qte_Line_Tbl		      IN   Qte_Line_Tbl_Type                       := G_MISS_QTE_LINE_TBL,
1756     P_Qte_Line_Dtl_Tbl		 IN   Qte_Line_Dtl_Tbl_Type                   := G_MISS_QTE_LINE_DTL_TBL,
1757     P_Line_Attr_Ext_Tbl		 IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
1758     P_line_rltship_tbl		 IN   Line_Rltship_Tbl_Type                   := G_MISS_Line_Rltship_Tbl,
1759     P_Price_Adjustment_Tbl	 IN   Price_Adj_Tbl_Type                      := G_Miss_Price_Adj_Tbl,
1760     P_Price_Adj_Attr_Tbl	      IN   Price_Adj_Attr_Tbl_Type                 := G_Miss_PRICE_ADJ_ATTR_Tbl,
1761     P_Price_Adj_Rltship_Tbl	 IN   Price_Adj_Rltship_Tbl_Type              := G_Miss_Price_Adj_Rltship_Tbl,
1762     P_Ln_Price_Attributes_Tbl	 IN   Price_Attributes_Tbl_Type               := G_Miss_Price_Attributes_Tbl,
1763     P_Ln_Payment_Tbl		 IN   Payment_Tbl_Type                        := G_MISS_PAYMENT_TBL,
1764     P_Ln_Shipment_Tbl		 IN   Shipment_Tbl_Type                       := G_MISS_SHIPMENT_TBL,
1765     P_Ln_Freight_Charge_Tbl	 IN   Freight_Charge_Tbl_Type                 := G_Miss_Freight_Charge_Tbl,
1766     P_Ln_Tax_Detail_Tbl		 IN   Tax_Detail_Tbl_Type                     := G_Miss_Tax_Detail_Tbl,
1767     P_ln_Sales_Credit_Tbl      IN   Sales_Credit_Tbl_Type                   := G_MISS_Sales_Credit_Tbl,
1768     P_ln_Quote_Party_Tbl       IN   Quote_Party_Tbl_Type                    := G_MISS_Quote_Party_Tbl,
1769     x_Qte_Header_Rec		 OUT NOCOPY /* file.sql.39 change */  Qte_Header_Rec_Type,
1770     X_Qte_Line_Tbl		      OUT NOCOPY /* file.sql.39 change */  Qte_Line_Tbl_Type,
1771     X_Qte_Line_Dtl_Tbl		 OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_Tbl_Type,
1772     X_Hd_Price_Attributes_Tbl	 OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
1773     X_Hd_Payment_Tbl		 OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
1774     X_Hd_Shipment_Rec		 OUT NOCOPY /* file.sql.39 change */  Shipment_Rec_Type,
1775     X_Hd_Freight_Charge_Tbl	 OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
1776     X_Hd_Tax_Detail_Tbl		 OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
1777     X_hd_Attr_Ext_Tbl		 OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
1778     X_hd_Sales_Credit_Tbl      OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
1779     X_hd_Quote_Party_Tbl       OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
1780     x_Line_Attr_Ext_Tbl		 OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
1781     X_line_rltship_tbl		 OUT NOCOPY /* file.sql.39 change */  Line_Rltship_Tbl_Type,
1782     X_Price_Adjustment_Tbl	 OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
1783     X_Price_Adj_Attr_Tbl	      OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
1784     X_Price_Adj_Rltship_Tbl	 OUT NOCOPY /* file.sql.39 change */  Price_Adj_Rltship_Tbl_Type,
1785     X_Ln_Price_Attributes_Tbl	 OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
1786     X_Ln_Payment_Tbl		 OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
1787     X_Ln_Shipment_Tbl		 OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
1788     X_Ln_Freight_Charge_Tbl	 OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
1789     X_Ln_Tax_Detail_Tbl		 OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
1790     X_Ln_Sales_Credit_Tbl      OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
1791     X_Ln_Quote_Party_Tbl       OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
1792     X_Return_Status            OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
1793     X_Msg_Count                OUT NOCOPY /* file.sql.39 change */  NUMBER,
1794     X_Msg_Data                 OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1795     )
1796 IS
1797  x_Qte_Access_Tbl            Qte_Access_Tbl_Type;
1798  x_Template_Tbl              Template_Tbl_Type;
1799  X_Related_Obj_Tbl           Related_Obj_Tbl_Type;
1800 BEGIN
1801    aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
1802 
1803    if aso_debug_pub.g_debug_flag = 'Y' then
1804        aso_debug_pub.add('Before call to the second overloaded create_quote procedure.',1, 'Y');
1805    end if;
1806 
1807    Create_quote(
1808 	    P_Api_Version_Number	      => 1.0,
1809 	    P_Init_Msg_List		      => p_init_msg_list,
1810 	    P_Commit			      => p_commit,
1811 	    P_Control_Rec		      => p_control_rec,
1812 	    P_qte_header_rec		 => p_qte_header_rec,
1813 	    P_Hd_Price_Attributes_Tbl	 => p_Hd_Price_Attributes_Tbl,
1814 	    P_Hd_Payment_Tbl		 => p_Hd_Payment_Tbl,
1815 	    P_Hd_Shipment_Rec		 => p_Hd_Shipment_Rec,
1816 	    P_Hd_Freight_Charge_Tbl	 => p_Hd_Freight_Charge_Tbl,
1817 	    P_Hd_Tax_Detail_Tbl		 => p_Hd_Tax_Detail_Tbl,
1818 	    P_Qte_Line_Tbl		      => p_Qte_Line_Tbl,
1819 	    P_Qte_Line_Dtl_Tbl		 => p_Qte_Line_Dtl_Tbl,
1820 	    P_Line_Attr_Ext_Tbl		 => P_Line_Attr_Ext_Tbl,
1821 	    P_Line_rltship_tbl		 => p_Line_Rltship_Tbl,
1822 	    P_Price_Adjustment_Tbl	 => p_Price_Adjustment_Tbl,
1823 	    P_Price_Adj_Attr_Tbl	      => P_Price_Adj_Attr_Tbl,
1824 	    P_Price_Adj_Rltship_Tbl	 => p_Price_Adj_Rltship_Tbl,
1825 	    P_Ln_Price_Attributes_Tbl	 => p_Ln_Price_Attributes_Tbl,
1826 	    P_Ln_Payment_Tbl		 => p_Ln_Payment_Tbl,
1827 	    P_Ln_Shipment_Tbl		 => p_Ln_Shipment_Tbl,
1828 	    P_Ln_Freight_Charge_Tbl	 => p_Ln_Freight_Charge_Tbl,
1829 	    P_Ln_Tax_Detail_Tbl		 => p_Ln_Tax_Detail_Tbl,
1830 	    x_qte_header_rec		 => x_qte_header_rec,
1831 	    X_Hd_Price_Attributes_Tbl	 => x_Hd_Price_Attributes_Tbl,
1832 	    X_Hd_Payment_Tbl		 => x_Hd_Payment_Tbl,
1833 	    X_Hd_Shipment_Rec		 => x_Hd_Shipment_Rec,
1834 	    X_Hd_Freight_Charge_Tbl	 => x_Hd_Freight_Charge_Tbl,
1835 	    X_Hd_Tax_Detail_Tbl		 => x_Hd_Tax_Detail_Tbl,
1836          X_hd_Attr_Ext_Tbl		 => x_hd_Attr_Ext_Tbl,
1837          X_hd_Sales_Credit_Tbl      => x_hd_Sales_Credit_Tbl,
1838          X_hd_Quote_Party_Tbl       => x_hd_Quote_Party_Tbl,
1839 	    X_Qte_Line_Tbl		      => x_Qte_Line_Tbl,
1840 	    X_Qte_Line_Dtl_Tbl		 => x_Qte_Line_Dtl_Tbl,
1841 	    x_Line_Attr_Ext_Tbl		 => x_Line_Attr_Ext_Tbl,
1842 	    X_Line_rltship_tbl		 => x_Line_Rltship_Tbl,
1843 	    X_Price_Adjustment_Tbl	 => x_Price_Adjustment_Tbl,
1844 	    x_Price_Adj_Attr_Tbl	      => x_Price_Adj_Attr_Tbl,
1845 	    X_Price_Adj_Rltship_Tbl	 => x_Price_Adj_Rltship_Tbl,
1846 	    X_Ln_Price_Attributes_Tbl	 => x_Ln_Price_Attributes_Tbl,
1847 	    X_Ln_Payment_Tbl		 => x_Ln_Payment_Tbl,
1848 	    X_Ln_Shipment_Tbl		 => x_Ln_Shipment_Tbl,
1849 	    X_Ln_Freight_Charge_Tbl	 => x_Ln_Freight_Charge_Tbl,
1850 	    X_Ln_Tax_Detail_Tbl		 => x_Ln_Tax_Detail_Tbl,
1851          X_Ln_Sales_Credit_Tbl      => x_ln_Sales_Credit_Tbl,
1852          X_Ln_Quote_Party_Tbl       => x_ln_Quote_Party_Tbl,
1853          x_Qte_Access_Tbl           => x_Qte_Access_Tbl,
1854          x_Template_Tbl             => x_Template_Tbl,
1855 	    X_Related_Obj_Tbl          => X_Related_Obj_Tbl,
1856 	    X_Return_Status            => x_return_status,
1857 	    X_Msg_Count                => x_msg_count,
1858 	    X_Msg_Data                 => x_msg_data);
1859 
1860    if aso_debug_pub.g_debug_flag = 'Y' then
1861        aso_debug_pub.add('After call to the second overloaded create_quote procedure: x_return_status: '|| x_return_status, 1, 'Y');
1862    end if;
1863 
1864 END Create_Quote;
1865 
1866 
1867 --   *******************************************************
1868 --    Start of Comments
1869 --   *******************************************************
1870 --   API Name:  Update_quote
1871 --   Type    :  Public
1872 --   Pre-Req :
1873 --   Parameters:
1874 
1875 --  This is an overloaded procedure. It takes additional attributes
1876 --  which include the hd_attributes, sales credits and quote party record types
1877 
1878 
1879 PROCEDURE Update_quote(
1880     P_Api_Version_Number         IN   NUMBER,
1881     P_Init_Msg_List              IN   VARCHAR2                                := FND_API.G_FALSE,
1882     P_Commit                     IN   VARCHAR2                                := FND_API.G_FALSE,
1883     P_Validation_Level 	        IN   NUMBER                                  := FND_API.G_VALID_LEVEL_FULL,
1884     P_Control_Rec		        IN   Control_Rec_Type                        := G_Miss_Control_Rec,
1885     P_Qte_Header_Rec		   IN   Qte_Header_Rec_Type                     := G_MISS_Qte_Header_Rec,
1886     P_hd_Price_Attributes_Tbl	   IN   ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := G_Miss_Price_Attributes_Tbl,
1887     P_hd_Payment_Tbl		   IN   ASO_QUOTE_PUB.Payment_Tbl_Type          := G_MISS_PAYMENT_TBL,
1888     P_hd_Shipment_Tbl		   IN   ASO_QUOTE_PUB.Shipment_Tbl_Type         := G_MISS_SHIPMENT_TBL,
1889     P_hd_Freight_Charge_Tbl	   IN   ASO_QUOTE_PUB.Freight_Charge_Tbl_Type   := G_Miss_Freight_Charge_Tbl,
1890     P_hd_Tax_Detail_Tbl		   IN   ASO_QUOTE_PUB.Tax_Detail_Tbl_Type       := G_Miss_Tax_Detail_Tbl,
1891     P_hd_Attr_Ext_Tbl		   IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
1892     P_hd_Sales_Credit_Tbl        IN   Sales_Credit_Tbl_Type                   := G_MISS_Sales_Credit_Tbl,
1893     P_hd_Quote_Party_Tbl         IN   Quote_Party_Tbl_Type                    := G_MISS_Quote_Party_Tbl,
1894     P_Qte_Line_Tbl		        IN   Qte_Line_Tbl_Type                       := G_MISS_QTE_LINE_TBL,
1895     P_Qte_Line_Dtl_Tbl		   IN   Qte_Line_Dtl_Tbl_Type                   := G_MISS_QTE_LINE_DTL_TBL,
1896     P_Line_Attr_Ext_Tbl		   IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
1897     P_line_rltship_tbl		   IN   Line_Rltship_Tbl_Type                   := G_MISS_Line_Rltship_Tbl,
1898     P_Price_Adjustment_Tbl	   IN   Price_Adj_Tbl_Type                      := G_Miss_Price_Adj_Tbl,
1899     P_Price_Adj_Attr_Tbl	        IN   Price_Adj_Attr_Tbl_Type                 := G_Miss_PRICE_ADJ_ATTR_Tbl,
1900     P_Price_Adj_Rltship_Tbl	   IN   Price_Adj_Rltship_Tbl_Type              := G_Miss_Price_Adj_Rltship_Tbl,
1901     P_Ln_Price_Attributes_Tbl	   IN   Price_Attributes_Tbl_Type               := G_Miss_Price_Attributes_Tbl,
1902     P_Ln_Payment_Tbl		   IN   Payment_Tbl_Type                        := G_MISS_PAYMENT_TBL,
1903     P_Ln_Shipment_Tbl		   IN   Shipment_Tbl_Type                       := G_MISS_SHIPMENT_TBL,
1904     P_Ln_Freight_Charge_Tbl	   IN   Freight_Charge_Tbl_Type                 := G_Miss_Freight_Charge_Tbl,
1905     P_Ln_Tax_Detail_Tbl		   IN   Tax_Detail_Tbl_Type                     := G_Miss_Tax_Detail_Tbl,
1906     P_ln_Sales_Credit_Tbl        IN   Sales_Credit_Tbl_Type                   := G_MISS_Sales_Credit_Tbl,
1907     P_ln_Quote_Party_Tbl         IN   Quote_Party_Tbl_Type                    := G_MISS_Quote_Party_Tbl,
1908     x_Qte_Header_Rec		   OUT NOCOPY /* file.sql.39 change */  Qte_Header_Rec_Type,
1909     X_Qte_Line_Tbl		        OUT NOCOPY /* file.sql.39 change */  Qte_Line_Tbl_Type,
1910     X_Qte_Line_Dtl_Tbl		   OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_Tbl_Type,
1911     X_Hd_Price_Attributes_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
1912     X_Hd_Payment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
1913     X_Hd_Shipment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
1914     X_Hd_Freight_Charge_Tbl	   OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
1915     X_Hd_Tax_Detail_Tbl		   OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
1916     X_hd_Attr_Ext_Tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
1917     X_hd_Sales_Credit_Tbl        OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
1918     X_hd_Quote_Party_Tbl         OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
1919     x_Line_Attr_Ext_Tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
1920     X_line_rltship_tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Rltship_Tbl_Type,
1921     X_Price_Adjustment_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
1922     X_Price_Adj_Attr_Tbl	        OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
1923     X_Price_Adj_Rltship_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Adj_Rltship_Tbl_Type,
1924     X_Ln_Price_Attributes_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
1925     X_Ln_Payment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
1926     X_Ln_Shipment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
1927     X_Ln_Freight_Charge_Tbl	   OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
1928     X_Ln_Tax_Detail_Tbl		   OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
1929     X_Ln_Sales_Credit_Tbl        OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
1930     X_Ln_Quote_Party_Tbl         OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
1931     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
1932     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
1933     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
1934     )
1935 IS
1936     x_Qte_Access_Tbl           Qte_Access_Tbl_Type;
1937     x_Template_Tbl             Template_Tbl_Type;
1938     X_Related_Obj_Tbl          Related_Obj_Tbl_Type;
1939 BEGIN
1940      aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
1941 
1942      if aso_debug_pub.g_debug_flag = 'Y' then
1943          aso_debug_pub.add('Before call to the second overloaded update_quote procedure.',1, 'Y');
1944      end if;
1945 
1946      Update_quote(
1947 	    P_Api_Version_Number	      => 1.0,
1948 	    P_Init_Msg_List		      => p_init_msg_list,
1949 	    P_Commit			      => p_commit,
1950 	    P_Control_Rec		      => p_control_rec,
1951 	    P_qte_header_rec		 => p_qte_header_rec,
1952 	    P_Hd_Price_Attributes_Tbl	 => p_Hd_Price_Attributes_Tbl,
1953 	    P_Hd_Payment_Tbl		 => p_Hd_Payment_Tbl,
1954 	    P_Hd_Shipment_Tbl		 => p_Hd_Shipment_Tbl,
1955 	    P_hd_Sales_Credit_Tbl	 => P_hd_Sales_Credit_Tbl,   --Yogeshwar(# Added parameter to address sales credit allocation issue)
1956 	    P_ln_Sales_Credit_Tbl	 => P_ln_Sales_Credit_Tbl,   --Yogeshwar(# Added parameter to address sales credit allocation issue)
1957 	    P_Hd_Freight_Charge_Tbl	 => p_Hd_Freight_Charge_Tbl,
1958 	    P_Hd_Tax_Detail_Tbl		 => p_Hd_Tax_Detail_Tbl,
1959 	    P_Qte_Line_Tbl		      => p_Qte_Line_Tbl,
1960 	    P_Qte_Line_Dtl_Tbl		 => p_Qte_Line_Dtl_Tbl,
1961 	    P_Line_Attr_Ext_Tbl		 => P_Line_Attr_Ext_Tbl,
1962 	    P_Line_rltship_tbl		 => p_Line_Rltship_Tbl,
1963 	    P_Price_Adjustment_Tbl	 => p_Price_Adjustment_Tbl,
1964 	    P_Price_Adj_Attr_Tbl	      => P_Price_Adj_Attr_Tbl,
1965 	    P_Price_Adj_Rltship_Tbl	 => p_Price_Adj_Rltship_Tbl,
1966 	    P_Ln_Price_Attributes_Tbl	 => p_Ln_Price_Attributes_Tbl,
1967 	    P_Ln_Payment_Tbl		 => p_Ln_Payment_Tbl,
1968 	    P_Ln_Shipment_Tbl		 => p_Ln_Shipment_Tbl,
1969 	    P_Ln_Freight_Charge_Tbl	 => p_Ln_Freight_Charge_Tbl,
1970 	    P_Ln_Tax_Detail_Tbl		 => p_Ln_Tax_Detail_Tbl,
1971 	    x_qte_header_rec		 => x_qte_header_rec,
1972 	    X_Hd_Price_Attributes_Tbl	 => x_Hd_Price_Attributes_Tbl,
1973 	    X_Hd_Payment_Tbl		 => x_Hd_Payment_Tbl,
1974 	    X_Hd_Shipment_tbl		 => x_Hd_Shipment_tbl,
1975 	    X_Hd_Freight_Charge_Tbl	 => x_Hd_Freight_Charge_Tbl,
1976 	    X_Hd_Tax_Detail_Tbl		 => x_Hd_Tax_Detail_Tbl,
1977          X_hd_Attr_Ext_Tbl		 => X_hd_Attr_Ext_Tbl,
1978          X_hd_Sales_Credit_Tbl      => X_hd_Sales_Credit_Tbl,
1979          X_hd_Quote_Party_Tbl       => X_hd_Quote_Party_Tbl,
1980 	    X_Qte_Line_Tbl		      => x_Qte_Line_Tbl,
1981 	    X_Qte_Line_Dtl_Tbl		 => x_Qte_Line_Dtl_Tbl,
1982 	    x_Line_Attr_Ext_Tbl		 => x_Line_Attr_Ext_Tbl,
1983 	    X_Line_rltship_tbl		 => x_Line_Rltship_Tbl,
1984 	    X_Price_Adjustment_Tbl	 => x_Price_Adjustment_Tbl,
1985 	    x_Price_Adj_Attr_Tbl	      => x_Price_Adj_Attr_Tbl,
1986 	    X_Price_Adj_Rltship_Tbl	 => x_Price_Adj_Rltship_Tbl,
1987 	    X_Ln_Price_Attributes_Tbl	 => x_Ln_Price_Attributes_Tbl,
1988 	    X_Ln_Payment_Tbl		 => x_Ln_Payment_Tbl,
1989 	    X_Ln_Shipment_Tbl		 => x_Ln_Shipment_Tbl,
1990 	    X_Ln_Freight_Charge_Tbl	 => x_Ln_Freight_Charge_Tbl,
1991 	    X_Ln_Tax_Detail_Tbl		 => x_Ln_Tax_Detail_Tbl,
1992          X_Ln_Sales_Credit_Tbl      => X_ln_Sales_Credit_Tbl,
1993          X_Ln_Quote_Party_Tbl       => X_ln_Quote_Party_Tbl,
1994          x_Qte_Access_Tbl           => x_Qte_Access_Tbl,
1995          x_Template_Tbl             => x_Template_Tbl,
1996 	    X_Related_Obj_Tbl          => X_Related_Obj_Tbl,
1997 	    X_Return_Status            => x_return_status,
1998 	    X_Msg_Count                => x_msg_count,
1999 	    X_Msg_Data                 => x_msg_data);
2000 
2001    if aso_debug_pub.g_debug_flag = 'Y' then
2002        aso_debug_pub.add('After call to the second overloaded update_quote procedure: x_return_status: '|| x_return_status, 1, 'Y');
2003    end if;
2004 
2005 End Update_quote;
2006 
2007 
2008 
2009 
2010 
2011 --   *******************************************************
2012 --    Start of Comments
2013 --   *******************************************************
2014 --   API Name:  Submit_Quote
2015 --   Type    :  Public
2016 --   Pre-Req :
2017 --   Parameters:
2018 --   overloaded function includes the p_commit flag
2019 --
2020 --   End of Comments
2021 --
2022 PROCEDURE Submit_quote(
2023     P_Api_Version_Number         IN   NUMBER,
2024     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
2025     P_commit                     IN   VARCHAR2 ,
2026     p_control_rec		        IN   Submit_Control_Rec_Type
2027 					                          := G_MISS_Submit_Control_Rec,
2028     P_Qte_Header_Id		        IN   NUMBER,
2029     x_order_header_rec		   OUT NOCOPY /* file.sql.39 change */  Order_Header_Rec_Type,
2030     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
2031     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
2032     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
2033     )
2034 IS
2035 BEGIN
2036 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
2037 Submit_quote(
2038     P_Api_Version_Number       => P_Api_Version_Number,
2039     P_Init_Msg_List            =>  P_Init_Msg_List  ,
2040     P_control_rec		=> P_control_rec,
2041     P_Qte_Header_Id	 => 	P_Qte_Header_Id,
2042     x_order_header_rec		 => x_order_header_rec,
2043     X_Return_Status              => X_Return_Status,
2044     X_Msg_Count                  => X_Msg_Count,
2045     X_Msg_Data                   => X_Msg_Data
2046     );
2047   IF FND_API.to_Boolean( p_commit )
2048       THEN
2049           COMMIT WORK;
2050       END IF;
2051 END;
2052 
2053 
2054 --   *******************************************************
2055 --    Start of Comments
2056 --   *******************************************************
2057 --   API Name:  Create_Quote_Line
2058 --   Type    :  Public
2059 --   Pre-Req :
2060 --   Parameters:
2061 
2062 
2063 --
2064 --   End of Comments
2065 --
2066 PROCEDURE Create_Quote_Line(
2067 
2068     P_Api_Version_Number   IN   NUMBER,
2069     P_Init_Msg_List        IN   VARCHAR2     := FND_API.G_FALSE,
2070     P_Commit               IN   VARCHAR2     := FND_API.G_FALSE,
2071     P_Validation_Level 	IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
2072     P_Qte_Header_Rec           IN    Qte_Header_Rec_Type  := G_MISS_Qte_Header_Rec,
2073     P_Qte_Line_Rec         IN   Qte_Line_Rec_Type  := G_MISS_qte_line_REC,
2074     P_Control_Rec          IN   Control_rec_Type   := G_MISS_control_REC,
2075     P_Qte_Line_Dtl_Tbl    IN   Qte_Line_Dtl_Tbl_Type:= G_MISS_qte_line_dtl_TBL,
2076     P_Line_Attribs_Ext_Tbl IN   Line_Attribs_Ext_Tbl_type
2077                                         := G_Miss_Line_Attribs_Ext_Tbl,
2078     P_Payment_Tbl          IN   Payment_Tbl_Type   := G_MISS_Payment_TBL,
2079     P_Price_Adj_Tbl        IN   Price_Adj_Tbl_Type := G_MISS_Price_Adj_TBL,
2080     P_Price_Attributes_Tbl IN   Price_Attributes_Tbl_Type := G_MISS_Price_attributes_TBL,
2081     P_Price_Adj_Attr_Tbl    IN  Price_Adj_Attr_Tbl_Type
2082 					:= G_Miss_PRICE_ADJ_ATTR_Tbl,
2083     P_Shipment_Tbl          IN  Shipment_Tbl_Type   := G_MISS_shipment_TBL,
2084     P_Tax_Detail_Tbl        IN  Tax_Detail_Tbl_Type:= G_MISS_tax_detail_TBL,
2085     P_Freight_Charge_Tbl    IN  Freight_Charge_Tbl_Type   := G_MISS_freight_charge_TBL,
2086     P_Sales_Credit_Tbl        IN   Sales_Credit_Tbl_Type
2087                                         := G_MISS_Sales_Credit_Tbl,
2088     P_Quote_Party_Tbl         IN   Quote_Party_Tbl_Type
2089                                         := G_MISS_Quote_Party_Tbl,
2090     P_Update_Header_Flag    IN  VARCHAR2   := FND_API.G_TRUE,
2091     X_Qte_Line_Rec          OUT NOCOPY /* file.sql.39 change */  Qte_Line_Rec_Type,
2092     X_Qte_Line_Dtl_TBL      OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_TBL_Type,
2093     X_Line_Attribs_Ext_Tbl  OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_type,
2094     X_Payment_Tbl           OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
2095     X_Price_Adj_Tbl         OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
2096     X_Price_Attributes_Tbl  OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type ,
2097     X_Price_Adj_Attr_Tbl    OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
2098     X_Shipment_Tbl          OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
2099     X_Tax_Detail_Tbl        OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
2100     X_Freight_Charge_Tbl    OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type ,
2101     X_Sales_Credit_Tbl      OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
2102     X_Quote_Party_Tbl       OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
2103     X_Return_Status         OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
2104     X_Msg_Count             OUT NOCOPY /* file.sql.39 change */  NUMBER,
2105     X_Msg_Data              OUT NOCOPY /* file.sql.39 change */  VARCHAR2
2106 )
2107 IS
2108     l_api_name                CONSTANT VARCHAR2(30) := 'CREATE_QUOTE_LINE';
2109     l_api_version_number      CONSTANT NUMBER   := 1.0;
2110 
2111 
2112         l_Qte_Line_Rec          Qte_Line_Rec_Type  ;
2113         l_Qte_Line_Rec_out      Qte_Line_Rec_Type  ;
2114         l_Payment_Tbl           Payment_Tbl_Type ;
2115         l_Price_Adj_Tbl         Price_Adj_Tbl_Type;
2116 	l_Qte_Line_Dtl_rec      Qte_Line_Dtl_rec_Type ;
2117 	l_Shipment_Tbl          Shipment_Tbl_Type;
2118 	l_Tax_Detail_Tbl        Tax_Detail_Tbl_Type;
2119 	l_Freight_Charge_Tbl    Freight_Charge_Tbl_Type;
2120 	l_Line_Rltship_Tbl      Line_Rltship_Tbl_Type;
2121 	l_Price_Attributes_Tbl  Price_Attributes_Tbl_Type;
2122 	l_Price_Adj_rltship_Tbl Price_Adj_Rltship_Tbl_Type;
2123 	l_Price_Adj_Attr_Tbl    Price_Adj_Attr_Tbl_Type;
2124 	l_Line_Attribs_Ext_Tbl  Line_Attribs_Ext_Tbl_type;
2125 	l_Qte_Line_Dtl_tbl      Qte_Line_Dtl_tbl_Type;
2126         l_Sales_Credit_Tbl      Sales_Credit_Tbl_Type ;
2127         l_Quote_Party_Tbl       Quote_Party_Tbl_Type;
2128         l_Control_Rec           Control_rec_Type;
2129         l_update_header_flag    VARCHAR2(10);
2130 
2131     my_message   VARCHAR2(2000);
2132 
2133 BEGIN
2134 
2135       -- Standard Start of API savepoint
2136       SAVEPOINT CREATE_QUOTE_LINE_PUB;
2137 
2138 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
2139 
2140       -- Standard call to check for call compatibility.
2141       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2142                          	             p_api_version_number,
2143                                            l_api_name,
2144                                            G_PKG_NAME)
2145       THEN
2146           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2147       END IF;
2148 
2149 
2150       -- Initialize message list if p_init_msg_list is set to TRUE.
2151       IF FND_API.to_Boolean( p_init_msg_list )
2152       THEN
2153           FND_MSG_PUB.initialize;
2154       END IF;
2155 
2156 
2157 
2158 
2159       -- Initialize API return status to SUCCESS
2160       x_return_status := FND_API.G_RET_STS_SUCCESS;
2161 
2162       --
2163       -- API body
2164       --
2165 
2166       -- mapping to local variables
2167 
2168         l_Qte_Line_Rec          := p_Qte_Line_Rec  ;
2169         l_Payment_Tbl           := p_Payment_Tbl   ;
2170         l_Price_Adj_Tbl         := p_Price_Adj_Tbl ;
2171 	l_Shipment_Tbl          := p_Shipment_Tbl  ;
2172 	l_Tax_Detail_Tbl        := p_Tax_Detail_Tbl;
2173 	l_Freight_Charge_Tbl    := p_Freight_Charge_Tbl   ;
2174 --	l_Line_Rltship_Tbl      := p_Line_Rltship_Tbl     ;
2175 	l_Price_Attributes_Tbl  := p_Price_Attributes_Tbl ;
2176 --	l_Price_Adj_rltship_Tbl := p_Price_Adj_Rltship_Tbl;
2177 	l_Price_Adj_Attr_Tbl    := p_Price_Adj_Attr_Tbl   ;
2178 	l_Line_Attribs_Ext_Tbl  := p_Line_Attribs_Ext_Tbl ;
2179 	l_Qte_Line_Dtl_tbl      := p_Qte_Line_Dtl_tbl     ;
2180         l_control_rec           := p_control_rec          ;
2181         l_update_header_flag    := p_update_header_flag   ;
2182         l_Quote_Party_Tbl       := P_Quote_Party_Tbl      ;
2183         l_Sales_Credit_Tbl      := P_Sales_Credit_Tbl     ;
2184 
2185 
2186       --  call user hooks
2187       -- customer pre processing
2188 
2189         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
2190           ASO_QUOTE_CUHK.Create_Quote_Line_PRE(
2191     	  P_Qte_Line_Rec        => l_qte_line_rec      ,
2192     	  P_Control_Rec         => l_control_rec       ,
2193     	  P_Qte_Line_Dtl_Tbl    => l_qte_line_dtl_tbl  ,
2194     	  P_Line_Attribs_Ext_Tbl =>l_line_attribs_ext_tbl,
2195           P_Payment_Tbl         => l_payment_tbl,
2196     	  P_Price_Adj_Tbl       => l_price_adj_tbl,
2197     	  P_Price_Attributes_Tbl =>l_price_attributes_tbl,
2198     	  P_Price_Adj_Attr_Tbl  => l_price_adj_attr_tbl,
2199           P_Shipment_Tbl        => l_shipment_tbl      ,
2200     	  P_Tax_Detail_Tbl      => l_tax_detail_tbl    ,
2201     	  P_Freight_Charge_Tbl  => l_freight_charge_tbl,
2202           P_Sales_Credit_Tbl    => l_Sales_Credit_Tbl  ,
2203           P_Quote_Party_Tbl     => l_Quote_Party_Tbl,
2204     	  P_Update_Header_Flag  => l_update_header_flag,
2205     	  X_Return_Status       => x_return_status ,
2206     	  X_Msg_Count           => x_msg_count     ,
2207           X_Msg_Data            => x_msg_data
2208           );
2209 
2210           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2211              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2212 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2213 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Create_Quote_Line_PRE', FALSE);
2214 		  FND_MSG_PUB.ADD;
2215              END IF;
2216                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2217                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2218                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2219                     RAISE FND_API.G_EXC_ERROR;
2220                  END IF;
2221           END IF;
2222       END IF; -- customer hook
2223 
2224 
2225       -- vertical hook
2226         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
2227           ASO_QUOTE_VUHK.Create_Quote_Line_PRE(
2228     	  P_Qte_Line_Rec        => l_qte_line_rec      ,
2229     	  P_Control_Rec         => l_control_rec       ,
2230     	  P_Qte_Line_Dtl_Tbl    => l_qte_line_dtl_tbl  ,
2231     	  P_Line_Attribs_Ext_Tbl =>l_line_attribs_ext_tbl,
2232           P_Payment_Tbl         => l_payment_tbl,
2233     	  P_Price_Adj_Tbl       => l_price_adj_tbl,
2234     	  P_Price_Attributes_Tbl =>l_price_attributes_tbl,
2235     	  P_Price_Adj_Attr_Tbl  => l_price_adj_attr_tbl,
2236           P_Shipment_Tbl        => l_shipment_tbl      ,
2237     	  P_Tax_Detail_Tbl      => l_tax_detail_tbl    ,
2238     	  P_Freight_Charge_Tbl  => l_freight_charge_tbl,
2239           P_Sales_Credit_Tbl    => l_Sales_Credit_Tbl  ,
2240           P_Quote_Party_Tbl     => l_Quote_Party_Tbl,
2241     	  P_Update_Header_Flag  => l_update_header_flag,
2242     	  X_Return_Status       => x_return_status ,
2243     	  X_Msg_Count           => x_msg_count     ,
2244           X_Msg_Data            => x_msg_data
2245           );
2246 
2247           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2248              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2249 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2250 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Create_Quote_Line_PRE', FALSE);
2251 		  FND_MSG_PUB.ADD;
2252              END IF;
2253                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2254                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2255                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2256                     RAISE FND_API.G_EXC_ERROR;
2257                  END IF;
2258           END IF;
2259       END IF; -- vertical hook
2260 
2261 
2262 
2263 
2264       -- Convert the values to ids
2265       Convert_Line_Values_To_Ids (
2266 	    p_qte_line_rec	=> l_qte_line_rec,
2267 	    x_qte_line_rec	=> l_qte_line_rec_out);
2268 
2269 	    l_qte_line_rec := l_qte_line_rec_out;
2270 
2271 
2272 /*      FOR i IN 1..p_shipment_tbl.count LOOP
2273         Convert_Shipment_Values_To_Ids (
2274 	    p_shipment_rec	=> p_shipment_tbl(i),
2275 	    x_shipment_rec	=> l_shipment_tbl(i));
2276       END LOOP;
2277 */
2278 
2279      -- Call Private API
2280   ASO_QUOTE_LINES_PVT.Create_Quote_Lines(
2281     P_Api_Version_Number  => 1.0,
2282     P_Init_Msg_List       => p_init_msg_list,
2283     P_Commit              => p_commit,
2284  --   P_Validation_Level    => ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM,
2285     P_Validation_Level    => FND_API.G_VALID_LEVEL_FULL,
2286     p_qte_header_rec      => p_qte_header_rec,
2287     P_Qte_Line_Rec        => l_qte_line_rec,
2288     P_Control_REC         => l_control_rec   ,
2289     P_Payment_Tbl         => l_payment_tbl   ,
2290     P_Price_Adj_Tbl       => l_price_adj_tbl ,
2291     P_Qte_Line_Dtl_Tbl    => l_Qte_Line_Dtl_Tbl,
2292     P_Shipment_Tbl        => l_Shipment_Tbl ,
2293     P_Tax_Detail_Tbl      => l_Tax_Detail_Tbl ,
2294     P_Freight_Charge_Tbl  => l_Freight_Charge_Tbl,
2295     P_Price_Attributes_Tbl => l_Price_Attributes_Tbl,
2296     P_Price_Adj_Attr_Tbl    =>l_Price_Adj_Attr_Tbl,
2297     P_Line_Attribs_Ext_Tbl  =>l_Line_Attribs_Ext_Tbl,
2298     P_Sales_Credit_Tbl    => l_Sales_Credit_Tbl  ,
2299     P_Quote_Party_Tbl     => l_Quote_Party_Tbl,
2300     P_Update_Header_Flag    =>l_Update_Header_Flag ,
2301     X_qte_line_rec         => X_qte_line_rec,
2302     X_payment_tbl	   => x_payment_tbl,
2303     X_Price_Adj_Tbl        => x_price_adj_tbl,
2304     X_Qte_Line_Dtl_Tbl     => x_qte_line_dtl_tbl,
2305     X_Shipment_Tbl         => x_shipment_tbl,
2306     X_Tax_Detail_Tbl       => x_tax_detail_tbl,
2307     X_Freight_Charge_Tbl   => x_freight_charge_tbl,
2308     X_Price_Attributes_Tbl => x_price_attributes_tbl,
2309     X_Price_Adj_Attr_Tbl    => x_Price_Adj_Attr_Tbl,
2310     X_Line_Attribs_Ext_Tbl  => x_Line_Attribs_Ext_Tbl,
2311     X_Sales_Credit_Tbl      => X_Sales_Credit_Tbl,
2312     X_Quote_Party_Tbl      => X_Quote_Party_Tbl,
2313     X_Return_Status        => x_return_status,
2314     X_Msg_Count            => x_msg_count,
2315     X_Msg_Data             => x_msg_data
2316     );
2317 
2318 
2319       -- Check return status from the above procedure call
2320       IF x_return_status = FND_API.G_RET_STS_ERROR then
2321           raise FND_API.G_EXC_ERROR;
2322       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2323           raise FND_API.G_EXC_UNEXPECTED_ERROR;
2324       END IF;
2325  my_message := fnd_msg_pub.get(p_encoded => FND_API.g_false);
2326         while (my_message is not null) loop
2327             my_message := fnd_msg_pub.get(p_encoded => FND_API.g_false);
2328         end loop;
2329 
2330       --
2331       -- End of API body.
2332       --
2333 
2334 
2335 
2336        --  call user hooks
2337       -- customer post processing
2338 
2339         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
2340           ASO_QUOTE_CUHK.Create_Quote_Line_POST(
2341     	  P_Qte_Line_Rec        => x_qte_line_rec      ,
2342     	  P_Control_Rec         => l_control_rec       ,
2343     	  P_Qte_Line_Dtl_Tbl    => x_qte_line_dtl_tbl  ,
2344     	  P_Line_Attribs_Ext_Tbl =>x_line_attribs_ext_tbl,
2345           P_Payment_Tbl         => x_payment_tbl,
2346     	  P_Price_Adj_Tbl       => x_price_adj_tbl,
2347     	  P_Price_Attributes_Tbl =>x_price_attributes_tbl,
2348     	  P_Price_Adj_Attr_Tbl  => x_price_adj_attr_tbl,
2349           P_Shipment_Tbl        => x_shipment_tbl      ,
2350     	  P_Tax_Detail_Tbl      => x_tax_detail_tbl    ,
2351     	  P_Freight_Charge_Tbl  => x_freight_charge_tbl,
2352            P_Sales_Credit_Tbl    => x_Sales_Credit_Tbl  ,
2353           P_Quote_Party_Tbl     => x_Quote_Party_Tbl,
2354     	  P_Update_Header_Flag  => l_update_header_flag,
2355     	  X_Return_Status       => x_return_status ,
2356     	  X_Msg_Count           => x_msg_count     ,
2357           X_Msg_Data            => x_msg_data
2358           );
2359 
2360           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2361              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2362 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2363 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Create_Quote_Line_POST', FALSE);
2364 		  FND_MSG_PUB.ADD;
2365              END IF;
2366                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2367                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2368                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2369                     RAISE FND_API.G_EXC_ERROR;
2370                  END IF;
2371           END IF;
2372       END IF; -- customer hook
2373 
2374 	 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2375       aso_debug_pub.add('aso_quote_vuhk: before if create quote line post (1) '||x_return_status,1, 'N');
2376 	 END IF;
2377 
2378       -- vertical hook
2379         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
2380 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
2381          aso_debug_pub.add('aso_quote_vuhk: inside if create quote line post (1)'||x_return_status,1, 'N');
2382 	    END IF;
2383           ASO_QUOTE_VUHK.Create_Quote_Line_POST(
2384     	  P_Qte_Line_Rec        => x_qte_line_rec      ,
2385     	  P_Control_Rec         => l_control_rec       ,
2386     	  P_Qte_Line_Dtl_Tbl    => x_qte_line_dtl_tbl  ,
2387     	  P_Line_Attribs_Ext_Tbl =>x_line_attribs_ext_tbl,
2388           P_Payment_Tbl         => x_payment_tbl,
2389     	  P_Price_Adj_Tbl       => x_price_adj_tbl,
2390     	  P_Price_Attributes_Tbl =>x_price_attributes_tbl,
2391     	  P_Price_Adj_Attr_Tbl  => x_price_adj_attr_tbl,
2392           P_Shipment_Tbl        => x_shipment_tbl      ,
2393     	  P_Tax_Detail_Tbl      => x_tax_detail_tbl    ,
2394     	  P_Freight_Charge_Tbl  => x_freight_charge_tbl,
2395            P_Sales_Credit_Tbl    => x_Sales_Credit_Tbl  ,
2396           P_Quote_Party_Tbl     => x_Quote_Party_Tbl,
2397     	  P_Update_Header_Flag  => l_update_header_flag,
2398     	  X_Return_Status       => x_return_status ,
2399     	  X_Msg_Count           => x_msg_count     ,
2400           X_Msg_Data            => x_msg_data
2401           );
2402 
2403 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
2404          aso_debug_pub.add('aso_quote_vuhk: after if create quote line post (1)'||x_return_status,1, 'N');
2405 	    END IF;
2406 
2407 
2408           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2409              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2410 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2411 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Create_Quote_Line_POST', FALSE);
2412 		  FND_MSG_PUB.ADD;
2413              END IF;
2414                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2415                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2416                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2417                     RAISE FND_API.G_EXC_ERROR;
2418                  END IF;
2419           END IF;
2420       END IF; -- vertical hook
2421 
2422 
2423 
2424 
2425       -- Standard check for p_commit
2426       IF FND_API.to_Boolean( p_commit )
2427       THEN
2428           COMMIT WORK;
2429       END IF;
2430 
2431 
2432 
2433 
2434       -- Standard call to get message count and if count is 1, get message info.
2435       FND_MSG_PUB.Count_And_Get
2436       (  p_count          =>   x_msg_count,
2437          p_data           =>   x_msg_data
2438       );
2439 
2440       EXCEPTION
2441           WHEN FND_API.G_EXC_ERROR THEN
2442               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
2443                    P_API_NAME => L_API_NAME
2444                   ,P_PKG_NAME => G_PKG_NAME
2445                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
2446                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
2447                   ,P_SQLCODE => SQLCODE
2448                   ,P_SQLERRM => SQLERRM
2449                   ,X_MSG_COUNT => X_MSG_COUNT
2450                   ,X_MSG_DATA => X_MSG_DATA
2451                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2452 
2453           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2454               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
2455                    P_API_NAME => L_API_NAME
2456                   ,P_PKG_NAME => G_PKG_NAME
2457                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
2458                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
2459                   ,P_SQLCODE => SQLCODE
2460                   ,P_SQLERRM => SQLERRM
2461                   ,X_MSG_COUNT => X_MSG_COUNT
2462                   ,X_MSG_DATA => X_MSG_DATA
2463                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2464 
2465           WHEN OTHERS THEN
2466               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
2467                    P_API_NAME => L_API_NAME
2468                   ,P_PKG_NAME => G_PKG_NAME
2469                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
2470                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
2471                   ,P_SQLCODE => SQLCODE
2472                   ,P_SQLERRM => SQLERRM
2473                   ,X_MSG_COUNT => X_MSG_COUNT
2474                   ,X_MSG_DATA => X_MSG_DATA
2475                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2476 END;
2477 
2478 
2479 --   *******************************************************
2480 --    Start of Comments
2481 --   *******************************************************
2482 --   API Name:  Update_Quote_Line
2483 --   Type    :  Public
2484 --   Pre-Req :
2485 --   Parameters:
2486 --   IN
2487 
2488 PROCEDURE Update_Quote_Line(
2489     P_Api_Version_Number  IN   NUMBER,
2490     P_Init_Msg_List       IN   VARCHAR2     := FND_API.G_FALSE,
2491     P_Commit              IN   VARCHAR2     := FND_API.G_FALSE,
2492     P_Validation_Level 	IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
2493     P_Qte_Header_Rec           IN    Qte_Header_Rec_Type  := G_MISS_Qte_Header_Rec,
2494     P_Qte_Line_Rec        IN    Qte_Line_Rec_Type  := G_MISS_qte_line_REC,
2495     P_Control_Rec         IN    Control_rec_Type   := G_MISS_control_REC,
2496     P_Qte_Line_Dtl_TBL   IN    Qte_Line_Dtl_tbl_Type:= G_MISS_qte_line_dtl_TBL,
2497     P_Line_Attribs_Ext_Tbl  IN   Line_Attribs_Ext_Tbl_type
2498                                         := G_Miss_Line_Attribs_Ext_Tbl,
2499     P_Payment_Tbl           IN    Payment_Tbl_Type   := G_MISS_Payment_TBL,
2500     P_Price_Adj_Tbl         IN    Price_Adj_Tbl_Type := G_MISS_Price_Adj_TBL,
2501     P_Price_Attributes_Tbl  IN   Price_Attributes_Tbl_Type := G_MISS_Price_attributes_TBL,
2502     P_Price_Adj_Attr_Tbl    IN   Price_Adj_Attr_Tbl_Type
2503 					:= G_Miss_PRICE_ADJ_ATTR_Tbl,
2504     P_Shipment_Tbl          IN    Shipment_Tbl_Type   := G_MISS_shipment_TBL,
2505     P_Tax_Detail_Tbl        IN    Tax_Detail_Tbl_Type:= G_MISS_tax_detail_TBL,
2506     P_Freight_Charge_Tbl    IN   Freight_Charge_Tbl_Type   := G_MISS_freight_charge_TBL,
2507     P_Sales_Credit_Tbl        IN   Sales_Credit_Tbl_Type
2508                                         := G_MISS_Sales_Credit_Tbl,
2509     P_Quote_Party_Tbl         IN   Quote_Party_Tbl_Type
2510                                         := G_MISS_Quote_Party_Tbl,
2511     P_Update_Header_Flag    IN   VARCHAR2   := FND_API.G_TRUE,
2512     X_Qte_Line_Rec          OUT NOCOPY /* file.sql.39 change */  Qte_Line_Rec_Type,
2513     X_Qte_Line_Dtl_TBL      OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_TBL_Type,
2514     X_Line_Attribs_Ext_Tbl  OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_type,
2515     X_Payment_Tbl           OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
2516     X_Price_Adj_Tbl         OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
2517     X_Price_Attributes_Tbl  OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type ,
2518     X_Price_Adj_Attr_Tbl    OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
2519     X_Shipment_Tbl          OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
2520     X_Tax_Detail_Tbl        OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
2521     X_Freight_Charge_Tbl    OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type ,
2522     X_Sales_Credit_Tbl      OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
2523     X_Quote_Party_Tbl       OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
2524     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
2525     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
2526     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
2527     )
2528 IS
2529 
2530      l_api_name                CONSTANT VARCHAR2(30) := 'UPDATE_QUOTE_LINE';
2531     l_api_version_number      CONSTANT NUMBER   := 1.0;
2532 
2533 
2534         l_Qte_Line_Rec          Qte_Line_Rec_Type  ;
2535         l_Qte_Line_Rec_out      Qte_Line_Rec_Type  ;
2536         l_Payment_Tbl           Payment_Tbl_Type ;
2537         l_Price_Adj_Tbl         Price_Adj_Tbl_Type;
2538 	l_Qte_Line_Dtl_rec      Qte_Line_Dtl_rec_Type ;
2539 	l_Shipment_Tbl          Shipment_Tbl_Type;
2540 	l_Tax_Detail_Tbl        Tax_Detail_Tbl_Type;
2541 	l_Freight_Charge_Tbl    Freight_Charge_Tbl_Type;
2542 	l_Line_Rltship_Tbl      Line_Rltship_Tbl_Type;
2543 	l_Price_Attributes_Tbl  Price_Attributes_Tbl_Type;
2544 	l_Price_Adj_rltship_Tbl Price_Adj_Rltship_Tbl_Type;
2545 	l_Price_Adj_Attr_Tbl    Price_Adj_Attr_Tbl_Type;
2546 	l_Line_Attribs_Ext_Tbl  Line_Attribs_Ext_Tbl_type;
2547 	l_Qte_Line_Dtl_tbl      Qte_Line_Dtl_tbl_Type;
2548         l_Control_Rec           Control_rec_Type;
2549         l_update_header_flag    VARCHAR2(10);
2550           l_Sales_Credit_Tbl      Sales_Credit_Tbl_Type ;
2551         l_Quote_Party_Tbl       Quote_Party_Tbl_Type;
2552 
2553 
2554 BEGIN
2555       -- Standard Start of API savepoint
2556       SAVEPOINT UPDATE_QUOTE_LINE_PUB;
2557 
2558 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
2559 
2560       -- Standard call to check for call compatibility.
2561       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2562                          	             p_api_version_number,
2563                                            l_api_name,
2564                                            G_PKG_NAME)
2565       THEN
2566           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2567       END IF;
2568 
2569 
2570       -- Initialize message list if p_init_msg_list is set to TRUE.
2571       IF FND_API.to_Boolean( p_init_msg_list )
2572       THEN
2573           FND_MSG_PUB.initialize;
2574       END IF;
2575 
2576 
2577 
2578 
2579       -- Initialize API return status to SUCCESS
2580       x_return_status := FND_API.G_RET_STS_SUCCESS;
2581 
2582       --
2583       -- API body
2584       --
2585 
2586              -- mapping to local variables
2587 
2588         l_Qte_Line_Rec          := p_Qte_Line_Rec  ;
2589         l_Payment_Tbl           := p_Payment_Tbl   ;
2590         l_Price_Adj_Tbl         := p_Price_Adj_Tbl ;
2591 	l_Shipment_Tbl          := p_Shipment_Tbl  ;
2592 	l_Tax_Detail_Tbl        := p_Tax_Detail_Tbl;
2593 	l_Freight_Charge_Tbl    := p_Freight_Charge_Tbl   ;
2594 --	l_Line_Rltship_Tbl      := p_Line_Rltship_Tbl     ;
2595 	l_Price_Attributes_Tbl  := p_Price_Attributes_Tbl ;
2596 --	l_Price_Adj_rltship_Tbl := p_Price_Adj_Rltship_Tbl;
2597 	l_Price_Adj_Attr_Tbl    := p_Price_Adj_Attr_Tbl   ;
2598 	l_Line_Attribs_Ext_Tbl  := p_Line_Attribs_Ext_Tbl ;
2599 	l_Qte_Line_Dtl_tbl      := p_Qte_Line_Dtl_tbl     ;
2600         l_control_rec           := p_control_rec          ;
2601         l_update_header_flag    := p_update_header_flag   ;
2602         l_Quote_Party_Tbl       := P_Quote_Party_Tbl      ;
2603         l_Sales_Credit_Tbl      := P_Sales_Credit_Tbl     ;
2604 
2605 
2606 
2607 
2608 
2609       --  call user hooks
2610       -- customer pre processing
2611 
2612         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
2613           ASO_QUOTE_CUHK.Update_Quote_Line_PRE(
2614     	  P_Qte_Line_Rec        => l_qte_line_rec      ,
2615     	  P_Control_Rec         => l_control_rec       ,
2616     	  P_Qte_Line_Dtl_Tbl    => l_qte_line_dtl_tbl  ,
2617     	  P_Line_Attribs_Ext_Tbl =>l_line_attribs_ext_tbl,
2618           P_Payment_Tbl         => l_payment_tbl,
2619     	  P_Price_Adj_Tbl       => l_price_adj_tbl,
2620     	  P_Price_Attributes_Tbl =>l_price_attributes_tbl,
2621     	  P_Price_Adj_Attr_Tbl  => l_price_adj_attr_tbl,
2622           P_Shipment_Tbl        => l_shipment_tbl      ,
2623     	  P_Tax_Detail_Tbl      => l_tax_detail_tbl    ,
2624     	  P_Freight_Charge_Tbl  => l_freight_charge_tbl,
2625            P_Sales_Credit_Tbl    => l_Sales_Credit_Tbl  ,
2626           P_Quote_Party_Tbl     => l_Quote_Party_Tbl,
2627     	  P_Update_Header_Flag  => l_update_header_flag,
2628     	  X_Return_Status       => x_return_status ,
2629     	  X_Msg_Count           => x_msg_count     ,
2630           X_Msg_Data            => x_msg_data
2631           );
2632 
2633           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2634              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2635 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2636 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Update_Quote_Line_PRE', FALSE);
2637 		  FND_MSG_PUB.ADD;
2638              END IF;
2639                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2640                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2641                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2642                     RAISE FND_API.G_EXC_ERROR;
2643                  END IF;
2644           END IF;
2645       END IF; -- customer hook
2646 
2647 
2648       -- vertical hook
2649         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
2650           ASO_QUOTE_VUHK.Update_Quote_Line_PRE(
2651     	  P_Qte_Line_Rec        => l_qte_line_rec      ,
2652     	  P_Control_Rec         => l_control_rec       ,
2653     	  P_Qte_Line_Dtl_Tbl    => l_qte_line_dtl_tbl  ,
2654     	  P_Line_Attribs_Ext_Tbl =>l_line_attribs_ext_tbl,
2655           P_Payment_Tbl         => l_payment_tbl,
2656     	  P_Price_Adj_Tbl       => l_price_adj_tbl,
2657     	  P_Price_Attributes_Tbl =>l_price_attributes_tbl,
2658     	  P_Price_Adj_Attr_Tbl  => l_price_adj_attr_tbl,
2659           P_Shipment_Tbl        => l_shipment_tbl      ,
2660     	  P_Tax_Detail_Tbl      => l_tax_detail_tbl    ,
2661     	  P_Freight_Charge_Tbl  => l_freight_charge_tbl,
2662            P_Sales_Credit_Tbl    => l_Sales_Credit_Tbl  ,
2663           P_Quote_Party_Tbl     => l_Quote_Party_Tbl,
2664     	  P_Update_Header_Flag  => l_update_header_flag,
2665     	  X_Return_Status       => x_return_status ,
2666     	  X_Msg_Count           => x_msg_count     ,
2667           X_Msg_Data            => x_msg_data
2668           );
2669 
2670           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2671              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2672 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2673 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Update_Quote_Line_PRE', FALSE);
2674 		  FND_MSG_PUB.ADD;
2675              END IF;
2676                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2677                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2678                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2679                     RAISE FND_API.G_EXC_ERROR;
2680                  END IF;
2681           END IF;
2682       END IF; -- vertical hook
2683 
2684 
2685 
2686 
2687 
2688 
2689 
2690 
2691       -- Convert the values to ids
2692       Convert_Line_Values_To_Ids (
2693 	    p_qte_line_rec	=> l_qte_line_rec,
2694 	    x_qte_line_rec	=> l_qte_line_rec_out);
2695 
2696 	    l_qte_line_rec := l_qte_line_rec_out;
2697 
2698 /*      FOR i IN 1..p_shipment_tbl.count LOOP
2699         Convert_Shipment_Values_To_Ids (
2700 	    p_shipment_rec	=> p_shipment_tbl(i),
2701 	    x_shipment_rec	=> l_shipment_tbl(i));
2702       END LOOP;
2703 */
2704 
2705 -- Call Private API
2706   ASO_QUOTE_LINES_PVT.Update_Quote_Line(
2707     P_Api_Version_Number  => 1.0,
2708     P_Init_Msg_List       => p_init_msg_list,
2709     P_Commit              => p_commit,
2710     P_Validation_Level    => p_validation_level,
2711     p_qte_header_rec      => p_qte_header_rec,
2712     P_Qte_Line_Rec        => l_qte_line_rec,
2713     P_Control_REC         => l_control_rec   ,
2714     P_Payment_Tbl         => l_payment_tbl   ,
2715     P_Price_Adj_Tbl       => l_price_adj_tbl ,
2716     P_Qte_Line_Dtl_TBL    => l_Qte_Line_Dtl_TBL ,
2717     P_Shipment_Tbl        => l_Shipment_Tbl ,
2718     P_Tax_Detail_Tbl      => l_Tax_Detail_Tbl ,
2719     P_Freight_Charge_Tbl  => l_Freight_Charge_Tbl,
2720     P_Price_Attributes_Tbl => l_Price_Attributes_Tbl,
2721     P_Price_Adj_Attr_Tbl    =>l_Price_Adj_Attr_Tbl,
2722     P_Line_Attribs_Ext_Tbl  =>l_Line_Attribs_Ext_Tbl,
2723     P_Sales_Credit_Tbl    => l_Sales_Credit_Tbl  ,
2724     P_Quote_Party_Tbl     => l_Quote_Party_Tbl,
2725     P_Update_Header_Flag    =>l_Update_Header_Flag ,
2726     X_qte_line_rec         => X_qte_line_rec,
2727     X_payment_tbl	   => x_payment_tbl,
2728     X_Price_Adj_Tbl        => x_price_adj_tbl,
2729     X_Qte_Line_Dtl_tbl     => x_qte_line_dtl_tbl,
2730     X_Shipment_Tbl         => x_shipment_tbl,
2731     X_Tax_Detail_Tbl       => x_tax_detail_tbl,
2732     X_Freight_Charge_Tbl   => x_freight_charge_tbl,
2733     X_Price_Attributes_Tbl => x_price_attributes_tbl,
2734     X_Price_Adj_Attr_Tbl    =>x_Price_Adj_Attr_Tbl,
2735     X_Line_Attribs_Ext_Tbl  =>x_Line_Attribs_Ext_Tbl,
2736     X_Sales_Credit_Tbl      => X_Sales_Credit_Tbl,
2737     X_Quote_Party_Tbl       => X_Quote_Party_Tbl,
2738     X_Return_Status        => x_return_status,
2739     X_Msg_Count            => x_msg_count,
2740     X_Msg_Data             => x_msg_data
2741     );
2742 
2743 
2744 
2745       -- Check return status from the above procedure call
2746       IF x_return_status = FND_API.G_RET_STS_ERROR then
2747           raise FND_API.G_EXC_ERROR;
2748       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2749           raise FND_API.G_EXC_UNEXPECTED_ERROR;
2750       END IF;
2751 
2752       --
2753       -- End of API body.
2754       --
2755 
2756 
2757 
2758        --  call user hooks
2759       -- customer post processing
2760 
2761         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
2762           ASO_QUOTE_CUHK.Update_Quote_Line_POST(
2763     	  P_Qte_Line_Rec        => x_qte_line_rec      ,
2764     	  P_Control_Rec         => l_control_rec       ,
2765     	  P_Qte_Line_Dtl_Tbl    => x_qte_line_dtl_tbl  ,
2766     	  P_Line_Attribs_Ext_Tbl =>x_line_attribs_ext_tbl,
2767           P_Payment_Tbl         => x_payment_tbl,
2768     	  P_Price_Adj_Tbl       => x_price_adj_tbl,
2769     	  P_Price_Attributes_Tbl =>x_price_attributes_tbl,
2770     	  P_Price_Adj_Attr_Tbl  => x_price_adj_attr_tbl,
2771           P_Shipment_Tbl        => x_shipment_tbl      ,
2772     	  P_Tax_Detail_Tbl      => x_tax_detail_tbl    ,
2773     	  P_Freight_Charge_Tbl  => x_freight_charge_tbl,
2774            P_Sales_Credit_Tbl    => x_Sales_Credit_Tbl  ,
2775           P_Quote_Party_Tbl     => x_Quote_Party_Tbl,
2776     	  P_Update_Header_Flag  => l_update_header_flag,
2777     	  X_Return_Status       => x_return_status ,
2778     	  X_Msg_Count           => x_msg_count     ,
2779           X_Msg_Data            => x_msg_data
2780           );
2781 
2782           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2783              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2784 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2785 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Update_Quote_Line_POST', FALSE);
2786 		  FND_MSG_PUB.ADD;
2787              END IF;
2788                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2789                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2790                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2791                     RAISE FND_API.G_EXC_ERROR;
2792                  END IF;
2793           END IF;
2794       END IF; -- customer hook
2795 
2796          IF aso_debug_pub.g_debug_flag = 'Y' THEN
2797          aso_debug_pub.add('aso_quote_vuhk: before if update quote line post (1)'||x_return_status,1, 'N');
2798 	    END IF;
2799 
2800       -- vertical hook
2801         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
2802 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
2803          aso_debug_pub.add('aso_quote_vuhk: inside if update quote line post (1)'||x_return_status,1, 'N');
2804 	    END IF;
2805           ASO_QUOTE_VUHK.Update_Quote_Line_POST(
2806     	  P_Qte_Line_Rec        => x_qte_line_rec      ,
2807     	  P_Control_Rec         => l_control_rec       ,
2808     	  P_Qte_Line_Dtl_Tbl    => x_qte_line_dtl_tbl  ,
2809     	  P_Line_Attribs_Ext_Tbl =>x_line_attribs_ext_tbl,
2810           P_Payment_Tbl         => x_payment_tbl,
2811     	  P_Price_Adj_Tbl       => x_price_adj_tbl,
2812     	  P_Price_Attributes_Tbl =>x_price_attributes_tbl,
2813     	  P_Price_Adj_Attr_Tbl  => x_price_adj_attr_tbl,
2814           P_Shipment_Tbl        => x_shipment_tbl      ,
2815     	  P_Tax_Detail_Tbl      => x_tax_detail_tbl    ,
2816     	  P_Freight_Charge_Tbl  => x_freight_charge_tbl,
2817            P_Sales_Credit_Tbl    => x_Sales_Credit_Tbl  ,
2818           P_Quote_Party_Tbl     => x_Quote_Party_Tbl,
2819     	  P_Update_Header_Flag  => l_update_header_flag,
2820     	  X_Return_Status       => x_return_status ,
2821     	  X_Msg_Count           => x_msg_count     ,
2822           X_Msg_Data            => x_msg_data
2823           );
2824 
2825          IF aso_debug_pub.g_debug_flag = 'Y' THEN
2826 	    aso_debug_pub.add('aso_quote_vuhk: after if update quote line post (1)'||x_return_status,1, 'N');
2827 	    END IF;
2828 
2829           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2830              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2831 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2832 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Update_Quote_Line_POST', FALSE);
2833 		  FND_MSG_PUB.ADD;
2834              END IF;
2835                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2836                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2837                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2838                     RAISE FND_API.G_EXC_ERROR;
2839                  END IF;
2840           END IF;
2841       END IF; -- vertical hook
2842 
2843 
2844 
2845 
2846 
2847       -- Standard check for p_commit
2848       IF FND_API.to_Boolean( p_commit )
2849       THEN
2850           COMMIT WORK;
2851       END IF;
2852 
2853 
2854 
2855 
2856       -- Standard call to get message count and if count is 1, get message info.
2857       FND_MSG_PUB.Count_And_Get
2858       (  p_count          =>   x_msg_count,
2859          p_data           =>   x_msg_data
2860       );
2861 
2862       EXCEPTION
2863           WHEN FND_API.G_EXC_ERROR THEN
2864               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
2865                    P_API_NAME => L_API_NAME
2866                   ,P_PKG_NAME => G_PKG_NAME
2867                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
2868                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
2869                   ,P_SQLCODE => SQLCODE
2870                   ,P_SQLERRM => SQLERRM
2871                   ,X_MSG_COUNT => X_MSG_COUNT
2872                   ,X_MSG_DATA => X_MSG_DATA
2873                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2874 
2875           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2876               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
2877                    P_API_NAME => L_API_NAME
2878                   ,P_PKG_NAME => G_PKG_NAME
2879                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
2880                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
2881                   ,P_SQLCODE => SQLCODE
2882                   ,P_SQLERRM => SQLERRM
2883                   ,X_MSG_COUNT => X_MSG_COUNT
2884                   ,X_MSG_DATA => X_MSG_DATA
2885                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2886 
2887           WHEN OTHERS THEN
2888               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
2889                    P_API_NAME => L_API_NAME
2890                   ,P_PKG_NAME => G_PKG_NAME
2891                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
2892                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
2893                   ,P_SQLCODE => SQLCODE
2894                   ,P_SQLERRM => SQLERRM
2895                   ,X_MSG_COUNT => X_MSG_COUNT
2896                   ,X_MSG_DATA => X_MSG_DATA
2897                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2898 END;
2899 
2900 
2901 PROCEDURE Delete_Quote_Line(
2902     P_Api_Version_Number         IN   NUMBER,
2903     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
2904     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
2905     P_qte_line_Rec     IN    qte_line_Rec_Type,
2906     P_Control_REC      IN    Control_Rec_Type := G_MISS_Control_Rec,
2907     P_Update_Header_Flag         IN   VARCHAR2,
2908     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
2909     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
2910     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
2911     )
2912 IS
2913     l_api_name                CONSTANT VARCHAR2(30) := 'DELETE_QUOTE_LINE';
2914     l_api_version_number      CONSTANT NUMBER   := 1.0;
2915 
2916       l_Qte_Line_Rec          Qte_Line_Rec_Type  ;
2917       l_Control_Rec           Control_rec_Type;
2918 
2919 BEGIN
2920       -- Standard Start of API savepoint
2921       SAVEPOINT DELETE_QUOTE_LINE_PUB;
2922 
2923 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
2924 
2925       -- Standard call to check for call compatibility.
2926       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2927                          	             p_api_version_number,
2928                                            l_api_name,
2929                                            G_PKG_NAME)
2930       THEN
2931           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2932       END IF;
2933 
2934 
2935       -- Initialize message list if p_init_msg_list is set to TRUE.
2936       IF FND_API.to_Boolean( p_init_msg_list )
2937       THEN
2938           FND_MSG_PUB.initialize;
2939       END IF;
2940 
2941 
2942 
2943 
2944       -- Initialize API return status to SUCCESS
2945       x_return_status := FND_API.G_RET_STS_SUCCESS;
2946 
2947         l_Qte_Line_Rec   := p_qte_line_rec;
2948         l_control_rec    := p_control_rec ;
2949 
2950       --
2951       -- API body
2952       --
2953 
2954 
2955       --  call user hooks
2956       -- customer pre processing
2957 
2958         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
2959           ASO_QUOTE_CUHK.Delete_Quote_Line_PRE(
2960   	  P_qte_line_Rec     => l_qte_line_rec,
2961   	  P_Control_Rec      => l_control_rec,
2962   	  X_Return_Status    => x_return_status,
2963   	  X_Msg_Count        => x_msg_count ,
2964   	  X_Msg_Data         => x_msg_data
2965    	 );
2966 
2967           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2968              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2969 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2970 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Delete_Quote_Line_PRE', FALSE);
2971 		  FND_MSG_PUB.ADD;
2972              END IF;
2973                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2974                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2975                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2976                     RAISE FND_API.G_EXC_ERROR;
2977                  END IF;
2978           END IF;
2979       END IF; -- customer hook
2980 
2981 
2982       -- vertical hook
2983         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
2984           ASO_QUOTE_VUHK.Delete_Quote_Line_PRE(
2985   	  P_qte_line_Rec     => l_qte_line_rec,
2986   	  P_Control_Rec      => l_control_rec,
2987   	  X_Return_Status    => x_return_status,
2988   	  X_Msg_Count        => x_msg_count ,
2989   	  X_Msg_Data         => x_msg_data
2990    	 );
2991           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2992              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2993 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
2994 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Delete_Quote_Line_PRE', FALSE);
2995 		  FND_MSG_PUB.ADD;
2996              END IF;
2997                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2998                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2999                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3000                     RAISE FND_API.G_EXC_ERROR;
3001                  END IF;
3002           END IF;
3003       END IF; -- vertical hook
3004 
3005 
3006 
3007 
3008      ASO_QUOTE_LINES_PVT.Delete_quote_line(
3009 		P_Api_Version_Number	=> 1.0,
3010 		P_Init_Msg_List		=> FND_API.G_FALSE,
3011 		P_Commit		=> p_commit,
3012                 P_qte_line_Rec          => l_qte_line_Rec,
3013     		P_Control_Rec           => l_Control_Rec  ,
3014                 P_Update_Header_Flag    => P_Update_Header_Flag ,
3015 		X_Return_Status         => x_return_status,
3016 		X_Msg_Count             => x_msg_count,
3017 		X_Msg_Data              => x_msg_data );
3018 
3019 
3020 
3021       -- Check return status from the above procedure call
3022       IF x_return_status = FND_API.G_RET_STS_ERROR then
3023           raise FND_API.G_EXC_ERROR;
3024       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
3025           raise FND_API.G_EXC_UNEXPECTED_ERROR;
3026       END IF;
3027 
3028       --
3029       -- End of API body
3030       --
3031 
3032 
3033 
3034       --  call user hooks
3035       -- customer pre processing
3036 
3037         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
3038           ASO_QUOTE_CUHK.Delete_Quote_Line_POST(
3039   	  P_qte_line_Rec     => l_qte_line_rec,
3040   	  P_Control_Rec      => l_control_rec,
3041   	  X_Return_Status    => x_return_status,
3042   	  X_Msg_Count        => x_msg_count ,
3043   	  X_Msg_Data         => x_msg_data
3044    	 );
3045 
3046           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3047              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3048 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3049 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Delete_Quote_Line_POST', FALSE);
3050 		  FND_MSG_PUB.ADD;
3051              END IF;
3052                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3053                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3054                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3055                     RAISE FND_API.G_EXC_ERROR;
3056                  END IF;
3057           END IF;
3058       END IF; -- customer hook
3059 
3060 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
3061          aso_debug_pub.add('aso_quote_vuhk: before if delete quote line post (1)'||x_return_status,1, 'N');
3062 	    END IF;
3063 
3064       -- vertical hook
3065         IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
3066 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
3067          aso_debug_pub.add('aso_quote_vuhk: inside if delete quote line post (1)'||x_return_status,1, 'N');
3068 	    END IF;
3069           ASO_QUOTE_VUHK.Delete_Quote_Line_POST(
3070   	  P_qte_line_Rec     => l_qte_line_rec,
3071   	  P_Control_Rec      => l_control_rec,
3072   	  X_Return_Status    => x_return_status,
3073   	  X_Msg_Count        => x_msg_count ,
3074   	  X_Msg_Data         => x_msg_data
3075    	 );
3076 	    IF aso_debug_pub.g_debug_flag = 'Y' THEN
3077          aso_debug_pub.add('aso_quote_vuhk: after if delete quote line post (1)'||x_return_status,1, 'N');
3078 	    END IF;
3079 
3080 
3081           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3082              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3083 		  FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3084 		  FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Delete_Quote_Line_POST', FALSE);
3085 		  FND_MSG_PUB.ADD;
3086              END IF;
3087                  IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3088                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3089                  ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3090                     RAISE FND_API.G_EXC_ERROR;
3091                  END IF;
3092           END IF;
3093       END IF; -- vertical hook
3094 
3095 
3096 
3097 
3098 
3099 
3100       -- Standard check for p_commit
3101       IF FND_API.to_Boolean( p_commit )
3102       THEN
3103           COMMIT WORK;
3104       END IF;
3105 
3106 
3107 
3108 
3109       -- Standard call to get message count and if count is 1, get message info.
3110       FND_MSG_PUB.Count_And_Get
3111       (  p_count          =>   x_msg_count,
3112          p_data           =>   x_msg_data
3113       );
3114 
3115       EXCEPTION
3116           WHEN FND_API.G_EXC_ERROR THEN
3117               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3118                    P_API_NAME => L_API_NAME
3119                   ,P_PKG_NAME => G_PKG_NAME
3120                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
3121                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
3122                   ,P_SQLCODE => SQLCODE
3123                   ,P_SQLERRM => SQLERRM
3124                   ,X_MSG_COUNT => X_MSG_COUNT
3125                   ,X_MSG_DATA => X_MSG_DATA
3126                   ,X_RETURN_STATUS => X_RETURN_STATUS);
3127 
3128           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3129               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3130                    P_API_NAME => L_API_NAME
3131                   ,P_PKG_NAME => G_PKG_NAME
3132                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
3133                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
3134                   ,P_SQLCODE => SQLCODE
3135                   ,P_SQLERRM => SQLERRM
3136                   ,X_MSG_COUNT => X_MSG_COUNT
3137                   ,X_MSG_DATA => X_MSG_DATA
3138                   ,X_RETURN_STATUS => X_RETURN_STATUS);
3139 
3140           WHEN OTHERS THEN
3141               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3142                    P_API_NAME => L_API_NAME
3143                   ,P_PKG_NAME => G_PKG_NAME
3144                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
3145                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
3146                   ,P_SQLCODE => SQLCODE
3147                   ,P_SQLERRM => SQLERRM
3148                   ,X_MSG_COUNT => X_MSG_COUNT
3149                   ,X_MSG_DATA => X_MSG_DATA
3150                   ,X_RETURN_STATUS => X_RETURN_STATUS);
3151 
3152 End Delete_quote_line;
3153 
3154 PROCEDURE Quote_Security_Check(
3155     P_Api_Version_Number         IN      NUMBER,
3156     P_Init_Msg_List              IN      VARCHAR2     := FND_API.G_FALSE,
3157     P_User_Id                    IN      NUMBER,
3158     X_Resource_Id                OUT NOCOPY /* file.sql.39 change */  NUMBER,
3159     X_Security_Flag              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
3160     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
3161     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
3162     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
3163 )
3164 IS
3165 
3166 BEGIN
3167 
3168 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
3169     ASO_QUOTE_HEADERS_PVT.Quote_Security_Check(
3170         P_Api_Version_Number         =>     P_Api_Version_Number,
3171         P_Init_Msg_List              =>     P_Init_Msg_List,
3172         P_User_Id                    =>     P_User_Id,
3173         X_Resource_Id                =>     X_Resource_Id,
3174         X_Security_Flag              =>     X_Security_Flag,
3175         X_Return_Status              =>     X_Return_Status,
3176         X_Msg_Count                  =>     X_Msg_Count,
3177         X_Msg_Data                   =>     X_Msg_Data
3178     );
3179 
3180     IF aso_debug_pub.g_debug_flag = 'Y' THEN
3181     aso_debug_pub.add('ASO_QUOTE_PUB: Quote_Security_Check(): End: Resource_Id:   '||X_Resource_Id, 1, 'Y');
3182     aso_debug_pub.add('ASO_QUOTE_PUB: Quote_Security_Check(): End: Security_Flag: '||X_Security_Flag, 1, 'Y');
3183     END IF;
3184 
3185 End Quote_Security_Check;
3186 
3187 
3188 --   *******************************************************
3189 --    Start of Comments
3190 --   *******************************************************
3191 --   API Name:  Submit_Quote
3192 --   Type    :  Public
3193 --   Pre-Req :
3194 --   Parameters:
3195 --   overloaded function includes Qte_Header_Rec to check for last_update_date
3196 --
3197 --   End of Comments
3198 --
3199 PROCEDURE Submit_quote(
3200     P_Api_Version_Number         IN   NUMBER,
3201     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
3202     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
3203     p_control_rec                IN   ASO_QUOTE_PUB.Submit_Control_Rec_Type
3204                                                    := ASO_QUOTE_PUB.G_MISS_Submit_Control_Rec,
3205     P_Qte_Header_Rec             IN   ASO_QUOTE_PUB.Qte_Header_Rec_Type,
3206     x_order_header_rec           OUT NOCOPY /* file.sql.39 change */  ASO_QUOTE_PUB.Order_Header_Rec_Type,
3207     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
3208     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
3209     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
3210     )
3211 IS
3212     l_api_name                CONSTANT VARCHAR2(30) := 'SUBMIT_QUOTE';
3213     l_api_version_number      CONSTANT NUMBER   := 1.0;
3214     l_control_rec             Submit_Control_Rec_Type := P_control_rec;
3215     l_Qte_Header_Id           NUMBER;
3216 BEGIN
3217 
3218       -- Standard Start of API savepoint
3219       SAVEPOINT SUBMIT_QUOTE_PUB;
3220 
3221 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
3222 
3223       -- Standard call to check for call compatibility.
3224       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
3225                          	             p_api_version_number,
3226                                            l_api_name,
3227                                            G_PKG_NAME)
3228       THEN
3229           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3230       END IF;
3231 
3232       -- Initialize message list if p_init_msg_list is set to TRUE.
3233       IF FND_API.to_Boolean( p_init_msg_list )
3234       THEN
3235           FND_MSG_PUB.initialize;
3236       END IF;
3237 
3238 
3239       -- Initialize API return status to SUCCESS
3240       x_return_status := FND_API.G_RET_STS_SUCCESS;
3241       l_Qte_Header_Id := P_Qte_Header_Rec.Quote_Header_Id;
3242 
3243       --
3244       -- API body
3245       --
3246 
3247 
3248       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
3249        ASO_QUOTE_CUHK.Submit_quote_PRE(
3250           p_control_rec      => l_control_rec,
3251           P_Qte_Header_Id    => l_Qte_Header_Id,
3252           X_Return_Status    => X_Return_Status,
3253           X_Msg_Count        => X_Msg_Count,
3254           X_Msg_Data         => X_Msg_Data    );
3255 
3256        IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3257              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3258 		       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3259 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Submit_Quote_PRE', FALSE);
3260 		       FND_MSG_PUB.ADD;
3261              END IF;
3262 
3263              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3264                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3265              ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3266                 RAISE FND_API.G_EXC_ERROR;
3267              END IF;
3268         END IF;
3269 
3270       END IF; -- customer hook
3271 
3272       -- vertical hook
3273       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
3274          ASO_QUOTE_VUHK.Submit_quote_PRE(
3275             p_control_rec        => l_control_rec,
3276             P_Qte_Header_Id      => l_Qte_Header_Id,
3277             X_Return_Status      => X_Return_Status,
3278             X_Msg_Count          => X_Msg_Count,
3279             X_Msg_Data           => X_Msg_Data    );
3280 
3281       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3282              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3283 		       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3284 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Submit_Quote_PRE', FALSE);
3285 		       FND_MSG_PUB.ADD;
3286              END IF;
3287              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3288                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3289              ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3290                 RAISE FND_API.G_EXC_ERROR;
3291              END IF;
3292        END IF;
3293 
3294       END IF;
3295 
3296 ASO_SUBMIT_QUOTE_PVT.Submit_quote(
3297     P_Api_Version_Number       => 1.0,
3298     P_Init_Msg_List            => P_Init_Msg_List,
3299     P_control_rec              => l_control_rec,
3300     P_Qte_Header_Rec           => P_Qte_Header_Rec,
3301     x_order_header_rec         => X_order_header_rec,
3302     X_Return_Status            => X_Return_Status,
3303     X_Msg_Count                => X_Msg_Count,
3304     X_Msg_Data                 => X_Msg_Data
3305     );
3306 
3307       -- Check return status from the above procedure call
3308       IF x_return_status = FND_API.G_RET_STS_ERROR then
3309           raise FND_API.G_EXC_ERROR;
3310       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
3311           raise FND_API.G_EXC_UNEXPECTED_ERROR;
3312       END IF;
3313 
3314          --  call user hooks
3315       -- customer post processing
3316 
3317     IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
3318        ASO_QUOTE_CUHK.Submit_quote_POST(
3319           p_control_rec        => l_control_rec,
3320           P_Qte_Header_Id      => l_Qte_Header_Id,
3321           p_order_header_rec   => x_order_header_rec,
3322           X_Return_Status      => X_Return_Status,
3323           X_Msg_Count          => X_Msg_Count,
3324           X_Msg_Data           => X_Msg_Data    );
3325 
3326         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3327              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3328 		       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3329 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Submit_Quote_POST', FALSE);
3330 		       FND_MSG_PUB.ADD;
3331              END IF;
3332              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3333                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3334               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3335                 RAISE FND_API.G_EXC_ERROR;
3336               END IF;
3337           END IF;
3338 
3339       END IF; -- customer hook
3340 
3341       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
3342          ASO_QUOTE_VUHK.Submit_quote_POST(
3343            p_control_rec        => l_control_rec,
3344            P_Qte_Header_Id      => l_Qte_Header_Id,
3345            p_order_header_rec   => x_order_header_rec,
3346            X_Return_Status      => X_Return_Status,
3347            X_Msg_Count          => X_Msg_Count,
3348            X_Msg_Data           => X_Msg_Data    );
3349 
3350           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3351              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3352 	   	       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3353 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Submit_Quote_POST', FALSE);
3354 		       FND_MSG_PUB.ADD;
3355              END IF;
3356              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3357                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3358              ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3359                 RAISE FND_API.G_EXC_ERROR;
3360              END IF;
3361           END IF;
3362 
3363       END IF; -- vertical hook
3364       --
3365       -- End of API body
3366       --
3367 
3368 
3369 
3370       -- Standard call to get message count and if count is 1, get message info.
3371       FND_MSG_PUB.Count_And_Get
3372       (  p_count          =>   x_msg_count,
3373          p_data           =>   x_msg_data
3374       );
3375 
3376       EXCEPTION
3377           WHEN FND_API.G_EXC_ERROR THEN
3378               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3379                    P_API_NAME => L_API_NAME
3380                   ,P_PKG_NAME => G_PKG_NAME
3381                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
3382                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
3383                   ,X_MSG_COUNT => X_MSG_COUNT
3384                   ,X_MSG_DATA => X_MSG_DATA
3385                   ,X_RETURN_STATUS => X_RETURN_STATUS);
3386 
3387           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3388               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3389                    P_API_NAME => L_API_NAME
3390                   ,P_PKG_NAME => G_PKG_NAME
3391                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
3392                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
3393                   ,X_MSG_COUNT => X_MSG_COUNT
3394                   ,X_MSG_DATA => X_MSG_DATA
3395                   ,X_RETURN_STATUS => X_RETURN_STATUS);
3396 
3397           WHEN OTHERS THEN
3398               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3399                    P_API_NAME => L_API_NAME
3400                   ,P_PKG_NAME => G_PKG_NAME
3401                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
3402                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
3403                   ,X_MSG_COUNT => X_MSG_COUNT
3404                   ,X_MSG_DATA => X_MSG_DATA
3405                   ,X_RETURN_STATUS => X_RETURN_STATUS);
3406 
3407 END Submit_Quote;
3408 
3409 
3410 -- vtariker: Sales Credit Allocation Public API
3411 PROCEDURE Allocate_Sales_Credits
3412 (
3413     P_Api_Version_Number  IN   NUMBER,
3414     P_Init_Msg_List       IN   VARCHAR2     := FND_API.G_FALSE,
3415     P_Commit              IN   VARCHAR2     := FND_API.G_FALSE,
3416     p_control_rec         IN   ASO_QUOTE_PUB.SALES_ALLOC_CONTROL_REC_TYPE
3417                                             :=  ASO_QUOTE_PUB.G_MISS_SALES_ALLOC_CONTROL_REC,
3418     P_Qte_Header_Rec      IN   ASO_QUOTE_PUB.Qte_Header_Rec_Type,
3419     X_Qte_Header_Rec      OUT NOCOPY /* file.sql.39 change */  ASO_QUOTE_PUB.Qte_Header_Rec_Type,
3420     X_Return_Status       OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
3421     X_Msg_Count           OUT NOCOPY /* file.sql.39 change */  NUMBER,
3422     X_Msg_Data            OUT NOCOPY /* file.sql.39 change */  VARCHAR2)
3423 IS
3424 
3425    l_api_name              CONSTANT VARCHAR2 ( 30 ) := 'Allocate_Sales_Credits';
3426    l_api_version_number    CONSTANT NUMBER := 1.0;
3427 
3428 BEGIN
3429 
3430       aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
3431 
3432       -- Standard Start of API savepoint
3433       SAVEPOINT ALLOCATE_SALES_CREDITS_PUB;
3434 
3435       -- Standard call to check for call compatibility.
3436       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
3437                                            1.0,
3438                                            l_api_name,
3439                                            G_PKG_NAME)
3440       THEN
3441           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3442           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3443       END IF;
3444 
3445       -- Initialize message list if p_init_msg_list is set to TRUE.
3446       IF FND_API.to_Boolean( p_init_msg_list )
3447       THEN
3448           FND_MSG_PUB.initialize;
3449       END IF;
3450 
3451       -- Initialize API return status to SUCCESS
3452       x_return_status := FND_API.G_RET_STS_SUCCESS;
3453 
3454       --
3455       -- API body
3456       --
3457 
3458    -- New PRE-Customer and Verical Hooks
3459 
3460      IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
3461        ASO_QUOTE_CUHK.Allocate_Sales_Credits_PRE(
3462           p_control_rec      => p_control_rec,
3463           P_Qte_Header_Id    => p_qte_header_rec.quote_header_id,
3464           X_Return_Status    => X_Return_Status,
3465           X_Msg_Count        => X_Msg_Count,
3466           X_Msg_Data         => X_Msg_Data    );
3467 
3468        IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3469              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3470 		       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3471 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Allocate_Sales_Credits_PRE', FALSE);
3472 		       FND_MSG_PUB.ADD;
3473              END IF;
3474 
3475              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3476                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3477              ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3478                 RAISE FND_API.G_EXC_ERROR;
3479              END IF;
3480         END IF;
3481 
3482       END IF; -- customer hook
3483 
3484       -- vertical hook
3485       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
3486          ASO_QUOTE_VUHK.Allocate_Sales_Credits_PRE(
3487             p_control_rec        => p_control_rec,
3488             P_Qte_Header_Id      => p_qte_header_rec.quote_header_id,
3489             X_Return_Status      => X_Return_Status,
3490             X_Msg_Count          => X_Msg_Count,
3491             X_Msg_Data           => X_Msg_Data    );
3492 
3493          IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3494              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3495 		       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3496 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Allocate_Sales_Credits_PRE', FALSE);
3497 		       FND_MSG_PUB.ADD;
3498              END IF;
3499              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3500                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3501              ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3502                 RAISE FND_API.G_EXC_ERROR;
3503              END IF;
3504          END IF;
3505 
3506       END IF;
3507 
3508 
3509       -- Allocate Sales Credits
3510       ASO_SALES_CREDIT_PVT.Allocate_Sales_Credits (
3511         P_Api_Version_Number         =>     1.0,
3512         P_Init_Msg_List              =>     FND_API.G_FALSE,
3513         P_Commit                     =>     FND_API.G_FALSE,
3514         P_control_rec                =>     p_control_rec,
3515         P_Qte_Header_Rec             =>     p_qte_header_rec,
3516         X_Qte_Header_Rec             =>     x_qte_header_rec,
3517         X_Return_Status              =>     x_return_status,
3518         X_Msg_Count                  =>     x_msg_count,
3519         X_Msg_Data                   =>     x_msg_data
3520       );
3521 
3522 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3523 aso_debug_pub.add('After ASO_SALES_TEAM_PVT.Assign_Sales_Team: '||x_return_status,1,'Y');
3524 END IF;
3525 
3526         IF x_return_status = FND_API.G_RET_STS_ERROR THEN
3527             RAISE FND_API.G_EXC_ERROR;
3528         END IF;
3529         IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3530             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3531         END IF;
3532 
3533      -- Added new post Customer and Verical POST hooks
3534 
3535       -- customer post processing
3536 
3537     IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
3538        ASO_QUOTE_CUHK.Allocate_Sales_Credits_POST(
3539           p_control_rec        => p_control_rec,
3540           P_Qte_Header_Rec     => x_qte_header_rec,
3541           X_Return_Status      => X_Return_Status,
3542           X_Msg_Count          => X_Msg_Count,
3543           X_Msg_Data           => X_Msg_Data    );
3544 
3545         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3546              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3547 		       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3548 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Allocate_Sales_Credits_POST', FALSE);
3549 		       FND_MSG_PUB.ADD;
3550              END IF;
3551              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3552                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3553               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3554                 RAISE FND_API.G_EXC_ERROR;
3555               END IF;
3556           END IF;
3557 
3558       END IF; -- customer hook
3559 
3560 
3561 
3562       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
3563          ASO_QUOTE_VUHK.Allocate_Sales_Credits_POST(
3564            p_control_rec        => p_control_rec,
3565            P_Qte_Header_Rec     => x_qte_header_rec,
3566            X_Return_Status      => X_Return_Status,
3567            X_Msg_Count          => X_Msg_Count,
3568            X_Msg_Data           => X_Msg_Data    );
3569 
3570           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3571              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3572 	   	       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3573 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Allocate_Sales_Credits_POST', FALSE);
3574 		       FND_MSG_PUB.ADD;
3575              END IF;
3576              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3577                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3578              ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3579                 RAISE FND_API.G_EXC_ERROR;
3580              END IF;
3581           END IF;
3582 
3583       END IF; -- vertical hook
3584 
3585         -- Standard check for p_commit
3586       IF FND_API.to_Boolean( p_commit )
3587       THEN
3588           COMMIT WORK;
3589       END IF;
3590 
3591 
3592       -- Standard call to get message count and if count is 1, get message info.
3593       FND_MSG_PUB.Count_And_Get
3594       (  p_count          =>   x_msg_count,
3595          p_data           =>   x_msg_data
3596       );
3597 
3598     EXCEPTION
3599 
3600         WHEN FND_API.G_EXC_ERROR THEN
3601             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3602                 P_API_NAME        => L_API_NAME,
3603                 P_PKG_NAME        => G_PKG_NAME,
3604                 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR,
3605                 P_PACKAGE_TYPE    => ASO_UTILITY_PVT.G_PUB,
3606                 P_SQLCODE         => SQLCODE,
3607                 P_SQLERRM         => SQLERRM,
3608                 X_MSG_COUNT       => X_MSG_COUNT,
3609                 X_MSG_DATA        => X_MSG_DATA,
3610                 X_RETURN_STATUS   => X_RETURN_STATUS
3611             );
3612 
3613         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3614             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3615                 P_API_NAME        => L_API_NAME,
3616                 P_PKG_NAME        => G_PKG_NAME,
3617                 P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR,
3618                 P_PACKAGE_TYPE    => ASO_UTILITY_PVT.G_PUB,
3619                 P_SQLCODE         => SQLCODE,
3620                 P_SQLERRM         => SQLERRM,
3621                 X_MSG_COUNT       => X_MSG_COUNT,
3622                 X_MSG_DATA        => X_MSG_DATA,
3623                 X_RETURN_STATUS   => X_RETURN_STATUS
3624             );
3625 
3626         WHEN OTHERS THEN
3627             ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
3628                 P_API_NAME        => L_API_NAME,
3629                 P_PKG_NAME        => G_PKG_NAME,
3630                 P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS,
3631                 P_PACKAGE_TYPE    => ASO_UTILITY_PVT.G_PUB,
3632                 P_SQLCODE         => SQLCODE,
3633                 P_SQLERRM         => SQLERRM,
3634                 X_MSG_COUNT       => X_MSG_COUNT,
3635                 X_MSG_DATA        => X_MSG_DATA,
3636                 X_RETURN_STATUS   => X_RETURN_STATUS
3637             );
3638 
3639 END Allocate_Sales_Credits;
3640 
3641 
3642 PROCEDURE Sales_Credit_Event_Pre (
3643                   P_Qte_Header_Id     IN  NUMBER,
3644                   X_Return_Status     OUT NOCOPY /* file.sql.39 change */ VARCHAR2 )
3645 IS
3646 
3647    l_list              WF_PARAMETER_LIST_T := wf_parameter_list_t();
3648    l_event_name        VARCHAR2(255) := 'oracle.apps.aso.quote.allocatecredit.pre';
3649    l_event_key         VARCHAR2(255);
3650 
3651 BEGIN
3652 
3653        X_Return_Status := FND_API.G_RET_STS_SUCCESS;
3654 
3655        l_event_key := to_char(sysdate,'MMDDYYYY HH24MISS');
3656 
3657        wf_event.AddParameterToList (
3658                         p_name  => 'USER_ID',
3659                         p_value => fnd_profile.value( 'USER_ID'),
3660                         p_parameterlist => l_list );
3661 
3662        wf_event.AddParameterToList (
3663                         p_name  => 'RESP_ID',
3664                         p_value => fnd_profile.value( 'RESP_ID'),
3665                         p_parameterlist => l_list );
3666 
3667        wf_event.AddParameterToList (
3668                         p_name  => 'RESP_APPL_ID',
3669                         p_value => fnd_profile.value( 'RESP_APPL_ID'),
3670                         p_parameterlist => l_list );
3671 
3672        wf_event.AddParameterToList (
3673                         p_name  => 'ORG_ID',
3674                         p_value => fnd_profile.value( 'ORG_ID'),
3675                         p_parameterlist => l_list );
3676 
3677        wf_event.AddParameterToList (
3678                         p_name  => 'DOCUMENT_ID',
3679                         p_value => P_Qte_Header_Id,
3680                         p_parameterlist => l_list );
3681 
3682        wf_event.raise (
3683                         p_event_name => l_event_name,
3684                         p_event_key  => l_event_key,
3685                         p_parameters => l_list );
3686 
3687        l_list.DELETE;
3688 
3689    EXCEPTION
3690 
3691      WHEN OTHERS THEN
3692 
3693           x_return_Status :=FND_API.G_RET_STS_ERROR;
3694 
3695 END Sales_Credit_Event_Pre;
3696 
3697 
3698 PROCEDURE Sales_Credit_Event_Post (
3699                   P_Qte_Header_Id     IN  NUMBER,
3700                   X_Return_Status     OUT NOCOPY /* file.sql.39 change */ VARCHAR2 )
3701 IS
3702 
3703    l_list              WF_PARAMETER_LIST_T := wf_parameter_list_t();
3704    l_event_name        VARCHAR2(255) := 'oracle.apps.aso.quote.allocatecredit.post';
3705    l_event_key         VARCHAR2(255);
3706 
3707 BEGIN
3708 
3709        X_Return_Status := FND_API.G_RET_STS_SUCCESS;
3710 
3711        l_event_key := to_char(sysdate,'MMDDYYYY HH24MISS');
3712 
3713        wf_event.AddParameterToList (
3714                         p_name  => 'USER_ID',
3715                         p_value => fnd_profile.value( 'USER_ID'),
3716                         p_parameterlist => l_list );
3717 
3718        wf_event.AddParameterToList (
3719                         p_name  => 'RESP_ID',
3720                         p_value => fnd_profile.value( 'RESP_ID'),
3721                         p_parameterlist => l_list );
3722 
3723        wf_event.AddParameterToList (
3724                         p_name  => 'RESP_APPL_ID',
3725                         p_value => fnd_profile.value( 'RESP_APPL_ID'),
3726                         p_parameterlist => l_list );
3727 
3728        wf_event.AddParameterToList (
3729                         p_name  => 'ORG_ID',
3730                         p_value => fnd_profile.value( 'ORG_ID'),
3731                         p_parameterlist => l_list );
3732 
3733        wf_event.AddParameterToList (
3734                         p_name  => 'DOCUMENT_ID',
3735                         p_value => P_Qte_Header_Id,
3736                         p_parameterlist => l_list );
3737 
3738        wf_event.raise (
3739                         p_event_name => l_event_name,
3740                         p_event_key  => l_event_key,
3741                         p_parameters => l_list );
3742 
3743        l_list.DELETE;
3744 
3745 
3746    EXCEPTION
3747 
3748        WHEN OTHERS THEN
3749 
3750           x_return_Status :=FND_API.G_RET_STS_ERROR;
3751 
3752 END Sales_Credit_Event_Post;
3753 
3754 
3755 
3756 --   *******************************************************
3757 --    Start of Comments
3758 --   *******************************************************
3759 --   API Name:  Create_quote
3760 --   Type    :  Public
3761 --   Pre-Req :
3762 --   Parameters:
3763 
3764 --   Version : Current version 2.0
3765 --   Note: This is an overloaded procedure. It takes additional attributes
3766 --   which include the p_template_tbl, P_Qte_Access_Tbl and P_Related_Obj_Tbl record
3767 --   types
3768 --
3769 --   End of Comments
3770 --
3771 
3772 
3773 PROCEDURE Create_quote(
3774     P_Api_Version_Number       IN   NUMBER,
3775     P_Init_Msg_List            IN   VARCHAR2                                := FND_API.G_FALSE,
3776     P_Commit                   IN   VARCHAR2                                := FND_API.G_FALSE,
3777     P_Validation_Level 	      IN   NUMBER                                  := FND_API.G_VALID_LEVEL_FULL,
3778     P_Control_Rec		      IN   Control_Rec_Type                        := G_Miss_Control_Rec,
3779     P_Qte_Header_Rec		 IN   Qte_Header_Rec_Type                     := G_MISS_Qte_Header_Rec,
3780     P_hd_Price_Attributes_Tbl	 IN   ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := G_Miss_Price_Attributes_Tbl,
3781     P_hd_Payment_Tbl		 IN   ASO_QUOTE_PUB.Payment_Tbl_Type          := G_MISS_PAYMENT_TBL,
3782     P_hd_Shipment_Rec		 IN   ASO_QUOTE_PUB.Shipment_Rec_Type         := G_MISS_SHIPMENT_REC,
3783     P_hd_Freight_Charge_Tbl	 IN   ASO_QUOTE_PUB.Freight_Charge_Tbl_Type   := G_Miss_Freight_Charge_Tbl,
3784     P_hd_Tax_Detail_Tbl		 IN   ASO_QUOTE_PUB.Tax_Detail_Tbl_Type       := G_Miss_Tax_Detail_Tbl,
3785     P_hd_Attr_Ext_Tbl		 IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
3786     P_hd_Sales_Credit_Tbl      IN   Sales_Credit_Tbl_Type                   := G_MISS_Sales_Credit_Tbl,
3787     P_hd_Quote_Party_Tbl       IN   Quote_Party_Tbl_Type                    := G_MISS_Quote_Party_Tbl,
3788     P_Qte_Line_Tbl		      IN   Qte_Line_Tbl_Type                       := G_MISS_QTE_LINE_TBL,
3789     P_Qte_Line_Dtl_Tbl		 IN   Qte_Line_Dtl_Tbl_Type                   := G_MISS_QTE_LINE_DTL_TBL,
3790     P_Line_Attr_Ext_Tbl		 IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
3791     P_line_rltship_tbl		 IN   Line_Rltship_Tbl_Type                   := G_MISS_Line_Rltship_Tbl,
3792     P_Price_Adjustment_Tbl	 IN   Price_Adj_Tbl_Type                      := G_Miss_Price_Adj_Tbl,
3793     P_Price_Adj_Attr_Tbl	      IN   Price_Adj_Attr_Tbl_Type                 := G_Miss_PRICE_ADJ_ATTR_Tbl,
3794     P_Price_Adj_Rltship_Tbl	 IN   Price_Adj_Rltship_Tbl_Type              := G_Miss_Price_Adj_Rltship_Tbl,
3795     P_Ln_Price_Attributes_Tbl	 IN   Price_Attributes_Tbl_Type               := G_Miss_Price_Attributes_Tbl,
3796     P_Ln_Payment_Tbl		 IN   Payment_Tbl_Type                        := G_MISS_PAYMENT_TBL,
3797     P_Ln_Shipment_Tbl		 IN   Shipment_Tbl_Type                       := G_MISS_SHIPMENT_TBL,
3798     P_Ln_Freight_Charge_Tbl	 IN   Freight_Charge_Tbl_Type                 := G_Miss_Freight_Charge_Tbl,
3799     P_Ln_Tax_Detail_Tbl		 IN   Tax_Detail_Tbl_Type                     := G_Miss_Tax_Detail_Tbl,
3800     P_ln_Sales_Credit_Tbl      IN   Sales_Credit_Tbl_Type                   := G_MISS_Sales_Credit_Tbl,
3801     P_ln_Quote_Party_Tbl       IN   Quote_Party_Tbl_Type                    := G_MISS_Quote_Party_Tbl,
3802     P_Qte_Access_Tbl           IN   Qte_Access_Tbl_Type                     := G_MISS_QTE_ACCESS_TBL,
3803     P_Template_Tbl             IN   Template_Tbl_Type                       := G_MISS_TEMPLATE_TBL,
3804     P_Related_Obj_Tbl          IN   Related_Obj_Tbl_Type                    := G_MISS_RELATED_OBJ_TBL,
3805     x_Qte_Header_Rec		 OUT NOCOPY /* file.sql.39 change */  Qte_Header_Rec_Type,
3806     X_Qte_Line_Tbl		      OUT NOCOPY /* file.sql.39 change */  Qte_Line_Tbl_Type,
3807     X_Qte_Line_Dtl_Tbl		 OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_Tbl_Type,
3808     X_Hd_Price_Attributes_Tbl	 OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
3809     X_Hd_Payment_Tbl		 OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
3810     X_Hd_Shipment_Rec		 OUT NOCOPY /* file.sql.39 change */  Shipment_Rec_Type,
3811     X_Hd_Freight_Charge_Tbl	 OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
3812     X_Hd_Tax_Detail_Tbl		 OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
3813     X_hd_Attr_Ext_Tbl		 OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
3814     X_hd_Sales_Credit_Tbl      OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
3815     X_hd_Quote_Party_Tbl       OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
3816     x_Line_Attr_Ext_Tbl		 OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
3817     X_line_rltship_tbl		 OUT NOCOPY /* file.sql.39 change */  Line_Rltship_Tbl_Type,
3818     X_Price_Adjustment_Tbl	 OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
3819     X_Price_Adj_Attr_Tbl	      OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
3820     X_Price_Adj_Rltship_Tbl	 OUT NOCOPY /* file.sql.39 change */  Price_Adj_Rltship_Tbl_Type,
3821     X_Ln_Price_Attributes_Tbl	 OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
3822     X_Ln_Payment_Tbl		 OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
3823     X_Ln_Shipment_Tbl		 OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
3824     X_Ln_Freight_Charge_Tbl	 OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
3825     X_Ln_Tax_Detail_Tbl		 OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
3826     X_Ln_Sales_Credit_Tbl      OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
3827     X_Ln_Quote_Party_Tbl       OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
3828     X_Qte_Access_Tbl           OUT NOCOPY /* file.sql.39 change */  Qte_Access_Tbl_Type,
3829     X_Template_Tbl             OUT NOCOPY /* file.sql.39 change */  Template_Tbl_Type,
3830     X_Related_Obj_Tbl          OUT NOCOPY /* file.sql.39 change */  Related_Obj_Tbl_Type,
3831     X_Return_Status            OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
3832     X_Msg_Count                OUT NOCOPY /* file.sql.39 change */  NUMBER,
3833     X_Msg_Data                 OUT NOCOPY /* file.sql.39 change */  VARCHAR2
3834     )
3835 IS
3836     l_api_name                 CONSTANT VARCHAR2(30) := 'CREATE_QUOTE';
3837     l_api_version_number       CONSTANT NUMBER       := 1.0;
3838     l_qte_header_rec	      Qte_Header_Rec_Type;
3839     l_qte_header_rec_out       Qte_Header_Rec_Type;
3840     l_Qte_Line_Tbl	           Qte_Line_Tbl_Type;
3841     l_Qte_Line_rec_out	      Qte_Line_Rec_Type;
3842     l_hd_shipment_rec	      Shipment_Rec_Type;
3843     l_hd_shipment_rec_out      Shipment_Rec_Type;
3844     l_ln_shipment_tbl	      Shipment_Tbl_Type;
3845     l_ln_shipment_rec_out      Shipment_Rec_Type;
3846     l_hd_Payment_Tbl           Payment_Tbl_Type;
3847     l_ln_Payment_Tbl           Payment_Tbl_Type;
3848     l_Price_Adj_Tbl            Price_Adj_Tbl_Type;
3849     l_Qte_Line_Dtl_rec         Qte_Line_Dtl_rec_Type;
3850     l_hd_Tax_Detail_Tbl        Tax_Detail_Tbl_Type;
3851     l_ln_Tax_Detail_Tbl        Tax_Detail_Tbl_Type;
3852     l_hd_Freight_Charge_Tbl    Freight_Charge_Tbl_Type;
3853     l_ln_Freight_Charge_Tbl    Freight_Charge_Tbl_Type;
3854     l_Line_Rltship_Tbl         Line_Rltship_Tbl_Type;
3855     l_hd_Price_Attributes_Tbl  Price_Attributes_Tbl_Type;
3856     l_ln_Price_Attributes_Tbl  Price_Attributes_Tbl_Type;
3857     l_Price_Adj_rltship_Tbl    Price_Adj_Rltship_Tbl_Type;
3858     l_Price_Adj_Attr_Tbl       Price_Adj_Attr_Tbl_Type;
3859     l_hd_Attribs_Ext_Tbl       Line_Attribs_Ext_Tbl_type;
3860     l_Line_Attribs_Ext_Tbl     Line_Attribs_Ext_Tbl_type;
3861     l_Qte_Line_Dtl_tbl         Qte_Line_Dtl_tbl_Type;
3862     l_hd_Sales_Credit_Tbl      Sales_Credit_Tbl_Type;
3863     l_ln_Sales_Credit_Tbl      Sales_Credit_Tbl_Type;
3864     l_hd_Quote_Party_Tbl       Quote_Party_Tbl_Type;
3865     l_ln_Quote_Party_Tbl       Quote_Party_Tbl_Type;
3866     l_Control_Rec              Control_rec_Type;
3867     l_validation_level         NUMBER;
3868     l_Qte_Access_Tbl           Qte_Access_Tbl_Type;
3869     l_Template_Tbl             Template_Tbl_Type;
3870     l_Related_Obj_Tbl          Related_Obj_Tbl_Type;
3871 
3872 BEGIN
3873       -- Standard Start of API savepoint
3874       SAVEPOINT CREATE_QUOTE_PUB;
3875 
3876       aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
3877 
3878       -- Standard call to check for call compatibility.
3879       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
3880                          	             p_api_version_number,
3881                                            l_api_name,
3882                                            G_PKG_NAME) THEN
3883           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3884       END IF;
3885 
3886       -- Initialize message list if p_init_msg_list is set to TRUE.
3887       IF FND_API.to_Boolean( p_init_msg_list ) THEN
3888           FND_MSG_PUB.initialize;
3889       END IF;
3890 
3891       -- Initialize API return status to SUCCESS
3892       x_return_status := FND_API.G_RET_STS_SUCCESS;
3893 
3894       --
3895       -- API body
3896       --
3897 
3898       -- mapping to local variables
3899       l_qte_header_rec          := P_Qte_Header_Rec;
3900       l_hd_Price_Attributes_Tbl := P_hd_Price_Attributes_Tbl;
3901       l_hd_Payment_Tbl          := P_hd_Payment_Tbl;
3902       l_hd_shipment_rec         := P_hd_Shipment_Rec;
3903       l_hd_Freight_Charge_Tbl   := P_hd_Freight_Charge_Tbl;
3904       l_hd_Tax_Detail_Tbl       := P_hd_Tax_Detail_Tbl;
3905       l_hd_Attribs_Ext_Tbl      := P_hd_Attr_Ext_Tbl;
3906       l_hd_Sales_Credit_Tbl     := P_hd_Sales_Credit_Tbl;
3907       l_hd_Quote_Party_Tbl      := P_hd_Quote_Party_Tbl;
3908       l_Qte_Line_tbl            := p_Qte_Line_tbl;
3909       l_hd_Payment_Tbl          := p_hd_Payment_Tbl;
3910       l_Price_Adj_Tbl           := P_Price_Adjustment_Tbl;
3911     	 l_Line_Rltship_Tbl        := p_Line_Rltship_Tbl;
3912       l_Price_Adj_rltship_Tbl   := p_Price_Adj_Rltship_Tbl;
3913       l_ln_Price_Attributes_Tbl := P_Ln_Price_Attributes_Tbl;
3914       l_Price_Adj_Attr_Tbl      := p_Price_Adj_Attr_Tbl;
3915       l_ln_Payment_Tbl          := P_Ln_Payment_Tbl;
3916       l_ln_shipment_tbl         := P_Ln_Shipment_Tbl;
3917       l_ln_Freight_Charge_Tbl   := P_Ln_Freight_Charge_Tbl;
3918       l_ln_Tax_Detail_Tbl       := P_Ln_Tax_Detail_Tbl;
3919       l_ln_Sales_Credit_Tbl     := P_ln_Sales_Credit_Tbl;
3920       l_ln_Quote_Party_Tbl      := P_ln_Quote_Party_Tbl;
3921     	 l_Line_Attribs_Ext_Tbl    := P_Line_Attr_Ext_Tbl;
3922 	 l_Qte_Line_Dtl_tbl        := p_Qte_Line_Dtl_tbl;
3923       l_control_rec             := p_control_rec;
3924       l_validation_level        := P_Validation_Level;
3925       l_Qte_Access_Tbl          := P_Qte_Access_Tbl;
3926       l_Template_Tbl            := P_Template_Tbl;
3927       l_Related_Obj_Tbl         := P_Related_Obj_Tbl;
3928 
3929       -- call user hooks
3930       -- customer pre processing
3931 
3932       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
3933 
3934            ASO_QUOTE_CUHK.Create_quote_PRE(
3935                             P_Validation_Level 	     => l_validation_level ,
3936                             P_Control_Rec		     => l_control_rec ,
3937                             P_Qte_Header_Rec	          => l_qte_header_rec  ,
3938                             P_hd_Price_Attributes_Tbl	=> l_hd_Price_Attributes_Tbl  ,
3939                             P_hd_Payment_Tbl		     => l_hd_Payment_Tbl ,
3940                             P_hd_Shipment_Rec		=> l_hd_shipment_rec,
3941                             P_hd_Freight_Charge_Tbl	=> l_hd_Freight_Charge_Tbl,
3942                             P_hd_Tax_Detail_Tbl		=> l_hd_Tax_Detail_Tbl ,
3943                             P_hd_Attr_Ext_Tbl		=> l_hd_Attribs_Ext_Tbl,
3944                             P_hd_Sales_Credit_Tbl      => l_hd_Sales_Credit_Tbl ,
3945                             P_hd_Quote_Party_Tbl       => l_hd_Quote_Party_Tbl   ,
3946                             P_Qte_Line_Tbl		     => l_Qte_Line_Tbl,
3947                             P_Qte_Line_Dtl_Tbl		=> l_Qte_Line_Dtl_tbl,
3948                             P_Line_Attr_Ext_Tbl		=> l_Line_Attribs_Ext_Tbl,
3949                             P_line_rltship_tbl		=> l_Line_Rltship_Tbl,
3950                             P_Price_Adjustment_Tbl	=> l_Price_Adj_Tbl ,
3951                             P_Price_Adj_Attr_Tbl	     => l_Price_Adj_Attr_Tbl    ,
3952                             P_Price_Adj_Rltship_Tbl	=> l_Price_Adj_rltship_Tbl,
3953                             P_Ln_Price_Attributes_Tbl	=> l_ln_Price_Attributes_Tbl  ,
3954                             P_Ln_Payment_Tbl		     => l_ln_Payment_Tbl ,
3955                             P_Ln_Shipment_Tbl		=> l_ln_shipment_tbl ,
3956                             P_Ln_Freight_Charge_Tbl	=> l_ln_Freight_Charge_Tbl,
3957                             P_Ln_Tax_Detail_Tbl		=> l_ln_Tax_Detail_Tbl,
3958                             P_ln_Sales_Credit_Tbl      => l_ln_Sales_Credit_Tbl    ,
3959                             P_ln_Quote_Party_Tbl       => l_ln_Quote_Party_Tbl,
3960 					   /*
3961                             P_Qte_Access_Tbl           => l_Qte_Access_Tbl,
3962                             P_Template_Tbl             => l_Template_Tbl,
3963                             P_Related_Obj_Tbl          => l_Related_Obj_Tbl,
3964 					   */
3965                             X_Return_Status            => X_Return_Status,
3966                             X_Msg_Count                => X_Msg_Count,
3967                             X_Msg_Data                 => X_Msg_Data);
3968 
3969            IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3970 
3971                IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3972 		         FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3973 		         FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Create_Quote_PRE', FALSE);
3974 		         FND_MSG_PUB.ADD;
3975                END IF;
3976 
3977                IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3978                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3979                ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3980                     RAISE FND_API.G_EXC_ERROR;
3981                END IF;
3982 
3983           END IF;
3984 
3985       END IF; -- customer hook
3986 
3987       -- vertical hook
3988       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
3989 
3990            ASO_QUOTE_VUHK.Create_quote_PRE(
3991                            P_Validation_Level 	   => l_validation_level ,
3992                            P_Control_Rec		   => l_control_rec ,
3993                            P_Qte_Header_Rec	        => l_qte_header_rec  ,
3994                            P_hd_Price_Attributes_Tbl => l_hd_Price_Attributes_Tbl  ,
3995                            P_hd_Payment_Tbl		   => l_hd_Payment_Tbl ,
3996                            P_hd_Shipment_Rec		   => l_hd_shipment_rec,
3997                            P_hd_Freight_Charge_Tbl   => l_hd_Freight_Charge_Tbl,
3998                            P_hd_Tax_Detail_Tbl	   => l_hd_Tax_Detail_Tbl ,
3999                            P_hd_Attr_Ext_Tbl		   => l_hd_Attribs_Ext_Tbl,
4000                            P_hd_Sales_Credit_Tbl     => l_hd_Sales_Credit_Tbl ,
4001                            P_hd_Quote_Party_Tbl      => l_hd_Quote_Party_Tbl   ,
4002                            P_Qte_Line_Tbl		   => l_Qte_Line_Tbl,
4003                            P_Qte_Line_Dtl_Tbl        => l_Qte_Line_Dtl_tbl,
4004                            P_Line_Attr_Ext_Tbl       => l_Line_Attribs_Ext_Tbl,
4005                            P_line_rltship_tbl        => l_Line_Rltship_Tbl,
4006                            P_Price_Adjustment_Tbl	   => l_Price_Adj_Tbl ,
4007                            P_Price_Adj_Attr_Tbl	   => l_Price_Adj_Attr_Tbl    ,
4008                            P_Price_Adj_Rltship_Tbl   => l_Price_Adj_rltship_Tbl,
4009                            P_Ln_Price_Attributes_Tbl => l_ln_Price_Attributes_Tbl  ,
4010                            P_Ln_Payment_Tbl		   => l_ln_Payment_Tbl ,
4011                            P_Ln_Shipment_Tbl		   => l_ln_shipment_tbl ,
4012                            P_Ln_Freight_Charge_Tbl   => l_ln_Freight_Charge_Tbl,
4013                            P_Ln_Tax_Detail_Tbl       => l_ln_Tax_Detail_Tbl,
4014                            P_ln_Sales_Credit_Tbl     => l_ln_Sales_Credit_Tbl    ,
4015                            P_ln_Quote_Party_Tbl      => l_ln_Quote_Party_Tbl,
4016 					  /*
4017                            P_Qte_Access_Tbl          => l_Qte_Access_Tbl,
4018                            P_Template_Tbl            => l_Template_Tbl,
4019 					  P_Related_Obj_Tbl         => l_Related_Obj_Tbl,
4020 					  */
4021                            X_Return_Status           => X_Return_Status,
4022                            X_Msg_Count               => X_Msg_Count,
4023                            X_Msg_Data                => X_Msg_Data );
4024 
4025            IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4026 
4027                IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4028 		         FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
4029 		         FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Create_Quote_PRE', FALSE);
4030 		         FND_MSG_PUB.ADD;
4031                END IF;
4032 
4033                IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4034                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4035                ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4036                     RAISE FND_API.G_EXC_ERROR;
4037                END IF;
4038 
4039           END IF;
4040 
4041       END IF;
4042 
4043       -- Convert the values to ids
4044       --
4045 
4046       Convert_Header_Values_To_Ids ( p_qte_header_rec	=>  l_qte_header_rec,
4047                                      x_qte_header_rec	=>  l_qte_header_rec_out);
4048 
4049 	 l_qte_header_rec := l_qte_header_rec_out;
4050 
4051       FOR i IN 1..p_qte_line_tbl.count LOOP
4052 
4053          Convert_Line_Values_To_Ids ( p_qte_line_rec	=> l_qte_line_tbl(i),
4054 	                                x_qte_line_rec	=> l_qte_line_rec_out );
4055 
4056 	    l_qte_line_tbl(i) := l_qte_line_rec_out;
4057 
4058       END LOOP;
4059 
4060       Convert_Shipment_Values_To_Ids ( p_shipment_rec	=> l_hd_shipment_rec,
4061 	                                  x_shipment_rec	=> l_hd_shipment_rec_out);
4062 
4063 	 l_hd_shipment_rec := l_hd_shipment_rec_out;
4064 
4065       FOR i IN 1..p_ln_shipment_tbl.count LOOP
4066 
4067           Convert_Shipment_Values_To_Ids ( p_shipment_rec	=> l_ln_shipment_tbl(i),
4068 	                                      x_shipment_rec	=> l_ln_shipment_rec_out );
4069 
4070 	     l_ln_shipment_tbl(i) := l_ln_shipment_rec_out;
4071 
4072       END LOOP;
4073 
4074       ASO_QUOTE_HEADERS_PVT.Create_quote(
4075 	                          P_Api_Version_Number      => 1.0,
4076 	                          P_Init_Msg_List           => FND_API.G_FALSE,
4077 	                          P_Commit			       => FND_API.G_FALSE,
4078 	                          p_validation_level		  => p_validation_level,
4079 	                          P_Control_Rec		       => l_control_rec,
4080 	                          P_qte_header_rec		  => l_qte_header_rec,
4081 	                          P_Hd_Price_Attributes_Tbl => l_hd_Price_Attributes_Tbl,
4082 	                          P_Hd_Payment_Tbl		  => l_hd_Payment_Tbl,
4083 	                          P_Hd_Shipment_Rec		  => l_Hd_Shipment_Rec,
4084 	                          P_Hd_Freight_Charge_Tbl	  => l_hd_Freight_Charge_Tbl,
4085 	                          P_Hd_Tax_Detail_Tbl	  => l_hd_Tax_Detail_Tbl ,
4086                                P_hd_Attr_Ext_Tbl         => l_hd_Attribs_Ext_Tbl,
4087                                P_hd_Sales_Credit_Tbl     => l_hd_Sales_Credit_Tbl ,
4088                                P_hd_Quote_Party_Tbl      => l_hd_Quote_Party_Tbl,
4089 	                          P_Qte_Line_Tbl		  => l_Qte_Line_Tbl,
4090 	                          P_Qte_Line_Dtl_Tbl		  => l_Qte_Line_Dtl_tbl,
4091 	                          P_Line_Attr_Ext_Tbl       => l_Line_Attribs_Ext_Tbl,
4092 	                          P_Line_rltship_tbl		  => l_Line_Rltship_Tbl,
4093 	                          P_Price_Adjustment_Tbl	  => l_Price_Adj_Tbl,
4094 	                          P_Price_Adj_Attr_Tbl	  => l_Price_Adj_Attr_Tbl,
4095 	                          P_Price_Adj_Rltship_Tbl	  => l_Price_Adj_rltship_Tbl ,
4096 	                          P_Ln_Price_Attributes_Tbl => l_ln_Price_Attributes_Tbl ,
4097 	                          P_Ln_Payment_Tbl          => l_Ln_Payment_Tbl,
4098 	                          P_Ln_Shipment_Tbl         => l_Ln_Shipment_Tbl,
4099 	                          P_Ln_Freight_Charge_Tbl	  => l_Ln_Freight_Charge_Tbl,
4100 	                          P_Ln_Tax_Detail_Tbl       => l_Ln_Tax_Detail_Tbl,
4101                                P_ln_Sales_Credit_Tbl     => l_ln_Sales_Credit_Tbl ,
4102                                P_ln_Quote_Party_Tbl      => l_ln_Quote_Party_Tbl,
4103                                P_Qte_Access_Tbl          => l_Qte_Access_Tbl,
4104                                P_Template_Tbl            => l_Template_Tbl,
4105 					      P_Related_Obj_Tbl         => l_Related_Obj_Tbl,
4106 	                          x_qte_header_rec		  => x_qte_header_rec,
4107 	                          X_Hd_Price_Attributes_Tbl => x_Hd_Price_Attributes_Tbl,
4108 	                          X_Hd_Payment_Tbl		  => x_Hd_Payment_Tbl,
4109 	                          X_Hd_Shipment_Rec		  => x_Hd_Shipment_Rec,
4110 	                          X_Hd_Freight_Charge_Tbl	  => x_Hd_Freight_Charge_Tbl,
4111 	                          X_Hd_Tax_Detail_Tbl       => x_Hd_Tax_Detail_Tbl,
4112                                X_hd_Attr_Ext_Tbl         => X_hd_Attr_Ext_Tbl,
4113                                X_hd_Sales_Credit_Tbl     => X_hd_Sales_Credit_Tbl,
4114                                X_hd_Quote_Party_Tbl      => X_hd_Quote_Party_Tbl,
4115 	                          X_Qte_Line_Tbl            => x_Qte_Line_Tbl,
4116 	                          X_Qte_Line_Dtl_Tbl		  => x_Qte_Line_Dtl_Tbl,
4117 	                          x_Line_Attr_Ext_Tbl       => x_Line_Attr_Ext_Tbl,
4118 	                          X_Line_rltship_tbl	       => x_Line_Rltship_Tbl,
4119 	                          X_Price_Adjustment_Tbl    => x_Price_Adjustment_Tbl,
4120 	                          x_Price_Adj_Attr_Tbl      => x_Price_Adj_Attr_Tbl,
4121 	                          X_Price_Adj_Rltship_Tbl   => x_Price_Adj_Rltship_Tbl,
4122 	                          X_Ln_Price_Attributes_Tbl => x_Ln_Price_Attributes_Tbl,
4123 	                          X_Ln_Payment_Tbl          => x_Ln_Payment_Tbl,
4124 	                          X_Ln_Shipment_Tbl         => x_Ln_Shipment_Tbl,
4125 	                          X_Ln_Freight_Charge_Tbl   => x_Ln_Freight_Charge_Tbl,
4126 	                          X_Ln_Tax_Detail_Tbl       => x_Ln_Tax_Detail_Tbl,
4127                                X_Ln_Sales_Credit_Tbl     => X_Ln_Sales_Credit_Tbl,
4128                                X_Ln_Quote_Party_Tbl      => X_Ln_Quote_Party_Tbl ,
4129                                X_Qte_Access_Tbl          => X_Qte_Access_Tbl,
4130                                X_Template_Tbl            => X_Template_Tbl,
4131                                X_Related_Obj_Tbl         => X_Related_Obj_Tbl,
4132 	                          X_Return_Status           => x_return_status,
4133 	                          X_Msg_Count               => x_msg_count,
4134 	                          X_Msg_Data                => x_msg_data);
4135 
4136 	 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4137           aso_debug_pub.add('create_quote_pub: after create quote, starting user hooks (1)'||x_return_status,1, 'N');
4138 	 END IF;
4139 
4140       -- Check return status from the above procedure call
4141       IF x_return_status = FND_API.G_RET_STS_ERROR then
4142           raise FND_API.G_EXC_ERROR;
4143       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
4144           raise FND_API.G_EXC_UNEXPECTED_ERROR;
4145       END IF;
4146 
4147       --
4148       -- End of API body.
4149       --
4150 
4151       -- call user hooks customer post processing
4152 
4153       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
4154 
4155           ASO_QUOTE_CUHK.Create_quote_POST(
4156                             P_Validation_Level 	    => l_validation_level ,
4157                             P_Control_Rec		    => l_control_rec ,
4158                             P_Qte_Header_Rec	         => x_qte_header_rec  ,
4159                             P_hd_Price_Attributes_Tbl => x_hd_Price_Attributes_Tbl  ,
4160                             P_hd_Payment_Tbl		    => x_hd_Payment_Tbl ,
4161                             P_hd_Shipment_Rec         => x_hd_shipment_rec,
4162                             P_hd_Freight_Charge_Tbl   => x_hd_Freight_Charge_Tbl,
4163                             P_hd_Tax_Detail_Tbl       => x_hd_Tax_Detail_Tbl ,
4164                             P_hd_Attr_Ext_Tbl         => X_hd_Attr_Ext_Tbl,
4165                             P_hd_Sales_Credit_Tbl     => x_hd_Sales_Credit_Tbl ,
4166                             P_hd_Quote_Party_Tbl      => x_hd_Quote_Party_Tbl   ,
4167                             P_Qte_Line_Tbl            => x_Qte_Line_Tbl,
4168                             P_Qte_Line_Dtl_Tbl        => x_Qte_Line_Dtl_tbl,
4169                             P_Line_Attr_Ext_Tbl       => x_Line_Attr_Ext_Tbl,
4170                             P_line_rltship_tbl        => x_Line_Rltship_Tbl,
4171                             P_Price_Adjustment_Tbl    => x_Price_Adjustment_Tbl ,
4172                             P_Price_Adj_Attr_Tbl      => x_Price_Adj_Attr_Tbl    ,
4173                             P_Price_Adj_Rltship_Tbl   => x_Price_Adj_rltship_Tbl,
4174                             P_Ln_Price_Attributes_Tbl => x_ln_Price_Attributes_Tbl  ,
4175                             P_Ln_Payment_Tbl	         => x_ln_Payment_Tbl ,
4176                             P_Ln_Shipment_Tbl         => x_ln_shipment_tbl ,
4177                             P_Ln_Freight_Charge_Tbl   => x_ln_Freight_Charge_Tbl,
4178                             P_Ln_Tax_Detail_Tbl       => x_ln_Tax_Detail_Tbl,
4179                             P_ln_Sales_Credit_Tbl     => x_ln_Sales_Credit_Tbl    ,
4180                             P_ln_Quote_Party_Tbl      => x_ln_Quote_Party_Tbl,
4181 					   /*
4182                             P_Qte_Access_Tbl          => x_Qte_Access_Tbl,
4183                             P_Template_Tbl            => x_Template_Tbl,
4184 					   P_Related_Obj_Tbl         => l_Related_Obj_Tbl,
4185 					   */
4186                             X_Return_Status           => X_Return_Status,
4187                             X_Msg_Count               => X_Msg_Count,
4188                             X_Msg_Data                => X_Msg_Data
4189                             );
4190 
4191           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4192 
4193              IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4194 		       FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
4195 		       FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Create_Quote_POST', FALSE);
4196 		       FND_MSG_PUB.ADD;
4197              END IF;
4198 
4199              IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4200                   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4201              ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4202                   RAISE FND_API.G_EXC_ERROR;
4203              END IF;
4204 
4205           END IF;
4206 
4207       END IF; -- customer hook
4208 
4209 
4210 	 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4211 	     aso_debug_pub.add('aso_quote_vuhk: before if create quote post (1)'||x_return_status,1, 'N');
4212 	 END IF;
4213 
4214       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
4215 
4216 	     IF aso_debug_pub.g_debug_flag = 'Y' THEN
4217               aso_debug_pub.add('aso_quote_vuhk: inside if create quote post (1)'||x_return_status,1, 'N');
4218 	     END IF;
4219 
4220           ASO_QUOTE_VUHK.Create_quote_POST(
4221                             P_Validation_Level 	    => l_validation_level ,
4222                             P_Control_Rec		    => l_control_rec ,
4223                             P_Qte_Header_Rec	         => x_qte_header_rec  ,
4224                             P_hd_Price_Attributes_Tbl => x_hd_Price_Attributes_Tbl  ,
4225                             P_hd_Payment_Tbl		    => x_hd_Payment_Tbl ,
4226                             P_hd_Shipment_Rec         => x_hd_shipment_rec,
4227                             P_hd_Freight_Charge_Tbl   => x_hd_Freight_Charge_Tbl,
4228                             P_hd_Tax_Detail_Tbl	    => x_hd_Tax_Detail_Tbl ,
4229                             P_hd_Attr_Ext_Tbl         => X_hd_Attr_Ext_Tbl,
4230                             P_hd_Sales_Credit_Tbl     => x_hd_Sales_Credit_Tbl ,
4231                             P_hd_Quote_Party_Tbl      => x_hd_Quote_Party_Tbl   ,
4232                             P_Qte_Line_Tbl		    => x_Qte_Line_Tbl,
4233                             P_Qte_Line_Dtl_Tbl        => x_Qte_Line_Dtl_tbl,
4234                             P_Line_Attr_Ext_Tbl       => x_Line_Attr_Ext_Tbl,
4235                             P_line_rltship_tbl        => x_Line_Rltship_Tbl,
4236                             P_Price_Adjustment_Tbl    => x_Price_Adjustment_Tbl ,
4237                             P_Price_Adj_Attr_Tbl      => x_Price_Adj_Attr_Tbl    ,
4238                             P_Price_Adj_Rltship_Tbl   => x_Price_Adj_rltship_Tbl,
4239                             P_Ln_Price_Attributes_Tbl => x_ln_Price_Attributes_Tbl  ,
4240                             P_Ln_Payment_Tbl          => x_ln_Payment_Tbl ,
4241                             P_Ln_Shipment_Tbl         => x_ln_shipment_tbl ,
4242                             P_Ln_Freight_Charge_Tbl   => x_ln_Freight_Charge_Tbl,
4243                             P_Ln_Tax_Detail_Tbl       => x_ln_Tax_Detail_Tbl,
4244                             P_ln_Sales_Credit_Tbl     => x_ln_Sales_Credit_Tbl    ,
4245                             P_ln_Quote_Party_Tbl      => x_ln_Quote_Party_Tbl,
4246 					   /*
4247                             P_Qte_Access_Tbl          => x_Qte_Access_Tbl,
4248                             P_Template_Tbl            => x_Template_Tbl,
4249 					   P_Related_Obj_Tbl         => x_Related_Obj_Tbl,
4250 					   */
4251                             X_Return_Status           => X_Return_Status,
4252                             X_Msg_Count               => X_Msg_Count,
4253                             X_Msg_Data                => X_Msg_Data
4254                             );
4255 
4256           IF aso_debug_pub.g_debug_flag = 'Y' THEN
4257               aso_debug_pub.add('create_quote_pub: after hooks (2)'||x_return_status,1, 'N');
4258           END IF;
4259 
4260           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4261 
4262               IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4263 		        FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
4264 		        FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Create_Quote_POST', FALSE);
4265 		        FND_MSG_PUB.ADD;
4266               END IF;
4267 
4268               IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4269                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4270               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4271                    RAISE FND_API.G_EXC_ERROR;
4272               END IF;
4273 
4274           END IF;
4275 
4276       END IF; -- vertical hook
4277 
4278       -- Standard check for p_commit
4279       IF FND_API.to_Boolean( p_commit ) THEN
4280           COMMIT WORK;
4281       END IF;
4282 
4283       -- Standard call to get message count and if count is 1, get message info.
4284       FND_MSG_PUB.Count_And_Get
4285       (  p_count          =>   x_msg_count,
4286          p_data           =>   x_msg_data
4287       );
4288 
4289       EXCEPTION
4290 
4291 	  WHEN FND_API.G_EXC_ERROR THEN
4292 	      ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4293 		   P_API_NAME => L_API_NAME
4294 		  ,P_PKG_NAME => G_PKG_NAME
4295 		  ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
4296 		  ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
4297 		  ,P_SQLCODE => SQLCODE
4298 		  ,P_SQLERRM => SQLERRM
4299 		  ,X_MSG_COUNT => X_MSG_COUNT
4300 		  ,X_MSG_DATA => X_MSG_DATA
4301 		  ,X_RETURN_STATUS => X_RETURN_STATUS);
4302 
4303 	  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4304 	      ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4305 		   P_API_NAME => L_API_NAME
4306 		  ,P_PKG_NAME => G_PKG_NAME
4307 		  ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
4308 		  ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
4309 		  ,P_SQLCODE => SQLCODE
4310 		  ,P_SQLERRM => SQLERRM
4311 		  ,X_MSG_COUNT => X_MSG_COUNT
4312 		  ,X_MSG_DATA => X_MSG_DATA
4313 		  ,X_RETURN_STATUS => X_RETURN_STATUS);
4314 
4315 	  WHEN OTHERS THEN
4316 	      ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4317 		   P_API_NAME => L_API_NAME
4318 		  ,P_PKG_NAME => G_PKG_NAME
4319 		  ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
4320 		  ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
4321 		  ,P_SQLCODE => SQLCODE
4322 		  ,P_SQLERRM => SQLERRM
4323 		  ,X_MSG_COUNT => X_MSG_COUNT
4324 		  ,X_MSG_DATA => X_MSG_DATA
4325 		  ,X_RETURN_STATUS => X_RETURN_STATUS);
4326 END;
4327 
4328 
4329 --   *******************************************************
4330 --    Start of Comments
4331 --   *******************************************************
4332 --   API Name:  Update_quote
4333 --   Type    :  Public
4334 --   Pre-Req :
4335 --   Parameters:
4336 
4337 --  This is an overloaded procedure. It takes additional attributes
4338 --  which include the hd_attributes, sales credits and quote party record types
4339 
4340 
4341 PROCEDURE Update_quote(
4342     P_Api_Version_Number         IN   NUMBER,
4343     P_Init_Msg_List              IN   VARCHAR2                                := FND_API.G_FALSE,
4344     P_Commit                     IN   VARCHAR2                                := FND_API.G_FALSE,
4345     P_Validation_Level 	        IN   NUMBER                                  := FND_API.G_VALID_LEVEL_FULL,
4346     P_Control_Rec		        IN   Control_Rec_Type                        := G_Miss_Control_Rec,
4347     P_Qte_Header_Rec		   IN   Qte_Header_Rec_Type                     := G_MISS_Qte_Header_Rec,
4348     P_hd_Price_Attributes_Tbl	   IN   ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := G_Miss_Price_Attributes_Tbl,
4349     P_hd_Payment_Tbl		   IN   ASO_QUOTE_PUB.Payment_Tbl_Type          := G_MISS_PAYMENT_TBL,
4350     P_hd_Shipment_Tbl		   IN   ASO_QUOTE_PUB.Shipment_Tbl_Type         := G_MISS_SHIPMENT_TBL,
4351     P_hd_Freight_Charge_Tbl	   IN   ASO_QUOTE_PUB.Freight_Charge_Tbl_Type   := G_Miss_Freight_Charge_Tbl,
4352     P_hd_Tax_Detail_Tbl		   IN   ASO_QUOTE_PUB.Tax_Detail_Tbl_Type       := G_Miss_Tax_Detail_Tbl,
4353     P_hd_Attr_Ext_Tbl		   IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
4354     P_hd_Sales_Credit_Tbl        IN   Sales_Credit_Tbl_Type                   := G_MISS_Sales_Credit_Tbl,
4355     P_hd_Quote_Party_Tbl         IN   Quote_Party_Tbl_Type                    := G_MISS_Quote_Party_Tbl,
4356     P_Qte_Line_Tbl		        IN   Qte_Line_Tbl_Type                       := G_MISS_QTE_LINE_TBL,
4357     P_Qte_Line_Dtl_Tbl		   IN   Qte_Line_Dtl_Tbl_Type                   := G_MISS_QTE_LINE_DTL_TBL,
4358     P_Line_Attr_Ext_Tbl		   IN   Line_Attribs_Ext_Tbl_Type               := G_MISS_Line_Attribs_Ext_TBL,
4359     P_line_rltship_tbl		   IN   Line_Rltship_Tbl_Type                   := G_MISS_Line_Rltship_Tbl,
4360     P_Price_Adjustment_Tbl	   IN   Price_Adj_Tbl_Type                      := G_Miss_Price_Adj_Tbl,
4361     P_Price_Adj_Attr_Tbl	        IN   Price_Adj_Attr_Tbl_Type                 := G_Miss_PRICE_ADJ_ATTR_Tbl,
4362     P_Price_Adj_Rltship_Tbl	   IN   Price_Adj_Rltship_Tbl_Type              := G_Miss_Price_Adj_Rltship_Tbl,
4363     P_Ln_Price_Attributes_Tbl	   IN   Price_Attributes_Tbl_Type               := G_Miss_Price_Attributes_Tbl,
4364     P_Ln_Payment_Tbl		   IN   Payment_Tbl_Type                        := G_MISS_PAYMENT_TBL,
4365     P_Ln_Shipment_Tbl		   IN   Shipment_Tbl_Type                       := G_MISS_SHIPMENT_TBL,
4366     P_Ln_Freight_Charge_Tbl	   IN   Freight_Charge_Tbl_Type                 := G_Miss_Freight_Charge_Tbl,
4367     P_Ln_Tax_Detail_Tbl		   IN   Tax_Detail_Tbl_Type                     := G_Miss_Tax_Detail_Tbl,
4368     P_ln_Sales_Credit_Tbl        IN   Sales_Credit_Tbl_Type                   := G_MISS_Sales_Credit_Tbl,
4369     P_ln_Quote_Party_Tbl         IN   Quote_Party_Tbl_Type                    := G_MISS_Quote_Party_Tbl,
4370     P_Qte_Access_Tbl             IN   Qte_Access_Tbl_Type                     := G_MISS_QTE_ACCESS_TBL,
4371     P_Template_Tbl               IN   Template_Tbl_Type                       := G_MISS_TEMPLATE_TBL,
4372     P_Related_Obj_Tbl            IN   Related_Obj_Tbl_Type                    := G_MISS_RELATED_OBJ_TBL,
4373     x_Qte_Header_Rec		   OUT NOCOPY /* file.sql.39 change */  Qte_Header_Rec_Type,
4374     X_Qte_Line_Tbl		        OUT NOCOPY /* file.sql.39 change */  Qte_Line_Tbl_Type,
4375     X_Qte_Line_Dtl_Tbl		   OUT NOCOPY /* file.sql.39 change */  Qte_Line_Dtl_Tbl_Type,
4376     X_Hd_Price_Attributes_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
4377     X_Hd_Payment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
4378     X_Hd_Shipment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
4379     X_Hd_Freight_Charge_Tbl	   OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
4380     X_Hd_Tax_Detail_Tbl		   OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
4381     X_hd_Attr_Ext_Tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
4382     X_hd_Sales_Credit_Tbl        OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
4383     X_hd_Quote_Party_Tbl         OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
4384     x_Line_Attr_Ext_Tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Attribs_Ext_Tbl_Type,
4385     X_line_rltship_tbl		   OUT NOCOPY /* file.sql.39 change */  Line_Rltship_Tbl_Type,
4386     X_Price_Adjustment_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Adj_Tbl_Type,
4387     X_Price_Adj_Attr_Tbl	        OUT NOCOPY /* file.sql.39 change */  Price_Adj_Attr_Tbl_Type,
4388     X_Price_Adj_Rltship_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Adj_Rltship_Tbl_Type,
4389     X_Ln_Price_Attributes_Tbl	   OUT NOCOPY /* file.sql.39 change */  Price_Attributes_Tbl_Type,
4390     X_Ln_Payment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Payment_Tbl_Type,
4391     X_Ln_Shipment_Tbl		   OUT NOCOPY /* file.sql.39 change */  Shipment_Tbl_Type,
4392     X_Ln_Freight_Charge_Tbl	   OUT NOCOPY /* file.sql.39 change */  Freight_Charge_Tbl_Type,
4393     X_Ln_Tax_Detail_Tbl		   OUT NOCOPY /* file.sql.39 change */  Tax_Detail_Tbl_Type,
4394     X_Ln_Sales_Credit_Tbl        OUT NOCOPY /* file.sql.39 change */  Sales_Credit_Tbl_Type,
4395     X_Ln_Quote_Party_Tbl         OUT NOCOPY /* file.sql.39 change */  Quote_Party_Tbl_Type,
4396     X_Qte_Access_Tbl             OUT NOCOPY /* file.sql.39 change */  Qte_Access_Tbl_Type,
4397     X_Template_Tbl               OUT NOCOPY /* file.sql.39 change */  Template_Tbl_Type,
4398     X_Related_Obj_Tbl            OUT NOCOPY /* file.sql.39 change */  Related_Obj_Tbl_Type,
4399     X_Return_Status              OUT NOCOPY /* file.sql.39 change */  VARCHAR2,
4400     X_Msg_Count                  OUT NOCOPY /* file.sql.39 change */  NUMBER,
4401     X_Msg_Data                   OUT NOCOPY /* file.sql.39 change */  VARCHAR2
4402     )
4403 IS
4404     l_api_name                 CONSTANT VARCHAR2(30) := 'UPDATE_QUOTE';
4405     l_api_version_number       CONSTANT NUMBER       := 1.0;
4406     l_Qte_Header_Rec	      Qte_Header_Rec_Type;
4407     l_Qte_Header_Rec_Out       Qte_Header_Rec_Type;
4408     l_Qte_Line_Tbl	           Qte_Line_Tbl_Type;
4409     l_Qte_Line_Rec_Out	      Qte_Line_Rec_Type;
4410     l_hd_shipment_tbl	      Shipment_Tbl_Type;
4411     l_hd_shipment_rec_out      Shipment_Rec_Type;
4412     l_ln_shipment_tbl	      Shipment_Tbl_Type;
4413     l_ln_shipment_rec_out      Shipment_Rec_Type;
4414     l_hd_Payment_Tbl           Payment_Tbl_Type ;
4415     l_ln_Payment_Tbl           Payment_Tbl_Type ;
4416     l_Price_Adj_Tbl            Price_Adj_Tbl_Type;
4417     l_Qte_Line_Dtl_rec         Qte_Line_Dtl_rec_Type ;
4418     l_hd_Tax_Detail_Tbl        Tax_Detail_Tbl_Type;
4419     l_ln_Tax_Detail_Tbl        Tax_Detail_Tbl_Type;
4420     l_hd_Freight_Charge_Tbl    Freight_Charge_Tbl_Type;
4421     l_ln_Freight_Charge_Tbl    Freight_Charge_Tbl_Type;
4422     l_Line_Rltship_Tbl         Line_Rltship_Tbl_Type;
4423     l_hd_Price_Attributes_Tbl  Price_Attributes_Tbl_Type;
4424     l_ln_Price_Attributes_Tbl  Price_Attributes_Tbl_Type;
4425     l_Price_Adj_rltship_Tbl    Price_Adj_Rltship_Tbl_Type;
4426     l_Price_Adj_Attr_Tbl       Price_Adj_Attr_Tbl_Type;
4427     l_hd_Attribs_Ext_Tbl       Line_Attribs_Ext_Tbl_type;
4428     l_Line_Attribs_Ext_Tbl     Line_Attribs_Ext_Tbl_type;
4429     l_Qte_Line_Dtl_tbl         Qte_Line_Dtl_tbl_Type;
4430     l_hd_Sales_Credit_Tbl      Sales_Credit_Tbl_Type ;
4431     l_ln_Sales_Credit_Tbl      Sales_Credit_Tbl_Type ;
4432     l_hd_Quote_Party_Tbl       Quote_Party_Tbl_Type;
4433     l_ln_Quote_Party_Tbl       Quote_Party_Tbl_Type;
4434     l_Control_Rec              Control_rec_Type;
4435     l_validation_level         NUMBER;
4436     l_Qte_Access_Tbl           Qte_Access_Tbl_Type;
4437     l_Template_Tbl             Template_Tbl_Type;
4438     l_Related_Obj_Tbl          Related_Obj_Tbl_Type;
4439 
4440 BEGIN
4441       -- Standard Start of API savepoint
4442       SAVEPOINT UPDATE_QUOTE_PUB;
4443 
4444       aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
4445 
4446       -- Standard call to check for call compatibility.
4447       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
4448                          	             p_api_version_number,
4449                                            l_api_name,
4450                                            G_PKG_NAME) THEN
4451           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4452       END IF;
4453 
4454       -- Initialize message list if p_init_msg_list is set to TRUE.
4455       IF FND_API.to_Boolean( p_init_msg_list ) THEN
4456           FND_MSG_PUB.initialize;
4457       END IF;
4458 
4459       -- Initialize API return status to SUCCESS
4460       x_return_status := FND_API.G_RET_STS_SUCCESS;
4461 
4462       --
4463       -- API body
4464       --
4465       -- mapping to local variables
4466       l_qte_header_rec          := P_Qte_Header_Rec;
4467       l_hd_Price_Attributes_Tbl := P_hd_Price_Attributes_Tbl;
4468       l_hd_Payment_Tbl          := P_hd_Payment_Tbl;
4469       l_hd_shipment_tbl         := P_hd_Shipment_tbl;
4470       l_hd_Freight_Charge_Tbl   := P_hd_Freight_Charge_Tbl;
4471       l_hd_Tax_Detail_Tbl       := P_hd_Tax_Detail_Tbl;
4472       l_hd_Attribs_Ext_Tbl      := P_hd_Attr_Ext_Tbl;
4473       l_hd_Sales_Credit_Tbl     := P_hd_Sales_Credit_Tbl;
4474       l_hd_Quote_Party_Tbl      := P_hd_Quote_Party_Tbl;
4475       l_Qte_Line_tbl            := p_Qte_Line_tbl;
4476       l_hd_Payment_Tbl          := p_hd_Payment_Tbl;
4477       l_Price_Adj_Tbl           := P_Price_Adjustment_Tbl;
4478       l_Line_Rltship_Tbl        := p_Line_Rltship_Tbl;
4479    	 l_Price_Adj_rltship_Tbl   := p_Price_Adj_Rltship_Tbl;
4480       l_ln_Price_Attributes_Tbl := P_Ln_Price_Attributes_Tbl;
4481   	 l_Price_Adj_Attr_Tbl      := p_Price_Adj_Attr_Tbl;
4482       l_ln_Payment_Tbl          := P_Ln_Payment_Tbl;
4483       l_ln_shipment_tbl         := P_Ln_Shipment_Tbl;
4484       l_ln_Freight_Charge_Tbl   := P_Ln_Freight_Charge_Tbl;
4485       l_ln_Tax_Detail_Tbl       := P_Ln_Tax_Detail_Tbl;
4486       l_ln_Sales_Credit_Tbl     := P_ln_Sales_Credit_Tbl;
4487       l_ln_Quote_Party_Tbl      := P_ln_Quote_Party_Tbl;
4488     	 l_Line_Attribs_Ext_Tbl    := P_Line_Attr_Ext_Tbl ;
4489       l_Qte_Line_Dtl_tbl        := p_Qte_Line_Dtl_tbl;
4490       l_control_rec             := p_control_rec;
4491       l_validation_level        := P_Validation_Level;
4492 	 l_Qte_Access_Tbl          := P_Qte_Access_Tbl;
4493 	 l_Template_Tbl            := p_Template_Tbl;
4494 	 l_Related_Obj_Tbl         := p_Related_Obj_Tbl;
4495 
4496       --  call user hooks
4497       -- customer pre processing
4498 
4499       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C')) THEN
4500 
4501           ASO_QUOTE_CUHK.update_quote_PRE(
4502                             P_Validation_Level 	    => l_validation_level ,
4503                             P_Control_Rec		    => l_control_rec ,
4504                             P_Qte_Header_Rec	         => l_qte_header_rec  ,
4505                             P_hd_Price_Attributes_Tbl => l_hd_Price_Attributes_Tbl  ,
4506                             P_hd_Payment_Tbl		    => l_hd_Payment_Tbl ,
4507                             P_hd_Shipment_tbl         => l_hd_shipment_tbl,
4508                             P_hd_Freight_Charge_Tbl   => l_hd_Freight_Charge_Tbl,
4509                             P_hd_Tax_Detail_Tbl	    => l_hd_Tax_Detail_Tbl ,
4510                             P_hd_Attr_Ext_Tbl         => l_hd_Attribs_Ext_Tbl,
4511                             P_hd_Sales_Credit_Tbl     => l_hd_Sales_Credit_Tbl ,
4512                             P_hd_Quote_Party_Tbl      => l_hd_Quote_Party_Tbl   ,
4513                             P_Qte_Line_Tbl		    => l_Qte_Line_Tbl,
4514                             P_Qte_Line_Dtl_Tbl        => l_Qte_Line_Dtl_tbl,
4515                             P_Line_Attr_Ext_Tbl       => l_Line_Attribs_Ext_Tbl,
4516                             P_line_rltship_tbl        => l_Line_Rltship_Tbl,
4517                             P_Price_Adjustment_Tbl    => l_Price_Adj_Tbl ,
4518                             P_Price_Adj_Attr_Tbl      => l_Price_Adj_Attr_Tbl    ,
4519                             P_Price_Adj_Rltship_Tbl   => l_Price_Adj_rltship_Tbl,
4520                             P_Ln_Price_Attributes_Tbl => l_ln_Price_Attributes_Tbl  ,
4521                             P_Ln_Payment_Tbl          => l_ln_Payment_Tbl ,
4522                             P_Ln_Shipment_Tbl         => l_ln_shipment_tbl ,
4523                             P_Ln_Freight_Charge_Tbl   => l_ln_Freight_Charge_Tbl,
4524                             P_Ln_Tax_Detail_Tbl       => l_ln_Tax_Detail_Tbl,
4525                             P_ln_Sales_Credit_Tbl     => l_ln_Sales_Credit_Tbl    ,
4526                             P_ln_Quote_Party_Tbl      => l_ln_Quote_Party_Tbl,
4527 					   /*
4528                             P_Qte_Access_Tbl          => l_Qte_Access_Tbl,
4529                             P_Template_Tbl            => l_Template_Tbl,
4530                             p_Related_Obj_Tbl         => l_Related_Obj_Tbl,
4531 					   */
4532                             X_Return_Status           => X_Return_Status,
4533                             X_Msg_Count               => X_Msg_Count,
4534                             X_Msg_Data                => X_Msg_Data
4535                             );
4536 
4537           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4538 
4539               IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4540 		        FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
4541 		        FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.update_Quote_PRE', FALSE);
4542 		        FND_MSG_PUB.ADD;
4543               END IF;
4544 
4545               IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4546                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4547               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4548                    RAISE FND_API.G_EXC_ERROR;
4549               END IF;
4550 
4551           END IF;
4552 
4553       END IF; -- customer hook
4554 
4555       -- vertical hook
4556       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'V')) THEN
4557 
4558            ASO_QUOTE_VUHK.update_quote_PRE(
4559                             P_Validation_Level 	    => l_validation_level ,
4560                             P_Control_Rec		    => l_control_rec ,
4561                             P_Qte_Header_Rec	         => l_qte_header_rec  ,
4562                             P_hd_Price_Attributes_Tbl => l_hd_Price_Attributes_Tbl  ,
4563                             P_hd_Payment_Tbl		    => l_hd_Payment_Tbl ,
4564                             P_hd_Shipment_tbl         => l_hd_shipment_tbl,
4565                             P_hd_Freight_Charge_Tbl   => l_hd_Freight_Charge_Tbl,
4566                             P_hd_Tax_Detail_Tbl       => l_hd_Tax_Detail_Tbl ,
4567                             P_hd_Attr_Ext_Tbl         => l_hd_Attribs_Ext_Tbl,
4568                             P_hd_Sales_Credit_Tbl     => l_hd_Sales_Credit_Tbl ,
4569                             P_hd_Quote_Party_Tbl      => l_hd_Quote_Party_Tbl   ,
4570                             P_Qte_Line_Tbl		    => l_Qte_Line_Tbl,
4571                             P_Qte_Line_Dtl_Tbl        => l_Qte_Line_Dtl_tbl,
4572                             P_Line_Attr_Ext_Tbl       => l_Line_Attribs_Ext_Tbl,
4573                             P_line_rltship_tbl        => l_Line_Rltship_Tbl,
4574                             P_Price_Adjustment_Tbl    => l_Price_Adj_Tbl ,
4575                             P_Price_Adj_Attr_Tbl	    => l_Price_Adj_Attr_Tbl    ,
4576                             P_Price_Adj_Rltship_Tbl   => l_Price_Adj_rltship_Tbl,
4577                             P_Ln_Price_Attributes_Tbl => l_ln_Price_Attributes_Tbl  ,
4578                             P_Ln_Payment_Tbl	         => l_ln_Payment_Tbl ,
4579                             P_Ln_Shipment_Tbl         => l_ln_shipment_tbl ,
4580                             P_Ln_Freight_Charge_Tbl   => l_ln_Freight_Charge_Tbl,
4581                             P_Ln_Tax_Detail_Tbl       => l_ln_Tax_Detail_Tbl,
4582                             P_ln_Sales_Credit_Tbl     => l_ln_Sales_Credit_Tbl    ,
4583                             P_ln_Quote_Party_Tbl      => l_ln_Quote_Party_Tbl,
4584 					   /*
4585                             P_Qte_Access_Tbl          => l_Qte_Access_Tbl,
4586                             P_Template_Tbl            => l_Template_Tbl,
4587 					   p_Related_Obj_Tbl         => l_Related_Obj_Tbl,
4588 					   */
4589                             X_Return_Status           => X_Return_Status,
4590                             X_Msg_Count               => X_Msg_Count,
4591                             X_Msg_Data                => X_Msg_Data
4592                             );
4593 
4594            IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4595 
4596                IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4597 		         FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
4598 		         FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Update_Quote_PRE', FALSE);
4599 		         FND_MSG_PUB.ADD;
4600                END IF;
4601 
4602                IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4603                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4604                ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4605                     RAISE FND_API.G_EXC_ERROR;
4606                END IF;
4607 
4608            END IF;
4609 
4610       END IF;
4611 
4612       -- Convert the values to ids
4613 
4614       Convert_Header_Values_To_Ids ( p_qte_header_rec   =>  l_qte_header_rec,
4615                                      x_qte_header_rec   =>  l_qte_header_rec_out );
4616 
4617 	 l_qte_header_rec := l_qte_header_rec_out;
4618 
4619       FOR i IN 1..p_qte_line_tbl.count LOOP
4620 
4621           Convert_Line_Values_To_Ids ( p_qte_line_rec	=> l_qte_line_tbl(i),
4622 	                                  x_qte_line_rec	=> l_qte_line_rec_out);
4623 
4624 	     l_qte_line_tbl(i) := l_qte_line_rec_out;
4625 
4626       END LOOP;
4627 
4628       FOR i IN 1..p_hd_shipment_tbl.count LOOP
4629 
4630           Convert_Shipment_Values_To_Ids ( p_shipment_rec	=> l_hd_shipment_tbl(i),
4631 	                                      x_shipment_rec	=> l_hd_shipment_rec_out);
4632 
4633 	     l_hd_shipment_tbl(i) := l_hd_shipment_rec_out;
4634 
4635       END LOOP;
4636 
4637       FOR i IN 1..p_ln_shipment_tbl.count LOOP
4638 
4639          Convert_Shipment_Values_To_Ids ( p_shipment_rec	=> l_ln_shipment_tbl(i),
4640 	                                    x_shipment_rec	=> l_ln_shipment_rec_out);
4641 
4642 	    l_ln_shipment_tbl(i) := l_ln_shipment_rec_out;
4643 
4644       END LOOP;
4645 
4646       ASO_QUOTE_HEADERS_PVT.update_quote(
4647 	                         P_Api_Version_Number	 => 1.0,
4648 	                         P_Init_Msg_List		 => FND_API.G_FALSE,
4649 	                         P_Commit			      => FND_API.G_FALSE,
4650 	                         p_validation_level		 => p_validation_level,
4651 	                         P_Control_Rec		      => l_control_rec,
4652 	                         P_qte_header_rec		 => l_qte_header_rec,
4653 	                         P_Hd_Price_Attributes_Tbl => l_hd_Price_Attributes_Tbl,
4654 	                         P_Hd_Payment_Tbl		 => l_hd_Payment_Tbl,
4655 	                         P_Hd_Shipment_tbl		 => l_Hd_Shipment_tbl,
4656 	                         P_Hd_Freight_Charge_Tbl	 => l_hd_Freight_Charge_Tbl,
4657 	                         P_Hd_Tax_Detail_Tbl		 => l_hd_Tax_Detail_Tbl ,
4658                               P_hd_Attr_Ext_Tbl         => l_hd_Attribs_Ext_Tbl,
4659                               P_hd_Sales_Credit_Tbl     => l_hd_Sales_Credit_Tbl ,
4660                               P_hd_Quote_Party_Tbl      => l_hd_Quote_Party_Tbl,
4661 	                         P_Qte_Line_Tbl		      => l_Qte_Line_Tbl,
4662 	                         P_Qte_Line_Dtl_Tbl		 => l_Qte_Line_Dtl_tbl,
4663 	                         P_Line_Attr_Ext_Tbl		 => l_Line_Attribs_Ext_Tbl,
4664 	                         P_Line_rltship_tbl		 => l_Line_Rltship_Tbl,
4665 	                         P_Price_Adjustment_Tbl	 => l_Price_Adj_Tbl,
4666 	                         P_Price_Adj_Attr_Tbl	 => l_Price_Adj_Attr_Tbl,
4667 	                         P_Price_Adj_Rltship_Tbl	 => l_Price_Adj_rltship_Tbl ,
4668 	                         P_Ln_Price_Attributes_Tbl => l_ln_Price_Attributes_Tbl ,
4669 	                         P_Ln_Payment_Tbl		 => l_Ln_Payment_Tbl,
4670 	                         P_Ln_Shipment_Tbl		 => l_Ln_Shipment_Tbl,
4671 	                         P_Ln_Freight_Charge_Tbl	 => l_Ln_Freight_Charge_Tbl,
4672 	                         P_Ln_Tax_Detail_Tbl		 => l_Ln_Tax_Detail_Tbl,
4673                               P_ln_Sales_Credit_Tbl     => l_ln_Sales_Credit_Tbl ,
4674                               P_ln_Quote_Party_Tbl      => l_ln_Quote_Party_Tbl,
4675                               P_Qte_Access_Tbl          => l_Qte_Access_Tbl,
4676                               P_Template_Tbl            => l_Template_Tbl,
4677 					     p_Related_Obj_Tbl         => l_Related_Obj_Tbl,
4678 	                         x_qte_header_rec		 => x_qte_header_rec,
4679 	                         X_Hd_Price_Attributes_Tbl => x_Hd_Price_Attributes_Tbl,
4680 	                         X_Hd_Payment_Tbl		 => x_Hd_Payment_Tbl,
4681 	                         X_hd_Shipment_Tbl		 => X_hd_Shipment_Tbl,
4682 	                         X_Hd_Freight_Charge_Tbl	 => x_Hd_Freight_Charge_Tbl,
4683 	                         X_Hd_Tax_Detail_Tbl		 => x_Hd_Tax_Detail_Tbl,
4684                               X_hd_Attr_Ext_Tbl         => X_hd_Attr_Ext_Tbl,
4685                               X_hd_Sales_Credit_Tbl     => X_hd_Sales_Credit_Tbl,
4686                               X_hd_Quote_Party_Tbl      => X_hd_Quote_Party_Tbl,
4687 	                         X_Qte_Line_Tbl		      => x_Qte_Line_Tbl,
4688 	                         X_Qte_Line_Dtl_Tbl		 => x_Qte_Line_Dtl_Tbl,
4689 	                         x_Line_Attr_Ext_Tbl		 => x_Line_Attr_Ext_Tbl,
4690 	                         X_Line_rltship_tbl		 => x_Line_Rltship_Tbl,
4691 	                         X_Price_Adjustment_Tbl	 => x_Price_Adjustment_Tbl,
4692 	                         x_Price_Adj_Attr_Tbl	 => x_Price_Adj_Attr_Tbl,
4693 	                         X_Price_Adj_Rltship_Tbl	 => x_Price_Adj_Rltship_Tbl,
4694 	                         X_Ln_Price_Attributes_Tbl => x_Ln_Price_Attributes_Tbl,
4695 	                         X_Ln_Payment_Tbl		 => x_Ln_Payment_Tbl,
4696 	                         X_Ln_Shipment_Tbl		 => x_Ln_Shipment_Tbl,
4697 	                         X_Ln_Freight_Charge_Tbl	 => x_Ln_Freight_Charge_Tbl,
4698 	                         X_Ln_Tax_Detail_Tbl		 => x_Ln_Tax_Detail_Tbl,
4699                               X_Ln_Sales_Credit_Tbl     => X_Ln_Sales_Credit_Tbl,
4700                               X_Ln_Quote_Party_Tbl      => X_Ln_Quote_Party_Tbl ,
4701                               X_Qte_Access_Tbl          => X_Qte_Access_Tbl,
4702                               X_Template_Tbl            => X_Template_Tbl,
4703 					     X_Related_Obj_Tbl         => X_Related_Obj_Tbl,
4704 	                         X_Return_Status           => x_return_status,
4705 	                         X_Msg_Count               => x_msg_count,
4706 	                         X_Msg_Data                => x_msg_data);
4707 
4708       IF aso_debug_pub.g_debug_flag = 'Y' THEN
4709           aso_debug_pub.add('update_quote_pub: after update quote, starting user hooks (1)'||x_return_status,1, 'N');
4710 	 END IF;
4711 
4712       -- Check return status from the above procedure call
4713       IF x_return_status = FND_API.G_RET_STS_ERROR then
4714           raise FND_API.G_EXC_ERROR;
4715       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
4716           raise FND_API.G_EXC_UNEXPECTED_ERROR;
4717       END IF;
4718 
4719       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C')) THEN
4720 
4721            ASO_QUOTE_CUHK.Update_quote_POST(
4722                             P_Validation_Level        => l_validation_level ,
4723                             P_Control_Rec             => l_control_rec ,
4724                             P_Qte_Header_Rec	         => x_qte_header_rec  ,
4725                             P_hd_Price_Attributes_Tbl => x_hd_Price_Attributes_Tbl  ,
4726                             P_hd_Payment_Tbl	         => x_hd_Payment_Tbl ,
4727                             P_hd_Shipment_tbl         => x_hd_shipment_tbl,
4728                             P_hd_Freight_Charge_Tbl   => x_hd_Freight_Charge_Tbl,
4729                             P_hd_Tax_Detail_Tbl	    => x_hd_Tax_Detail_Tbl ,
4730                             P_hd_Attr_Ext_Tbl	    => x_hd_Attr_Ext_Tbl,
4731                             P_hd_Sales_Credit_Tbl     => x_hd_Sales_Credit_Tbl ,
4732                             P_hd_Quote_Party_Tbl      => x_hd_Quote_Party_Tbl   ,
4733                             P_Qte_Line_Tbl		    => x_Qte_Line_Tbl,
4734                             P_Qte_Line_Dtl_Tbl	    => x_Qte_Line_Dtl_tbl,
4735                             P_Line_Attr_Ext_Tbl	    => x_Line_Attr_Ext_Tbl,
4736                             P_line_rltship_tbl	    => x_Line_Rltship_Tbl,
4737                             P_Price_Adjustment_Tbl    => x_Price_Adjustment_Tbl ,
4738                             P_Price_Adj_Attr_Tbl	    => x_Price_Adj_Attr_Tbl    ,
4739                             P_Price_Adj_Rltship_Tbl   => x_Price_Adj_rltship_Tbl,
4740                             P_Ln_Price_Attributes_Tbl => x_ln_Price_Attributes_Tbl  ,
4741                             P_Ln_Payment_Tbl	         => x_ln_Payment_Tbl ,
4742                             P_Ln_Shipment_Tbl         => x_ln_shipment_tbl ,
4743                             P_Ln_Freight_Charge_Tbl   => x_ln_Freight_Charge_Tbl,
4744                             P_Ln_Tax_Detail_Tbl       => x_ln_Tax_Detail_Tbl,
4745                             P_ln_Sales_Credit_Tbl     => x_ln_Sales_Credit_Tbl    ,
4746                             P_ln_Quote_Party_Tbl      => x_ln_Quote_Party_Tbl,
4747 					   /*
4748                             P_Qte_Access_Tbl          => x_Qte_Access_Tbl,
4749                             P_Template_Tbl            => x_Template_Tbl,
4750 					   P_Related_Obj_Tbl         => x_Related_Obj_Tbl,
4751 					   */
4752                             X_Return_Status           => X_Return_Status,
4753                             X_Msg_Count               => X_Msg_Count,
4754                             X_Msg_Data                => X_Msg_Data
4755                             );
4756 
4757            IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4758 
4759                IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4760 		         FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
4761 		         FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_CUHK.Update_Quote_POST', FALSE);
4762 		         FND_MSG_PUB.ADD;
4763                END IF;
4764 
4765                IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4766                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4767                ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4768                     RAISE FND_API.G_EXC_ERROR;
4769                END IF;
4770 
4771            END IF;
4772 
4773       END IF; -- customer hook
4774 
4775       IF aso_debug_pub.g_debug_flag = 'Y' THEN
4776 	     aso_debug_pub.add('aso_quote_vuhk: before if update quote post (1)'||x_return_status,1, 'N');
4777 	 END IF;
4778 
4779       IF (JTF_USR_HKS.ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'V')) THEN
4780 
4781 	     IF aso_debug_pub.g_debug_flag = 'Y' THEN
4782               aso_debug_pub.add('aso_quote_vuhk: inside if update quote post (1)'||x_return_status,1, 'N');
4783 	     END IF;
4784 
4785           ASO_QUOTE_VUHK.Update_quote_POST(
4786                            P_Validation_Level        => l_validation_level ,
4787                            P_Control_Rec             => l_control_rec ,
4788                            P_Qte_Header_Rec	        => x_qte_header_rec  ,
4789                            P_hd_Price_Attributes_Tbl => x_hd_Price_Attributes_Tbl  ,
4790                            P_hd_Payment_Tbl	        => x_hd_Payment_Tbl ,
4791                            P_hd_Shipment_tbl         => x_hd_shipment_tbl,
4792                            P_hd_Freight_Charge_Tbl   => x_hd_Freight_Charge_Tbl,
4793                            P_hd_Tax_Detail_Tbl       => x_hd_Tax_Detail_Tbl ,
4794                            P_hd_Attr_Ext_Tbl	        => x_hd_Attr_Ext_Tbl,
4795                            P_hd_Sales_Credit_Tbl     => x_hd_Sales_Credit_Tbl ,
4796                            P_hd_Quote_Party_Tbl      => x_hd_Quote_Party_Tbl   ,
4797                            P_Qte_Line_Tbl            => x_Qte_Line_Tbl,
4798                            P_Qte_Line_Dtl_Tbl        => x_Qte_Line_Dtl_tbl,
4799                            P_Line_Attr_Ext_Tbl       => x_Line_Attr_Ext_Tbl,
4800                            P_line_rltship_tbl        => x_Line_Rltship_Tbl,
4801                            P_Price_Adjustment_Tbl	   => x_Price_Adjustment_Tbl ,
4802                            P_Price_Adj_Attr_Tbl	   => x_Price_Adj_Attr_Tbl    ,
4803                            P_Price_Adj_Rltship_Tbl   => x_Price_Adj_rltship_Tbl,
4804                            P_Ln_Price_Attributes_Tbl => x_ln_Price_Attributes_Tbl  ,
4805                            P_Ln_Payment_Tbl		   => x_ln_Payment_Tbl ,
4806                            P_Ln_Shipment_Tbl		   => x_ln_shipment_tbl ,
4807                            P_Ln_Freight_Charge_Tbl   => x_ln_Freight_Charge_Tbl,
4808                            P_Ln_Tax_Detail_Tbl       => x_ln_Tax_Detail_Tbl,
4809                            P_ln_Sales_Credit_Tbl     => x_ln_Sales_Credit_Tbl    ,
4810                            P_ln_Quote_Party_Tbl      => x_ln_Quote_Party_Tbl,
4811 					  /*
4812                            P_Qte_Access_Tbl          => x_Qte_Access_Tbl,
4813                            P_Template_Tbl            => x_Template_Tbl,
4814 					  P_Related_Obj_Tbl         => x_Related_Obj_Tbl,
4815 					  */
4816                            X_Return_Status           => X_Return_Status,
4817                            X_Msg_Count               => X_Msg_Count,
4818                            X_Msg_Data                => X_Msg_Data
4819                            );
4820 
4821           IF aso_debug_pub.g_debug_flag = 'Y' THEN
4822               aso_debug_pub.add('update_quote_pub: after vertical hooks'||x_return_status,1, 'N');
4823           END IF;
4824 
4825           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4826 
4827               IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4828 		        FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
4829 		        FND_MESSAGE.Set_Token('API', 'ASO_QUOTE_VUHK.Update_Quote_POST', FALSE);
4830 		        FND_MSG_PUB.ADD;
4831               END IF;
4832 
4833               IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4834                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4835               ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4836                    RAISE FND_API.G_EXC_ERROR;
4837               END IF;
4838 
4839           END IF;
4840 
4841       END IF; -- vertical hook
4842 
4843       --
4844       -- End of API body
4845       --
4846 
4847       -- Standard check for p_commit
4848       IF FND_API.to_Boolean( p_commit ) THEN
4849           COMMIT WORK;
4850       END IF;
4851 
4852       -- Standard call to get message count and if count is 1, get message info.
4853       FND_MSG_PUB.Count_And_Get (  p_count          =>   x_msg_count,
4854                                    p_data           =>   x_msg_data );
4855 
4856 
4857       EXCEPTION
4858 
4859           WHEN FND_API.G_EXC_ERROR THEN
4860               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4861                    P_API_NAME => L_API_NAME
4862                   ,P_PKG_NAME => G_PKG_NAME
4863                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
4864                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
4865                   ,P_SQLCODE => SQLCODE
4866                   ,P_SQLERRM => SQLERRM
4867                   ,X_MSG_COUNT => X_MSG_COUNT
4868                   ,X_MSG_DATA => X_MSG_DATA
4869                   ,X_RETURN_STATUS => X_RETURN_STATUS);
4870 
4871           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4872               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4873                    P_API_NAME => L_API_NAME
4874                   ,P_PKG_NAME => G_PKG_NAME
4875                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
4876                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
4877                   ,P_SQLCODE => SQLCODE
4878                   ,P_SQLERRM => SQLERRM
4879                   ,X_MSG_COUNT => X_MSG_COUNT
4880                   ,X_MSG_DATA => X_MSG_DATA
4881                   ,X_RETURN_STATUS => X_RETURN_STATUS);
4882 
4883           WHEN OTHERS THEN
4884               ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
4885                    P_API_NAME => L_API_NAME
4886                   ,P_PKG_NAME => G_PKG_NAME
4887                   ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
4888                   ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
4889                   ,P_SQLCODE => SQLCODE
4890                   ,P_SQLERRM => SQLERRM
4891                   ,X_MSG_COUNT => X_MSG_COUNT
4892                   ,X_MSG_DATA => X_MSG_DATA
4893                   ,X_RETURN_STATUS => X_RETURN_STATUS);
4894 END;
4895 
4896 
4897 End ASO_QUOTE_PUB;