[Home] [Help]
PACKAGE BODY: APPS.ASO_COPY_QUOTE_PVT
Source
1 PACKAGE BODY ASO_COPY_QUOTE_PVT AS
2 /* $Header: asovcpyb.pls 120.32.12020000.4 2013/06/04 05:35:27 rassharm ship $ */
3 -- Start of Comments
4 -- Package name : ASO_COPY_QUOTE_PVT
5 -- Purpose :
6 -- History :
7 -- 12-03-2002 hyang - bug 2692785, checking running concurrent pricing request.
8 -- 10-13-2003 hyang - new okc integration.
9 -- 06/21/04 skulkarn - fixed bug 3704719
10 -- 08/05/04 skulkarn - fixed bug3805575
11 -- 12/02/04 skulkarn - fixed bug4036748
12 -- NOTE :
13 -- End of Comments
14
15
16 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
17 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
18 G_PKG_NAME CONSTANT VARCHAR2 ( 30 ) := 'ASO_COPY_QUOTE_PVT';
19 G_FILE_NAME CONSTANT VARCHAR2 ( 12 ) := 'asovcpyb.pls';
20
21
22 PROCEDURE Copy_Quote (
23 P_Api_Version_Number IN NUMBER
24 , P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE
25 , P_Commit IN VARCHAR2 := FND_API.G_FALSE
26 , P_Copy_Quote_Header_Rec IN ASO_COPY_QUOTE_PUB.Copy_Quote_Header_Rec_Type
27 := ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Header_Rec
28 , P_Copy_Quote_Control_Rec IN ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type
29 := ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Control_Rec
30 /* Code change for Quoting Usability Sun ER Start */
31 , P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec
32 , P_Hd_Shipment_Rec IN ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Shipment_Rec
33 , P_hd_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL
34 , P_hd_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl
35 /* Code change for Quoting Usability Sun ER End */
36 , X_Qte_Header_Id OUT NOCOPY /* file.sql.39 change */ NUMBER
37 , X_Qte_Number OUT NOCOPY /* file.sql.39 change */ NUMBER
38 , X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 , X_Msg_Count OUT NOCOPY /* file.sql.39 change */ VARCHAR2
40 , X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 ) IS
42
43 CURSOR C_Validate_Quote (
44 x_qte_header_id NUMBER
45 ) IS
46 SELECT 'X'
47 FROM ASO_QUOTE_HEADERS_ALL
48 WHERE quote_header_id = x_qte_header_id;
49
50 CURSOR C_Qte_Number IS
51 SELECT ASO_QUOTE_NUMBER_S.NEXTVAL
52 FROM sys.DUAL;
53
54 CURSOR C_Qte_Status_Id (
55 c_status_code VARCHAR2
56 ) IS
57 SELECT quote_status_id
58 FROM ASO_QUOTE_STATUSES_B
59 WHERE status_code = c_status_code;
60
61 CURSOR C_Qte_Number_exists (
62 X_qte_number NUMBER
63 ) IS
64 SELECT quote_number
65 FROM ASO_QUOTE_HEADERS_ALL
66 WHERE quote_number = X_qte_number;
67
68 CURSOR C_Curr_Qte_Info (
69 qte_numb NUMBER
70 ) IS
71 SELECT quote_status_id, quote_header_id, quote_version
72 FROM ASO_QUOTE_HEADERS_ALL
73 WHERE quote_number = qte_numb
74 AND max_version_flag = 'Y';
75
76 CURSOR C_Check_Qte_Status (
77 qte_status_id NUMBER
78 ) IS
79 SELECT 'X'
80 FROM ASO_QUOTE_STATUSES_B
81 WHERE quote_status_id = qte_status_id
82 AND status_code NOT IN ('ORDER SUBMITTED'
83 , 'APPROVAL PENDING'
84 , 'FINANCING PENDING'
85 );
86
87 CURSOR C_Get_Qte_Num (
88 qte_hdr_id NUMBER
89 ) IS
90 SELECT Quote_Number
91 FROM ASO_QUOTE_HEADERS_ALL
92 WHERE Quote_Header_Id = qte_hdr_id;
93
94 l_api_name CONSTANT VARCHAR2 ( 30 ) := 'Copy_quote';
95 l_api_version_number CONSTANT NUMBER := 1.0;
96 l_return_status VARCHAR2 ( 1 );
97 l_val VARCHAR2 ( 1 );
98 l_enabled_flag VARCHAR2 ( 1 );
99 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
100 l_HEADER_RELATIONSHIP_ID NUMBER;
101 l_qte_num NUMBER;
102 l_qte_header_id NUMBER;
103 l_qte_status_id NUMBER;
104 l_dummy VARCHAR2 ( 2 );
105 lx_Price_Index_Link_Tbl ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type;
106 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
107 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
108 X_New_Qte_Line_Id NUMBER;
109 -- hyang: for bug 2692785
110 lx_status VARCHAR2(1);
111 l_copy_line_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
112
113 -- ER 3177722
114 lx_config_tbl ASO_QUOTE_PUB.Config_Vaild_Tbl_Type;
115 l_copy_config_profile varchar2(1):=nvl(fnd_profile.value('ASO_COPY_CONFIG_EFF_DATE'),'Y');
116
117 -- vtariker Price/Tax enh
118 CURSOR C_Get_Last_Upd_Date (
119 qte_hdr_id NUMBER
120 ) IS
121 SELECT last_update_date
122 FROM aso_quote_headers_all
123 WHERE quote_header_id = qte_hdr_id;
124
125 CURSOR C_Get_RSA ( l_qte_hdr_id NUMBER) IS
126 Select assistance_requested
127 FROM aso_quote_headers_all
128 WHERE quote_header_id = l_qte_hdr_id;
129
130
131 CURSOR get_note_id ( l_qte_hdr_id NUMBER) IS
132 Select jtf_note_id
133 FROM jtf_notes_vl
134 WHERE note_type = 'QOT_SALES_ASSIST'
135 AND source_object_id = l_qte_hdr_id;
136
137 /* Start : Code change done for Bug 12674665 */
138
139 CURSOR C_Agreement_PL(p_agreement_id Number) Is
140 Select pri.list_header_id, pri.currency_code
141 from OE_AGREEMENTS_B agr, qp_list_headers_vl pri
142 where agr.agreement_id = p_agreement_id
143 and pri.list_header_id = agr.price_list_id
144 and pri.list_type_code in ('PRL','AGR')
145 and pri.active_flag = 'Y'
146 and trunc(nvl(pri.start_date_active, sysdate)) <= trunc(sysdate)
147 and trunc(nvl(pri.end_date_active, sysdate)) >= trunc(sysdate);
148
149 CURSOR C_Customer_PL(p_cust_acct_id Number) Is
150 Select pri.list_header_id , pri.currency_code
151 from HZ_CUST_ACCOUNTS cust, qp_list_headers_vl pri
152 where cust.cust_account_id = p_cust_acct_id
153 and cust.price_list_id = pri.list_header_id
154 and pri.list_type_code in ('PRL','AGR')
155 and pri.active_flag = 'Y'
156 and trunc(nvl(pri.start_date_active, sysdate)) <= trunc(sysdate)
157 and trunc(nvl(pri.end_date_active, sysdate)) >= trunc(sysdate);
158
159 CURSOR C_Order_Type_PL(p_order_type_id Number) Is
160 Select pri.list_header_id, pri.currency_code
161 from OE_TRANSACTION_TYPES_ALL ord, qp_list_headers_vl pri
162 where ord.TRANSACTION_TYPE_ID = p_order_type_id
163 and ord.price_list_id = pri.list_header_id
164 and pri.list_type_code in ('PRL','AGR')
165 and pri.active_flag = 'Y'
166 and trunc(nvl(pri.start_date_active, sysdate)) <= trunc(sysdate)
167 and trunc(nvl(pri.end_date_active, sysdate)) >= trunc(sysdate);
168
169 /* End : Code change done for Bug 12674665 */
170
171 l_upd_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_header_rec;
172 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
173 x_qte_header_rec aso_quote_pub.qte_header_rec_type;
174 x_qte_line_tbl aso_quote_pub.qte_line_tbl_type;
175 x_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type;
176 x_hd_price_attributes_tbl aso_quote_pub.price_attributes_tbl_type;
177 x_hd_payment_tbl aso_quote_pub.payment_tbl_type;
178 x_hd_shipment_tbl aso_quote_pub.shipment_tbl_type;
179 x_hd_freight_charge_tbl aso_quote_pub.freight_charge_tbl_type;
180 x_hd_tax_detail_tbl aso_quote_pub.tax_detail_tbl_type;
181 x_line_attr_ext_tbl aso_quote_pub.line_attribs_ext_tbl_type;
182 x_line_rltship_tbl aso_quote_pub.line_rltship_tbl_type;
183 x_price_adjustment_tbl aso_quote_pub.price_adj_tbl_type;
184 x_price_adj_attr_tbl aso_quote_pub.price_adj_attr_tbl_type;
185 x_price_adj_rltship_tbl aso_quote_pub.price_adj_rltship_tbl_type;
186 x_ln_price_attributes_tbl aso_quote_pub.price_attributes_tbl_type;
187 x_ln_payment_tbl aso_quote_pub.payment_tbl_type;
188 x_ln_shipment_tbl aso_quote_pub.shipment_tbl_type;
189 x_ln_freight_charge_tbl aso_quote_pub.freight_charge_tbl_type;
190 x_ln_tax_detail_tbl aso_quote_pub.tax_detail_tbl_type;
191 -- vtariker Price/Tax enh
192
193 -- hyang new okc
194 l_terms_template_name VARCHAR2(240);
195 l_target_doc_type VARCHAR2(30);
196 l_target_doc_id NUMBER;
197 -- end of hyang new okc
198 lx_jtf_note_context_id NUMBER;
199 l_note_id NUMBER;
200 l_rsa varchar2(1);
201 l_copy_for_amendment varchar2(1);
202 l_copy_abstract_yn varchar2(1);
203 l_has_terms varchar2(1):= 'N';
204
205 /* Code change for Quoting Usability Sun ER Start */
206 CURSOR C_AGREEMENT(P_AGREEMENT_ID IN NUMBER,P_INVOICE_TO_CUSTOMER_ID IN NUMBER) IS
207 SELECT 'x'
208 FROM OE_AGREEMENTS_VL
209 WHERE AGREEMENT_ID = P_AGREEMENT_ID
210 AND INVOICE_TO_CUSTOMER_ID = P_INVOICE_TO_CUSTOMER_ID;
211
212 l_var varchar2(1);
213 l_sales_team_prof VARCHAR2(30) := FND_PROFILE.value('ASO_AUTO_TEAM_ASSIGN');
214 /* Code change for Quoting Usability Sun ER End */
215
216 BEGIN
217 -- Standard Start of API savepoint
218 SAVEPOINT COPY_QUOTE_PVT;
219
220 -- Standard call to check for call compatibility.
221 IF NOT FND_API.Compatible_API_Call (
222 l_api_version_number
223 , p_api_version_number
224 , l_api_name
225 , G_PKG_NAME
226 ) THEN
227 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
228 END IF;
229
230 -- Initialize message list if p_init_msg_list is set to TRUE.
231 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
232 FND_MSG_PUB.initialize;
233 END IF;
234
235 -- Debug Message
236 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW ) THEN
237 FND_MESSAGE.Set_Name ('ASO' , 'Copy Quote API: Start' );
238 FND_MSG_PUB.ADD;
239 END IF;
240
241 -- Initialize API return status to success
242 l_return_status := FND_API.G_RET_STS_SUCCESS;
243
244 --
245 -- API body
246 --
247 -- ******************************************************************
248 -- Validate Environment
249 -- ******************************************************************
250 IF FND_GLOBAL.User_Id IS NULL THEN
251 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
252 FND_MESSAGE.Set_Name ('ASO' , 'UT_CANNOT_GET_PROFILE_VALUE' );
253 FND_MESSAGE.Set_Token ('PROFILE' , 'USER_ID', FALSE );
254 FND_MSG_PUB.ADD;
255 END IF;
256 RAISE FND_API.G_EXC_ERROR;
257 END IF;
258
259 -- ******************************************************************
260
261
262
263 OPEN C_Validate_Quote ( P_Copy_Quote_Header_Rec.Quote_Header_Id );
264 FETCH C_Validate_Quote INTO l_val;
265
266 IF C_Validate_Quote%NOTFOUND THEN
267 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
268 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_INVALID_ID' );
269 FND_MESSAGE.Set_Token ('COLUMN' , 'ORIGINAL_QUOTE_ID', FALSE );
270 FND_MESSAGE.Set_Token ( 'VALUE' , TO_CHAR ( P_Copy_Quote_Header_Rec.Quote_Header_Id ) , FALSE );
271 FND_MSG_PUB.ADD;
272 END IF;
273 CLOSE C_Validate_Quote;
274 RAISE FND_API.G_EXC_ERROR;
275 END IF;
276
277 CLOSE C_Validate_Quote;
278
279 IF aso_debug_pub.g_debug_flag = 'Y' THEN
280 aso_debug_pub.ADD ( 'Copy_Quote - Begin- ASO_COPY_QUOTE_PVT.Copy_Quote ' , 1 , 'Y' );
281 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Header_Rec.Quote_Header_Id: ' || P_Copy_Quote_Header_Rec.Quote_Header_Id , 1 , 'N' );
282 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Header_Only ' || P_Copy_Quote_Control_Rec.Copy_Header_Only , 1 , 'N' );
283 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.New_Version ' || P_Copy_Quote_Control_Rec.New_Version , 1 , 'N' );
284
285 /* Code change for Quoting Usability Sun ER Start */
286 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Note: ' || P_Copy_Quote_Control_Rec.Copy_Note, 1 , 'N' );
287 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Task: ' || P_Copy_Quote_Control_Rec.Copy_Task, 1 , 'N' );
288 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Attachment: ' || P_Copy_Quote_Control_Rec.Copy_Attachment, 1 , 'N' );
289 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Shipping: ' || P_Copy_Quote_Control_Rec.Copy_Shipping, 1 , 'N' );
290 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Billing: ' || P_Copy_Quote_Control_Rec.Copy_Billing, 1 , 'N' );
291 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Payment: ' || P_Copy_Quote_Control_Rec.Copy_Payment, 1 , 'N' );
292 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_End_Customer: ' || P_Copy_Quote_Control_Rec.Copy_End_Customer , 1 , 'N' );
293 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Sales_Supplement: ' || P_Copy_Quote_Control_Rec.Copy_Sales_Supplement , 1 , 'N' );
294 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Flexfield: ' || P_Copy_Quote_Control_Rec.Copy_Flexfield , 1 , 'N' );
295 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Sales_Credit: ' || P_Copy_Quote_Control_Rec.Copy_Sales_Credit, 1 , 'N' );
296 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Contract_Terms: ' || P_Copy_Quote_Control_Rec.Copy_Contract_Terms, 1 , 'N' );
297 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Sales_Team: ' || P_Copy_Quote_Control_Rec.Copy_Sales_Team, 1 , 'N' );
298 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Line_Shipping: ' || P_Copy_Quote_Control_Rec.Copy_Line_Shipping, 1 , 'N' );
299 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Line_Billing: ' || P_Copy_Quote_Control_Rec.Copy_Line_Billing, 1 , 'N' );
300 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Line_Payment: ' || P_Copy_Quote_Control_Rec.Copy_Line_Payment, 1 , 'N' );
301 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Line_End_Customer: ' || P_Copy_Quote_Control_Rec.Copy_Line_End_Customer, 1 , 'N' );
302 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Line_Sales_Supplement: ' || P_Copy_Quote_Control_Rec.Copy_Line_Sales_Supplement, 1 , 'N' );
303 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Line_Attachment: ' || P_Copy_Quote_Control_Rec.Copy_Line_Attachment, 1 , 'N' );
304 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Line_Flexfield: ' || P_Copy_Quote_Control_Rec.Copy_Line_Flexfield, 1 , 'N' );
305 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_Line_Sales_Credit: ' || P_Copy_Quote_Control_Rec.Copy_Line_Sales_Credit, 1 , 'N' );
306 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_To_Same_Customer: ' || P_Copy_Quote_Control_Rec.Copy_To_Same_Customer, 1 , 'N' );
307 /* Code change for Quoting Usability Sun ER End */
308
309 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Header_Rec.Quote_Number ' || P_Copy_Quote_Header_Rec.Quote_Number , 1 , 'N' );
310 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Header_Rec.Resource_Id ' || P_Copy_Quote_Header_Rec.Resource_Id , 1 , 'N' );
311 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Header_Rec.Resource_Grp_Id ' || P_Copy_Quote_Header_Rec.Resource_Grp_Id , 1 , 'N' );
312 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Header_Rec.Quote_Name ' || P_Copy_Quote_Header_Rec.Quote_Name , 1 , 'N' );
313
314 END IF;
315
316 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row ( P_Copy_Quote_Header_Rec.Quote_Header_Id );
317
318 /* Code change for Quoting Usability Sun ER Start */
319 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
320
321 IF aso_debug_pub.g_debug_flag = 'Y' THEN
322 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Copy_To_Same_Customer is False ', 1 , 'N' );
323 END IF;
324
325 -- for change customer , initializing quote header attributes with defaulted input header values
326
327 l_qte_header_rec.CUST_ACCOUNT_ID := P_Qte_Header_Rec.CUST_ACCOUNT_ID;
328 l_qte_header_rec.CUST_PARTY_ID := P_Qte_Header_Rec.CUST_PARTY_ID;
329 l_qte_header_rec.PARTY_ID := P_Qte_Header_Rec.PARTY_ID;
330 l_qte_header_rec.SOLD_TO_PARTY_SITE_ID := P_Qte_Header_Rec.SOLD_TO_PARTY_SITE_ID;
331 l_qte_header_rec.PHONE_ID := P_Qte_Header_Rec.PHONE_ID;
332
333 l_qte_header_rec.INVOICE_TO_CUST_ACCOUNT_ID := P_Qte_Header_Rec.INVOICE_TO_CUST_ACCOUNT_ID ;
334 l_qte_header_rec.INVOICE_TO_CUST_PARTY_ID := P_Qte_Header_Rec.INVOICE_TO_CUST_PARTY_ID;
335 l_qte_header_rec.INVOICE_TO_PARTY_ID := P_Qte_Header_Rec.INVOICE_TO_PARTY_ID;
336 l_qte_header_rec.INVOICE_TO_PARTY_SITE_ID := P_Qte_Header_Rec.INVOICE_TO_PARTY_SITE_ID;
337 l_qte_header_rec.INVOICE_TO_PARTY_NAME := P_Qte_Header_Rec.INVOICE_TO_PARTY_NAME;
338 l_qte_header_rec.INVOICE_TO_CONTACT_FIRST_NAME := P_Qte_Header_Rec.INVOICE_TO_CONTACT_FIRST_NAME;
339 l_qte_header_rec.INVOICE_TO_CONTACT_MIDDLE_NAME := P_Qte_Header_Rec.INVOICE_TO_CONTACT_MIDDLE_NAME;
340 l_qte_header_rec.INVOICE_TO_CONTACT_LAST_NAME := P_Qte_Header_Rec.INVOICE_TO_CONTACT_LAST_NAME;
341 l_qte_header_rec.INVOICE_TO_ADDRESS1 := P_Qte_Header_Rec.INVOICE_TO_ADDRESS1;
342 l_qte_header_rec.INVOICE_TO_ADDRESS2 := P_Qte_Header_Rec.INVOICE_TO_ADDRESS2;
343 l_qte_header_rec.INVOICE_TO_ADDRESS3 := P_Qte_Header_Rec.INVOICE_TO_ADDRESS3;
344 l_qte_header_rec.INVOICE_TO_ADDRESS4 := P_Qte_Header_Rec.INVOICE_TO_ADDRESS4;
345 l_qte_header_rec.INVOICE_TO_COUNTRY_CODE := P_Qte_Header_Rec.INVOICE_TO_COUNTRY_CODE;
346 l_qte_header_rec.INVOICE_TO_COUNTRY := P_Qte_Header_Rec.INVOICE_TO_COUNTRY;
347 l_qte_header_rec.INVOICE_TO_CITY := P_Qte_Header_Rec.INVOICE_TO_CITY;
348 l_qte_header_rec.INVOICE_TO_POSTAL_CODE := P_Qte_Header_Rec.INVOICE_TO_POSTAL_CODE;
349 l_qte_header_rec.INVOICE_TO_STATE := P_Qte_Header_Rec.INVOICE_TO_STATE;
350 l_qte_header_rec.INVOICE_TO_PROVINCE := P_Qte_Header_Rec.INVOICE_TO_PROVINCE;
351 l_qte_header_rec.INVOICE_TO_COUNTY := P_Qte_Header_Rec.INVOICE_TO_COUNTY;
352
353 l_qte_header_rec.END_CUSTOMER_PARTY_ID := P_Qte_Header_Rec.END_CUSTOMER_PARTY_ID;
354 l_qte_header_rec.END_CUSTOMER_PARTY_SITE_ID := P_Qte_Header_Rec.END_CUSTOMER_PARTY_SITE_ID;
355 l_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := P_Qte_Header_Rec.END_CUSTOMER_CUST_ACCOUNT_ID;
356 l_qte_header_rec.END_CUSTOMER_CUST_PARTY_ID := P_Qte_Header_Rec.END_CUSTOMER_CUST_PARTY_ID;
357
358 l_qte_header_rec.MARKETING_SOURCE_CODE_ID := P_Qte_Header_Rec.MARKETING_SOURCE_CODE_ID;
359 l_qte_header_rec.MARKETING_SOURCE_NAME := P_Qte_Header_Rec.MARKETING_SOURCE_NAME;
360 l_qte_header_rec.MARKETING_SOURCE_CODE := P_Qte_Header_Rec.MARKETING_SOURCE_CODE;
361
362 -- l_qte_header_rec.PRICE_LIST_ID := P_Qte_Header_Rec.PRICE_LIST_ID; commented for Bug 12674665
363
364 /* commented for bug Bug 12674665
365 If (P_Qte_Header_Rec.CURRENCY_CODE Is Not Null And
366 P_Qte_Header_Rec.currency_code <> FND_API.G_MISS_CHAR) Then
367 l_qte_header_rec.CURRENCY_CODE := P_Qte_Header_Rec.CURRENCY_CODE;
368 End If; */
369
370 -- Check for Pricing Agreement
371 IF (l_qte_header_rec.contract_id IS NOT NULL AND
372 l_qte_header_rec.contract_id <> FND_API.G_MISS_NUM) THEN
373
374 IF aso_debug_pub.g_debug_flag = 'Y' THEN
375 aso_debug_pub.ADD ( 'Copy_Quote - l_qte_header_rec.contract_id : '||l_qte_header_rec.contract_id, 1 , 'N' );
376 aso_debug_pub.ADD ( 'Copy_Quote - l_qte_header_rec.INVOICE_TO_CUST_ACCOUNT_ID : '||l_qte_header_rec.INVOICE_TO_CUST_ACCOUNT_ID, 1 , 'N' );
377 END IF;
378
379 Open C_AGREEMENT(l_qte_header_rec.CONTRACT_ID,l_qte_header_rec.INVOICE_TO_CUST_ACCOUNT_ID);
380 Fetch C_AGREEMENT Into l_var;
381
382 If C_AGREEMENT%Found Then
383 l_qte_header_rec.CONTRACT_ID := P_Qte_Header_Rec.CONTRACT_ID;
384 End If;
385 Close C_AGREEMENT; -- added as per bug 11735688
386 End If;
387
388 /* Start : Code change done for Bug 12674665 */
389
390 IF aso_debug_pub.g_debug_flag = 'Y' THEN
391 aso_debug_pub.ADD ( 'Copy_Quote - Price List defaulting starting', 1 , 'N' );
392 aso_debug_pub.ADD ( 'Copy_Quote - Agreement Id : '||l_qte_header_rec.CONTRACT_ID, 1 , 'N' );
393 aso_debug_pub.ADD ( 'Copy_Quote - Customer Account Id : '||l_qte_header_rec.CUST_ACCOUNT_ID, 1 , 'N' );
394 aso_debug_pub.ADD ( 'Copy_Quote - Order Type Id : '||l_qte_header_rec.ORDER_TYPE_ID, 1 , 'N' );
395 END IF;
396
397 Open C_Agreement_PL(l_qte_header_rec.CONTRACT_ID);
398 Fetch C_Agreement_PL Into l_qte_header_rec.PRICE_LIST_ID,l_qte_header_rec.CURRENCY_CODE;
399
400 If C_Agreement_PL%FOUND then
401
402 IF aso_debug_pub.g_debug_flag = 'Y' THEN
403 aso_debug_pub.ADD ( 'Copy_Quote - Price List is defaulted based on Agreement', 1 , 'N' );
404 END IF;
405
406 ElsIf C_Agreement_PL%NOTFOUND then
407
408 Open C_Customer_PL(l_qte_header_rec.CUST_ACCOUNT_ID);
409 Fetch C_Customer_PL Into l_qte_header_rec.PRICE_LIST_ID,l_qte_header_rec.CURRENCY_CODE;
410
411 If C_Customer_PL%FOUND then
412
413 IF aso_debug_pub.g_debug_flag = 'Y' THEN
414 aso_debug_pub.ADD ( 'Copy_Quote - Price List is defaulted based on Customer Account', 1 , 'N' );
415 END IF;
416
417 ElsIf C_Customer_PL%NOTFOUND then
418
419 Open C_Order_Type_PL(l_qte_header_rec.ORDER_TYPE_ID);
420 Fetch C_Order_Type_PL Into l_qte_header_rec.PRICE_LIST_ID,l_qte_header_rec.CURRENCY_CODE;
421
422 If C_Order_Type_PL%FOUND then
423 IF aso_debug_pub.g_debug_flag = 'Y' THEN
424 aso_debug_pub.ADD ( 'Copy_Quote - Price List is defaulted based on Order Type', 1 , 'N' );
425 END IF;
426 End If;
427 Close C_Order_Type_PL;
428
429 End If;
430 Close C_Customer_PL;
431
432 End If;
433 Close C_Agreement_PL;
434
435 IF aso_debug_pub.g_debug_flag = 'Y' THEN
436 aso_debug_pub.ADD ( 'Copy_Quote - l_qte_header_rec.PRICE_LIST_ID : '||l_qte_header_rec.PRICE_LIST_ID, 1 , 'N' );
437 aso_debug_pub.ADD ( 'Copy_Quote - l_qte_header_rec.CURRENCY_CODE : '||l_qte_header_rec.CURRENCY_CODE, 1 , 'N' );
438 END IF;
439
440 /* End : Code change done for Bug 12674665 */
441
442 If (l_sales_team_prof = 'FULL' OR l_sales_team_prof = 'PARTIAL') Then
443 If (P_Qte_Header_Rec.RESOURCE_ID IS NOT NULL AND P_Qte_Header_Rec.RESOURCE_ID <> FND_API.G_MISS_NUM) Then
444
445 IF aso_debug_pub.g_debug_flag = 'Y' THEN
446 aso_debug_pub.ADD ( 'Copy_Quote - P_Qte_Header_Rec.RESOURCE_ID : '||P_Qte_Header_Rec.RESOURCE_ID, 1 , 'N' );
447 aso_debug_pub.ADD ( 'Copy_Quote - P_Qte_Header_Rec.RESOURCE_GRP_ID : '||P_Qte_Header_Rec.RESOURCE_GRP_ID, 1 , 'N' );
448 END IF;
449
450 l_qte_header_rec.RESOURCE_ID := P_Qte_Header_Rec.RESOURCE_ID;
451 l_qte_header_rec.RESOURCE_GRP_ID := P_Qte_Header_Rec.RESOURCE_GRP_ID;
452 End If;
453 End If;
454 End If;
455 /* Code change for Quoting Usability Sun ER End */
456
457 IF ( P_Copy_Quote_Control_Rec.New_Version = FND_API.G_FALSE ) THEN
458 IF ( P_Copy_Quote_Header_Rec.Quote_Number IS NULL
459 OR P_Copy_Quote_Header_Rec.Quote_Number = FND_API.G_MISS_NUM
460 ) THEN
461 IF ( NVL ( FND_PROFILE.VALUE ('ASO_AUTO_NUMBERING' ), 'Y' ) = 'Y' ) THEN
462 IF aso_debug_pub.g_debug_flag = 'Y' THEN
463 aso_debug_pub.ADD ( 'Copy_Quote - AUTO_NUMBERING is Y ' , 1 , 'N' );
464 END IF;
465
466 OPEN C_Qte_Number;
467 FETCH C_Qte_Number INTO l_qte_header_rec.quote_number;
468 CLOSE C_Qte_Number;
469
470 l_qte_header_rec.quote_version := 1;
471 l_qte_header_rec.max_version_flag := 'Y';
472 ELSE
473 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
474 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_MISSING_COLUMN' );
475 FND_MESSAGE.Set_Token ('COLUMN' , 'QUOTE_NUMBER', FALSE );
476 FND_MSG_PUB.ADD;
477 END IF;
478 RAISE FND_API.G_EXC_ERROR;
479 END IF; -- profile auto numbering
480 ELSE
481
482 OPEN C_Qte_Number_Exists ( P_Copy_Quote_Header_Rec.Quote_Number );
483 FETCH C_Qte_Number_Exists INTO l_qte_num;
484 CLOSE C_Qte_Number_Exists;
485
486 IF l_qte_num = P_Copy_Quote_Header_Rec.Quote_Number THEN
487 IF aso_debug_pub.g_debug_flag = 'Y' THEN
488 aso_debug_pub.ADD ( 'Copy_Quote - AUTO_NUMBERING is N ' , 1 , 'N' );
489 END IF;
490 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
491 FND_MESSAGE.Set_Name ('ASO' , 'ASO_CANNOT_COPY_QTE' );
492 FND_MSG_PUB.ADD;
493 END IF;
494 RAISE FND_API.G_EXC_ERROR;
495 ELSE
496 l_qte_header_rec.quote_number := P_Copy_Quote_Header_Rec.Quote_Number;
497 l_qte_header_rec.quote_version := 1;
498 l_qte_header_rec.max_version_flag := 'Y';
499 END IF;
500 END IF; -- p_qte_number is null
501
502 -- Qte_Exp_Date
503 IF P_Copy_Quote_Header_Rec.Quote_Expiration_Date = FND_API.G_MISS_DATE THEN
504 ASO_COPY_QUOTE_PVT.Get_Quote_Exp_Date (
505 X_Quote_Exp_Date => l_qte_header_rec.quote_expiration_date
506 , X_Return_Status => l_return_status
507 , X_Msg_Count => x_msg_count
508 , X_Msg_Data => x_msg_data
509 );
510 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
511 x_return_status := FND_API.G_RET_STS_ERROR;
512 RAISE FND_API.G_EXC_ERROR;
513 END IF;
514 END IF;
515
516 -- Quote_Exp_Date
517
518 ELSE -- new_version is TRUE
519
520 -- hyang: for bug 2692785
521 ASO_CONC_REQ_INT.Lock_Exists(
522 p_quote_header_id => P_Copy_Quote_Header_Rec.Quote_Header_Id,
523 x_status => lx_status);
524
525 IF (lx_status = FND_API.G_TRUE) THEN
526 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
527 FND_MESSAGE.Set_Name('ASO', 'ASO_CONC_REQUEST_RUNNING');
528 FND_MSG_PUB.ADD;
529 END IF;
530 RAISE FND_API.G_EXC_ERROR;
531 END IF;
532
533 IF P_Copy_Quote_Header_Rec.Quote_Number IS NOT NULL
534 AND P_Copy_Quote_Header_Rec.Quote_Number <> FND_API.G_MISS_NUM THEN
535
536 OPEN C_Qte_Number_Exists ( P_Copy_Quote_Header_Rec.Quote_Number );
537 FETCH C_Qte_Number_Exists INTO l_qte_num;
538
539 IF C_Qte_Number_Exists%NOTFOUND THEN
540 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
541 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_INVALID_ID' );
542 FND_MESSAGE.Set_Token ('COLUMN' , 'QUOTE_NUMBER', FALSE );
543 FND_MSG_PUB.ADD;
544 END IF;
545 CLOSE C_Qte_Number_Exists;
546 RAISE FND_API.G_EXC_ERROR;
547 ELSE
548 IF aso_debug_pub.g_debug_flag = 'Y' THEN
549 aso_debug_pub.ADD ( 'Copy_Quote - P_Qte_Number Exists' , 1 , 'N' );
550 END IF;
551 l_qte_header_rec.quote_number := P_Copy_Quote_Header_Rec.Quote_Number;
552 CLOSE C_Qte_Number_Exists;
553 END IF;
554
555 END IF; -- qte_number not null
556
557 OPEN C_Curr_Qte_Info ( l_qte_header_rec.quote_number );
558 FETCH C_Curr_Qte_Info INTO l_qte_status_id
559 , l_qte_header_id
560 , l_qte_header_rec.quote_version;
561 CLOSE C_Curr_Qte_Info;
562
563 IF aso_debug_pub.g_debug_flag = 'Y' THEN
564 aso_debug_pub.ADD ( 'Copy_Quote - l_qte_status_id ' || l_qte_status_id , 1 , 'N' );
565 aso_debug_pub.ADD ( 'Copy_Quote - l_qte_header_id ' || l_qte_header_id , 1 , 'N' );
566 aso_debug_pub.ADD ( 'Copy_Quote - l_qte_header_rec.quote_version ' || l_qte_header_rec.quote_version , 1 , 'N' );
567 END IF;
568
569 OPEN C_Check_Qte_Status ( l_qte_status_id );
570 FETCH C_Check_Qte_Status INTO l_dummy;
571
572 IF C_Check_Qte_Status%NOTFOUND THEN
573 IF aso_debug_pub.g_debug_flag = 'Y' THEN
574 aso_debug_pub.ADD ('Copy_Quote - invalid status ' , 1, 'N' );
575 END IF;
576 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
577 FND_MESSAGE.Set_Name ('ASO' , 'ASO_CANNOT_COPY_FOR_STATUS' );
578 FND_MSG_PUB.ADD;
579 END IF;
580 CLOSE C_Check_Qte_Status;
581 RAISE FND_API.G_EXC_ERROR;
582 END IF;
583
584 CLOSE C_Check_Qte_Status;
585
586 l_qte_header_rec.quote_version := NVL ( l_qte_header_rec.quote_version, 0 ) + 1;
587 l_qte_header_rec.max_version_flag := 'Y';
588
589 UPDATE ASO_QUOTE_HEADERS_ALL
590 SET Max_Version_Flag = 'N'
591 ,last_update_date =sysdate
592 ,last_updated_by = G_USER_ID
593 ,last_update_login = G_LOGIN_ID
594
595 WHERE Quote_Header_Id = l_qte_header_id;
596
597 END IF; -- p_new_version
598
599 OPEN c_qte_status_id ( fnd_profile.VALUE ('ASO_DEFAULT_STATUS_CODE' ) );
600 FETCH c_qte_status_id INTO l_qte_header_rec.quote_status_id;
601
602 IF c_qte_status_id%NOTFOUND THEN
603 x_return_status := FND_API.G_RET_STS_ERROR;
604 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
605 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_NO_PROFILE_VALUE' );
606 FND_MESSAGE.Set_Token ( 'PROFILE' , 'ASO_DEFAULT_STATUS_CODE' , FALSE );
607 FND_MSG_PUB.ADD;
608 END IF;
609 CLOSE c_qte_status_id;
610 RAISE FND_API.G_EXC_ERROR;
611 END IF;
612
613 CLOSE c_qte_status_id;
614
615 IF P_Copy_Quote_Header_Rec.Quote_Name <> FND_API.G_MISS_CHAR THEN
616 l_qte_header_rec.Quote_Name := P_Copy_Quote_Header_Rec.Quote_Name;
617
618 ELSE
619 -- since the quote name is not passed in, set the quote name
620 IF ( P_Copy_Quote_Control_Rec.New_Version = FND_API.G_FALSE ) THEN
621 IF (l_qte_header_rec.quote_name is not null and l_qte_header_rec.quote_name <> fnd_api.g_miss_char) then
622 l_qte_header_rec.quote_name := 'Copy Of '||substr(l_qte_header_rec.quote_name,1,232);
623 Else
624 l_qte_header_rec.quote_name := 'Copy Of ';
625 end if;
626 end if;
627
628 END IF;
629
630 IF P_Copy_Quote_Header_Rec.Quote_Source_Code <> FND_API.G_MISS_CHAR THEN
631 l_qte_header_rec.Quote_Source_Code := P_Copy_Quote_Header_Rec.Quote_Source_Code;
632 END IF;
633
634 IF P_Copy_Quote_Header_Rec.Quote_Expiration_Date <> FND_API.G_MISS_DATE THEN
635 l_qte_header_rec.Quote_Expiration_Date := P_Copy_Quote_Header_Rec.Quote_Expiration_Date;
636 END IF;
637
638 IF P_Copy_Quote_Header_Rec.Resource_Id <> FND_API.G_MISS_NUM THEN
639 l_qte_header_rec.Resource_Id := P_Copy_Quote_Header_Rec.Resource_Id;
640 END IF;
641
642 IF P_Copy_Quote_Header_Rec.Resource_Grp_Id <> FND_API.G_MISS_NUM THEN
643 l_qte_header_rec.Resource_Grp_Id := P_Copy_Quote_Header_Rec.Resource_Grp_Id;
644 END IF;
645
646 -- added four new fields as per changes to the copy quote header rec
647 IF P_Copy_Quote_Header_Rec.pricing_status_indicator <> FND_API.G_MISS_CHAR THEN
648 l_qte_header_rec.pricing_status_indicator := P_Copy_Quote_Header_Rec.pricing_status_indicator;
649 END IF;
650
651 IF P_Copy_Quote_Header_Rec.tax_status_indicator <> FND_API.G_MISS_CHAR THEN
652 l_qte_header_rec.tax_status_indicator := P_Copy_Quote_Header_Rec.tax_status_indicator;
653 END IF;
654
655 IF P_Copy_Quote_Header_Rec.price_updated_date <> FND_API.G_MISS_DATE THEN
656 l_qte_header_rec.price_updated_date := P_Copy_Quote_Header_Rec.price_updated_date;
657 END IF;
658
659 IF P_Copy_Quote_Header_Rec.tax_updated_date <> FND_API.G_MISS_DATE THEN
660 l_qte_header_rec.tax_updated_date := P_Copy_Quote_Header_Rec.tax_updated_date;
661 END IF;
662
663 IF aso_debug_pub.g_debug_flag = 'Y' THEN
664 aso_debug_pub.ADD ('Copy_Quote - Begin- before copy_rows ' , 1, 'Y' );
665 END IF;
666 Copy_Header_Rows (
667 P_Api_Version_Number => 1.0
668 , P_Init_Msg_List => FND_API.G_FALSE
669 , P_Commit => FND_API.G_FALSE
670 , P_qte_Header_Rec => l_qte_header_rec
671 /* Code change for Quoting Usability Sun ER Start */
672 , P_Hd_Shipment_Rec => P_Hd_Shipment_Rec
673 , P_hd_Payment_Tbl => P_hd_Payment_Tbl
674 , P_hd_Tax_Detail_Tbl => P_hd_Tax_Detail_Tbl
675 /* Code change for Quoting Usability Sun ER End */
676 , P_Copy_Quote_Control_Rec => P_Copy_Quote_Control_Rec
677 , X_Qte_Header_id => x_qte_header_id
678 , X_Price_Index_Link_Tbl => lx_Price_Index_Link_Tbl
679 , X_Return_Status => l_return_status
680 , X_Msg_Count => x_msg_count
681 , X_Msg_Data => x_msg_data
682 );
683 IF aso_debug_pub.g_debug_flag = 'Y' THEN
684 aso_debug_pub.ADD ( 'Copy_Quote - After copy_rows ' || l_return_status , 1 , 'Y' );
685 END IF;
686
687 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
688 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
689 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
690 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
691 FND_MESSAGE.Set_Token ('ROW' , 'ASO_QUOTE_HEADER', TRUE );
692 FND_MSG_PUB.ADD;
693 END IF;
694 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
695 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
696 x_return_status := FND_API.G_RET_STS_ERROR;
697 RAISE FND_API.G_EXC_ERROR;
698 END IF;
699
700 IF P_Copy_Quote_Control_Rec.Copy_Header_Only <> FND_API.G_TRUE THEN
701
702 IF aso_debug_pub.g_debug_flag = 'Y' THEN
703 aso_debug_pub.ADD ('Copy_Quote - Begin- before copy_rows ' , 1, 'Y' );
704 END IF;
705
706
707 l_copy_line_qte_header_rec.batch_price_flag := FND_API.G_FALSE;
708
709 Copy_Line_Rows (
710 P_Api_Version_Number => 1.0
711 , P_Init_Msg_List => FND_API.G_FALSE
712 , P_Commit => FND_API.G_FALSE
713 , P_qte_Header_Id => P_Copy_Quote_Header_Rec.Quote_Header_Id
714 , P_new_qte_header_id => x_qte_header_id
715 , P_Qte_Line_Id => FND_API.G_MISS_NUM
716 , P_Price_Index_Link_Tbl => lx_Price_Index_Link_Tbl
717 , P_Copy_Quote_Control_Rec => P_Copy_Quote_Control_Rec
718 , P_Qte_Header_Rec => l_copy_line_qte_header_rec
719 , P_Control_Rec => ASO_QUOTE_PUB.G_MISS_Control_Rec
720 , X_Qte_Line_Id => X_New_Qte_Line_Id
721 , X_Return_Status => l_return_status
722 , X_Msg_Count => x_msg_count
723 , X_Msg_Data => x_msg_data
724 );
725 IF aso_debug_pub.g_debug_flag = 'Y' THEN
726 aso_debug_pub.ADD ( 'Copy_Quote - After copy_rows ' || l_return_status , 1 , 'Y' );
727 END IF;
728 END IF;
729 -- ER 3177722
730 /* if (l_return_status =FND_API.G_RET_STS_SUCCESS) then
731
732
733 if l_copy_config_profile='N' then
734 aso_debug_pub.add('Copy Quote -before ASO_QUOTE_PUB.validate_model_configuration return status: ', 1, 'N');
735
736 ASO_QUOTE_PUB.validate_model_configuration
737 (
738 P_Api_Version_Number => 1.0,
739 P_Init_Msg_List => FND_API.G_FALSE,
740 P_Commit => FND_API.G_FALSE,
741 P_Quote_header_id =>x_qte_header_id,
742 P_UPDATE_QUOTE =>'T',
743 P_CONFIG_EFFECTIVE_DATE => sysdate,
744 P_CONFIG_model_lookup_DATE => sysdate,
745 X_Config_tbl => lx_config_tbl,
746 X_Return_Status => l_return_status,
747 X_Msg_Count => x_msg_count,
748 X_Msg_Data => x_msg_data
749 );
750
751 if l_Return_Status=FND_API.G_RET_STS_SUCCESS then
752 commit work;
753 aso_debug_pub.add('rassharm Copy Quote -after ASO_QUOTE_PUB.validate_model_configuration committing data return status: ', 1, 'N');
754
755 end if;
756
757 IF aso_debug_pub.g_debug_flag = 'Y' THEN
758 aso_debug_pub.add('Copy Quote -After ASO_QUOTE_PUB.validate_model_configuration return status: '||l_Return_Status, 1, 'N');
759 aso_debug_pub.add('Copy Quote -After ASO_QUOTE_PUB.validate_model_configuration lx_config_tbl: '||lx_config_tbl.count, 1, 'N');
760 END IF;
761
762
763
764 end if; -- profile
765 end if; -- success
766 */
767 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
768 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
769 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
770 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
771 FND_MESSAGE.Set_Token ('ROW' , 'ASO_QUOTE_HEADER', TRUE );
772 FND_MSG_PUB.ADD;
773 END IF;
774 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
775 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
776 x_return_status := FND_API.G_RET_STS_ERROR;
777 RAISE FND_API.G_EXC_ERROR;
778 END IF;
779
780 OPEN C_Get_Qte_Num ( x_qte_header_id );
781 FETCH C_Get_Qte_Num INTO x_qte_number;
782 CLOSE C_Get_Qte_Num;
783 --bug8975090
784 -- create header relationship
785
786 ASO_HEADER_RELATIONSHIPS_PKG.Insert_Row (
787 px_HEADER_RELATIONSHIP_ID => l_HEADER_RELATIONSHIP_ID
788 , p_CREATION_DATE => SYSDATE
789 , p_CREATED_BY => G_USER_ID
790 , p_LAST_UPDATE_DATE => SYSDATE
791 , p_LAST_UPDATED_BY => G_USER_ID
792 , p_LAST_UPDATE_LOGIN => G_LOGIN_ID
793 , p_REQUEST_ID => NULL
794 , p_PROGRAM_APPLICATION_ID => NULL
795 , p_PROGRAM_ID => NULL
796 , p_PROGRAM_UPDATE_DATE => NULL
797 , p_QUOTE_HEADER_ID => P_Copy_Quote_Header_Rec.quote_header_id
798 , p_RELATED_HEADER_ID => x_qte_header_id
799 , p_RELATIONSHIP_TYPE_CODE => 'COPY'
800 , p_RECIPROCAL_FLAG => NULL
801 ,p_OBJECT_VERSION_NUMBER => NULL
802
803 );
804 IF aso_debug_pub.g_debug_flag = 'Y' THEN
805 aso_debug_pub.ADD ( 'Copy_Quote - After header_relationships,insert: END ' , 1 , 'Y' );
806 END IF;
807 --8975090
808
809 -- IF P_Copy_Quote_Control_Rec.New_Version = FND_API.G_TRUE THEN code commented for Quoting Usability Sun ER
810
811 If P_Copy_Quote_Control_Rec.Copy_Sales_Supplement = FND_API.G_TRUE Then -- Code change for Quoting Usability Sun ER
812
813 COPY_SALES_SUPPLEMENT (
814 P_Api_Version_Number => 1.0
815 , P_Init_Msg_List => FND_API.G_FALSE
816 , P_Commit => FND_API.G_FALSE
817 , p_old_quote_header_id => P_Copy_Quote_Header_Rec.quote_header_id
818 , p_new_quote_header_id => x_qte_header_id
819 , X_Return_Status => l_return_status
820 , X_Msg_Count => x_msg_count
821 , X_Msg_Data => x_msg_data
822 );
823 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
824 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
825 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
826 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
827 FND_MESSAGE.Set_Token ('ROW' , 'ASO_QUOTE_HEADER', TRUE );
828 FND_MSG_PUB.ADD;
829 END IF;
830 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
831 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
832 x_return_status := FND_API.G_RET_STS_ERROR;
833 RAISE FND_API.G_EXC_ERROR;
834 END IF;
835
836 End If; -- Code change for Quoting Usability Sun ER
837
838 IF P_Copy_Quote_Control_Rec.New_Version = FND_API.G_TRUE THEN -- Code change for Quoting Usability Sun ER
839
840 IF aso_debug_pub.g_debug_flag = 'Y' THEN
841 aso_debug_pub.ADD ( 'Copy_Quote - Before Copy_Opp_Quote: ' , 1 , 'N' );
842 END IF;
843 ASO_COPY_QUOTE_PVT.Copy_Opp_Quote(
844 p_api_version_number => 1.0,
845 p_qte_header_id => P_Copy_Quote_Header_Rec.quote_header_id,
846 p_new_qte_header_id => x_qte_header_id,
847 X_Return_Status => l_return_status,
848 X_Msg_Count => x_msg_count,
849 X_Msg_Data => x_msg_data
850 );
851 IF aso_debug_pub.g_debug_flag = 'Y' THEN
852 aso_debug_pub.ADD ( 'Copy_Quote - After Copy_Opp_Quote: l_return_status '||l_return_status , 1 , 'N' );
853 END IF;
854 IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
855 x_return_status := l_return_status;
856 RAISE FND_API.G_EXC_ERROR;
857 END IF;
858
859 END IF;
860
861 -- vtariker Price/Tax Enh
862 IF aso_debug_pub.g_debug_flag = 'Y' THEN
863 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Pricing_Request_Type'||
864 P_Copy_Quote_Control_Rec.Pricing_Request_Type , 1 , 'N' );
865 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Header_Pricing_Event'||
866 P_Copy_Quote_Control_Rec.Header_Pricing_Event , 1 , 'N' );
867 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Price_Mode'||
868 P_Copy_Quote_Control_Rec.Price_Mode , 1 , 'N' );
869 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Calculate_Tax_Flag'||
870 P_Copy_Quote_Control_Rec.Calculate_Tax_Flag , 1 , 'N' );
871 aso_debug_pub.ADD ( 'Copy_Quote - P_Copy_Quote_Control_Rec.Calculate_Freight_Charge_Flag'||
872 P_Copy_Quote_Control_Rec.Calculate_Freight_Charge_Flag , 1 , 'N' );
873 END IF;
874
875 IF (P_Copy_Quote_Control_Rec.Header_Pricing_Event <> FND_API.G_MISS_CHAR
876 AND P_Copy_Quote_Control_Rec.Header_Pricing_Event IS NOT NULL) OR
877 P_Copy_Quote_Control_Rec.Calculate_Tax_Flag = 'Y' THEN
878
879 IF P_Copy_Quote_Control_Rec.Header_Pricing_Event <> FND_API.G_MISS_CHAR
880 AND P_Copy_Quote_Control_Rec.Header_Pricing_Event IS NOT NULL THEN
881
882 l_control_rec.pricing_request_type := P_Copy_Quote_Control_Rec.Pricing_Request_Type;
883 l_control_rec.header_pricing_event := P_Copy_Quote_Control_Rec.Header_Pricing_Event;
884 l_control_rec.price_mode := P_Copy_Quote_Control_Rec.Price_Mode;
885 l_control_rec.Calculate_Freight_Charge_Flag
886 := P_Copy_Quote_Control_Rec.Calculate_Freight_Charge_Flag;
887 -- l_control_rec.calculate_tax_flag := 'N'; -- Code change for Quoting Usability Sun ER
888 END IF;
889
890 IF P_Copy_Quote_Control_Rec.Calculate_Tax_Flag = 'Y' THEN
891 l_control_rec.calculate_tax_flag := 'Y';
892 /* Code change for Quoting Usability Sun ER Start */
893 ElsIf P_Copy_Quote_Control_Rec.Calculate_Tax_Flag = 'N' THEN
894 l_control_rec.calculate_tax_flag := 'N';
895 /* Code change for Quoting Usability Sun ER End */
896 END IF;
897
898 l_control_rec.auto_version_flag := FND_API.G_TRUE;
899
900 OPEN C_Get_Last_Upd_Date ( x_qte_header_id );
901 FETCH C_Get_Last_Upd_Date INTO l_upd_qte_header_rec.last_update_date;
902 CLOSE C_Get_Last_Upd_Date;
903
904 l_upd_qte_header_rec.quote_header_id := x_qte_header_id;
905
906 IF aso_debug_pub.g_debug_flag = 'Y' THEN
907 aso_debug_pub.ADD ( 'Copy_Quote - Before Update_Qte: x_qte_header_id '||x_qte_header_id , 1 , 'N' );
908 END IF;
909 aso_quote_pub.update_quote (
910 p_api_version_number => 1.0,
911 p_init_msg_list => fnd_api.g_false,
912 p_commit => fnd_api.g_false,
913 p_control_rec => l_control_rec,
914 p_qte_header_rec => l_upd_qte_header_rec,
915 p_hd_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
916 p_hd_payment_tbl => aso_quote_pub.g_miss_payment_tbl,
917 p_hd_shipment_tbl => aso_quote_pub.g_miss_shipment_tbl,
918 p_hd_freight_charge_tbl => aso_quote_pub.g_miss_freight_charge_tbl,
919 p_hd_tax_detail_tbl => aso_quote_pub.g_miss_tax_detail_tbl,
920 p_qte_line_tbl => aso_quote_pub.g_miss_qte_line_tbl,
921 p_qte_line_dtl_tbl => aso_quote_pub.g_miss_qte_line_dtl_tbl,
922 p_line_attr_ext_tbl => aso_quote_pub.g_miss_Line_Attribs_Ext_TBL,
923 p_line_rltship_tbl => aso_quote_pub.g_miss_line_rltship_tbl,
924 p_price_adjustment_tbl => aso_quote_pub.g_miss_price_adj_tbl,
925 p_price_adj_attr_tbl => aso_quote_pub.g_miss_price_adj_attr_tbl,
926 p_price_adj_rltship_tbl => aso_quote_pub.g_miss_price_adj_rltship_tbl,
927 p_ln_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
928 p_ln_payment_tbl => aso_quote_pub.g_miss_payment_tbl,
929 p_ln_shipment_tbl => aso_quote_pub.g_miss_shipment_tbl,
930 p_ln_freight_charge_tbl => aso_quote_pub.g_miss_freight_charge_tbl,
931 p_ln_tax_detail_tbl => aso_quote_pub.g_miss_tax_detail_tbl,
932 x_qte_header_rec => x_qte_header_rec,
933 x_qte_line_tbl => x_qte_line_tbl,
934 x_qte_line_dtl_tbl => x_qte_line_dtl_tbl,
935 x_hd_price_attributes_tbl => x_hd_price_attributes_tbl,
936 x_hd_payment_tbl => x_hd_payment_tbl,
937 x_hd_shipment_tbl => x_hd_shipment_tbl,
938 x_hd_freight_charge_tbl => x_hd_freight_charge_tbl,
939 x_hd_tax_detail_tbl => x_hd_tax_detail_tbl,
940 x_line_attr_ext_tbl => x_line_attr_ext_tbl,
941 x_line_rltship_tbl => x_line_rltship_tbl,
942 x_price_adjustment_tbl => x_price_adjustment_tbl,
943 x_price_adj_attr_tbl => x_price_adj_attr_tbl,
944 x_price_adj_rltship_tbl => x_price_adj_rltship_tbl,
945 x_ln_price_attributes_tbl => x_ln_price_attributes_tbl,
946 x_ln_payment_tbl => x_ln_payment_tbl,
947 x_ln_shipment_tbl => x_ln_shipment_tbl,
948 x_ln_freight_charge_tbl => x_ln_freight_charge_tbl,
949 x_ln_tax_detail_tbl => x_ln_tax_detail_tbl,
950 x_return_status => l_return_status,
951 x_msg_count => x_msg_count,
952 x_msg_data => x_msg_data
953 );
954
955 IF aso_debug_pub.g_debug_flag = 'Y' THEN
956 aso_debug_pub.ADD ( 'Copy_Quote - After Update_Quote (Reprice/tax): l_return_status '||
957 l_return_status , 1 ,'N' );
958 END IF;
959 IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
960 x_return_status := l_return_status;
961 RAISE FND_API.G_EXC_ERROR;
962 END IF;
963
964 END IF; -- Header_pricing_event/Tax_flag = TRUE
965
966 -- hyang new okc
967
968 IF NVL(FND_PROFILE.Value('OKC_ENABLE_SALES_CONTRACTS'),'N') = 'Y'
969 THEN
970
971 IF aso_debug_pub.g_debug_flag = 'Y' THEN
972 aso_debug_pub.add(
973 'Copy_Quote - Checking whether the old quote has terms associated with.',
974 1,
975 'Y');
976 END IF;
977 -- bug 5314615
978 l_has_terms := OKC_TERMS_UTIL_GRP.has_terms('QUOTE', p_copy_quote_header_rec.quote_header_id);
979
980 IF aso_debug_pub.g_debug_flag = 'Y' THEN
981 aso_debug_pub.add(
982 'Copy_Quote - l_has_terms ' || l_has_terms,
983 1,
984 'Y');
985 END IF;
986
987
988 IF l_has_terms = 'Y'
989 THEN
990
991 l_target_doc_type := 'QUOTE';
992 l_target_doc_Id := x_qte_header_id;
993
994 IF aso_debug_pub.g_debug_flag = 'Y' THEN
995 aso_debug_pub.add(
996 'Copy_Quote - P_Source_Doc_ID ' || P_Copy_Quote_Header_Rec.Quote_Header_Id,
997 1,
998 'Y');
999 aso_debug_pub.add(
1000 'Copy_Quote - P_Target_Doc_ID ' || l_target_doc_Id,
1001 1,
1002 'Y');
1003 aso_debug_pub.add(
1004 'Copy_Quote - P_Target_Doc_Type ' || l_target_doc_type,
1005 1,
1006 'Y');
1007 END IF;
1008
1009 -- bug 4932493,always copying the contract documents
1010 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1011 aso_debug_pub.add(
1012 'Copy_Quote - Copying terms, as well as contract documents',
1013 1,
1014 'Y');
1015 END IF;
1016 -- bug 5314615
1017 IF P_Copy_Quote_Control_Rec.New_Version = FND_API.G_TRUE THEN
1018 l_copy_for_amendment := 'Y';
1019 l_copy_abstract_yn := 'Y';
1020 ELSE
1021 l_copy_for_amendment := 'N';
1022 l_copy_abstract_yn := 'N';
1023 END IF;
1024
1025 If P_Copy_Quote_Control_Rec.Copy_Contract_Terms = FND_API.G_TRUE Then -- Code change for Quoting Usability Sun ER
1026
1027 OKC_TERMS_COPY_GRP.Copy_Doc (
1028 P_Api_Version => 1.0,
1029 P_Source_doc_Type => 'QUOTE',
1030 P_Source_Doc_ID => P_Copy_Quote_Header_Rec.Quote_Header_Id,
1031 P_Target_Doc_ID => l_target_doc_Id,
1032 P_Target_Doc_Type => l_target_doc_type,
1033 P_Keep_Version => 'Y',
1034 P_Article_Effective_Date => NULL,
1035 P_Copy_Deliverables => 'N',
1036 P_Copy_Doc_Attachments => 'Y',
1037 P_copy_for_amendment => l_copy_for_amendment,
1038 P_copy_abstract_yn => l_copy_abstract_yn,
1039 X_Return_Status => X_Return_Status,
1040 X_Msg_Count => X_Msg_Count,
1041 X_Msg_Data => X_Msg_Data
1042 );
1043
1044
1045 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
1046 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1047 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_COPY_DOC');
1048 FND_MSG_PUB.ADD;
1049 END IF;
1050
1051 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1052 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1053 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1054 RAISE FND_API.G_EXC_ERROR;
1055 END IF;
1056 END IF;
1057
1058 End If; -- Code change for Quoting Usability Sun ER
1059
1060 END IF; -- has_terms
1061
1062 END IF; -- profile
1063
1064 -- end of hyang new okc
1065
1066 -- vtariker Price/Tax Enh
1067
1068 -- bug 5162246
1069 OPEN C_Get_RSA(x_qte_header_id);
1070 FETCH C_Get_RSA INTO l_rsa;
1071 CLOSE C_Get_RSA;
1072
1073 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1074 aso_debug_pub.ADD ( 'Copy_Quote - l_rsa: '|| l_rsa , 1 , 'Y' );
1075 END IF;
1076
1077 IF ( (P_Copy_Quote_Control_Rec.New_Version = FND_API.G_TRUE) and (nvl(l_rsa,'N') = 'Y') ) then
1078
1079 -- get the note id for the original quote
1080 OPEN get_note_id(P_Copy_Quote_Header_Rec.quote_header_id);
1081 FETCH get_note_id into l_note_id;
1082 CLOSE get_note_id;
1083
1084 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1085 aso_debug_pub.ADD ( 'Copy_Quote - l_note_id: '|| l_note_id , 1 , 'Y' );
1086 aso_debug_pub.ADD ( 'Copy_Quote - Before Calling JTF_NOTES_PUB.Create_Note_Context', 1 , 'Y' );
1087 END IF;
1088
1089 JTF_NOTES_PUB.Create_Note_Context(
1090 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
1091 x_return_status => x_return_status ,
1092 p_jtf_note_id => l_note_id ,
1093 p_last_update_date => sysdate ,
1094 p_last_updated_by => FND_Global.USER_ID ,
1095 p_creation_date => sysdate ,
1096 p_created_by => FND_Global.USER_ID ,
1097 p_last_update_login => FND_GLOBAL.LOGIN_ID ,
1098 p_note_context_type_id => x_qte_header_id ,
1099 p_note_context_type => 'ASO_QUOTE' ,
1100 x_note_context_id => lx_jtf_note_context_id
1101 );
1102
1103 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1104 aso_debug_pub.ADD ( 'Copy_Quote - After Calling JTF_NOTES_PUB.Create_Note_Context', 1 , 'Y' );
1105 aso_debug_pub.ADD ( 'Copy_Quote - x_return_status : ' || x_return_status, 1 , 'Y' );
1106 aso_debug_pub.ADD ( 'Copy_Quote - lx_jtf_note_context_id: ' || lx_jtf_note_context_id, 1 , 'Y' );
1107 END IF;
1108 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1109 RAISE FND_API.G_EXC_ERROR;
1110 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1111 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1112 END IF;
1113
1114 END IF; -- end if for the new version and rsa check
1115
1116 -- ER 3177722
1117 if l_copy_config_profile='N' then
1118 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1119 aso_debug_pub.add('Copy Quote -before ASO_QUOTE_PUB.validate_model_configuration x_qte_header_id: '||x_qte_header_id, 1, 'N');
1120 end if;
1121
1122 ASO_QUOTE_PUB.validate_model_configuration
1123 (
1124 P_Api_Version_Number => 1.0,
1125 P_Init_Msg_List => FND_API.G_FALSE,
1126 P_Commit => FND_API.G_FALSE,
1127 P_Quote_header_id =>x_qte_header_id,
1128 P_UPDATE_QUOTE =>'T',
1129 P_CONFIG_EFFECTIVE_DATE => sysdate,
1130 P_CONFIG_model_lookup_DATE => sysdate,
1131 X_Config_tbl => lx_config_tbl,
1132 X_Return_Status => l_return_status,
1133 X_Msg_Count => x_msg_count,
1134 X_Msg_Data => x_msg_data
1135 );
1136
1137 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1138 aso_debug_pub.add('Copy Quote -After ASO_QUOTE_PUB.validate_model_configuration return status: '||l_Return_Status, 1, 'N');
1139 aso_debug_pub.add('Copy Quote -After ASO_QUOTE_PUB.validate_model_configuration lx_config_tbl: '||lx_config_tbl.count, 1, 'N');
1140 aso_debug_pub.add('Copy Quote -After ASO_QUOTE_PUB.validate_model_configuration x_msg_count: '||x_msg_count, 1, 'N');
1141 END IF;
1142 /* if (l_Return_Status=FND_API.G_RET_STS_SUCCESS) and (lx_config_tbl.count>0) then
1143 commit work;
1144 aso_debug_pub.add('rassharm Copy Quote -after ASO_QUOTE_PUB.validate_model_configuration committing data return status: ', 1, 'N');
1145
1146 end if;
1147 */
1148
1149 if (l_Return_Status=FND_API.G_RET_STS_SUCCESS) then
1150 x_return_status := FND_API.G_RET_STS_SUCCESS;
1151
1152 elsIF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1153 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1154 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1155 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
1156 x_return_status := FND_API.G_RET_STS_ERROR;
1157 RAISE FND_API.G_EXC_ERROR;
1158 END IF;
1159
1160 end if; -- profile
1161
1162
1163 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1164 aso_debug_pub.ADD ( 'Copy_Quote - END ' , 1 , 'Y' );
1165 END IF;
1166
1167 x_return_status := FND_API.G_RET_STS_SUCCESS;
1168
1169 --
1170 -- End of API body
1171 --
1172
1173 -- Standard check for p_commit
1174 IF FND_API.to_Boolean ( p_commit ) THEN
1175 COMMIT WORK;
1176 END IF;
1177 -- Standard call to get message count and if count is 1, get message info.
1178 FND_MSG_PUB.Count_And_Get (
1179 p_count => x_msg_count
1180 , p_data => x_msg_data
1181 );
1182
1183 EXCEPTION
1184 WHEN FND_API.G_EXC_ERROR THEN
1185 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
1186 P_API_NAME => L_API_NAME
1187 , P_PKG_NAME => G_PKG_NAME
1188 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1189 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
1190 , X_MSG_COUNT => X_MSG_COUNT
1191 , X_MSG_DATA => X_MSG_DATA
1192 , X_RETURN_STATUS => X_RETURN_STATUS
1193 );
1194
1195 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1196 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
1197 P_API_NAME => L_API_NAME
1198 , P_PKG_NAME => G_PKG_NAME
1199 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1200 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
1201 , X_MSG_COUNT => X_MSG_COUNT
1202 , X_MSG_DATA => X_MSG_DATA
1203 , X_RETURN_STATUS => X_RETURN_STATUS
1204 );
1205
1206 WHEN OTHERS THEN
1207 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
1208 P_API_NAME => L_API_NAME
1209 , P_PKG_NAME => G_PKG_NAME
1210 , P_SQLCODE => SQLCODE
1211 , P_SQLERRM => SQLERRM
1212 , P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
1213 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
1214 , X_MSG_COUNT => X_MSG_COUNT
1215 , X_MSG_DATA => X_MSG_DATA
1216 , X_RETURN_STATUS => X_RETURN_STATUS
1217 );
1218
1219 END Copy_Quote;
1220
1221
1222 PROCEDURE Copy_Header_Rows (
1223 P_Api_Version_Number IN NUMBER
1224 , P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE
1225 , P_Commit IN VARCHAR2 := FND_API.G_FALSE
1226 , P_Qte_Header_Rec IN ASO_QUOTE_PUB.qte_header_rec_Type
1227 /* Code change for Quoting Usability Sun ER Start */
1228 , P_Hd_Shipment_REC IN ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Shipment_Rec
1229 , P_hd_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL
1230 , P_hd_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl
1231 /* Code change for Quoting Usability Sun ER End */
1232 , P_Copy_Quote_Control_Rec IN ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type
1233 , X_Qte_Header_Id OUT NOCOPY /* file.sql.39 change */ NUMBER
1234 , X_Price_Index_Link_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type
1235 , X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1236 , X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER
1237 , X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1238 ) IS
1239
1240 l_qte_header_id NUMBER := P_qte_Header_Rec.quote_header_id;
1241 l_old_qte_header_id NUMBER := P_qte_Header_Rec.quote_header_id;
1242 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := P_qte_Header_Rec;
1243 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
1244 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
1245 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
1246 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
1247 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
1248 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
1249 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
1250 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
1251 lx_hd_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
1252 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
1253 X_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
1254 X_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
1255 X_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
1256 l_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
1257 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
1258 l_quote_party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
1259 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
1260 l_sales_credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
1261 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
1262 l_api_version CONSTANT NUMBER := 1.0;
1263 l_return_status VARCHAR2 ( 1 );
1264 l_api_name CONSTANT VARCHAR2 ( 30 ) := 'Copy_Header_Rows';
1265 l_api_version_number CONSTANT NUMBER := 1.0;
1266
1267
1268 l_qte_header_rec_out ASO_QUOTE_PUB.Qte_Header_Rec_Type;
1269 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
1270 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
1271 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
1272 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
1273 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
1274
1275 l_old_qte_num NUMBER;
1276 l_sequence NUMBER := null;
1277 l_sales_team_prof VARCHAR2(30) := FND_PROFILE.value('ASO_AUTO_TEAM_ASSIGN');
1278
1279 --BC4J Fix
1280 l_dup_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
1281
1282 CURSOR C_Get_Sales_Team (l_qte_num NUMBER) IS
1283 SELECT RESOURCE_ID,
1284 RESOURCE_GRP_ID,
1285 REQUEST_ID,
1286 PROGRAM_APPLICATION_ID,
1287 PROGRAM_ID,
1288 PROGRAM_UPDATE_DATE,
1289 KEEP_FLAG,
1290 UPDATE_ACCESS_FLAG,
1291 CREATED_BY_TAP_FLAG,
1292 TERRITORY_ID,
1293 TERRITORY_SOURCE_FLAG,
1294 ROLE_ID,
1295 ATTRIBUTE_CATEGORY,
1296 ATTRIBUTE1,
1297 ATTRIBUTE2,
1298 ATTRIBUTE3,
1299 ATTRIBUTE4,
1300 ATTRIBUTE5,
1301 ATTRIBUTE6,
1302 ATTRIBUTE7,
1303 ATTRIBUTE8,
1304 ATTRIBUTE9,
1305 ATTRIBUTE10,
1306 ATTRIBUTE11,
1307 ATTRIBUTE12,
1308 ATTRIBUTE13,
1309 ATTRIBUTE14,
1310 ATTRIBUTE15,
1311 ATTRIBUTE16,
1312 ATTRIBUTE17,
1313 ATTRIBUTE18,
1314 ATTRIBUTE19,
1315 ATTRIBUTE20,
1316 OBJECT_VERSION_NUMBER
1317 FROM ASO_QUOTE_ACCESSES
1318 WHERE QUOTE_NUMBER = l_qte_num;
1319
1320 CURSOR C_Get_Old_Qte (l_hdr_id NUMBER) IS
1321 SELECT Quote_Number
1322 FROM ASO_QUOTE_HEADERS_ALL
1323 WHERE QUote_Header_Id = l_hdr_id;
1324
1325 l_qte_access_tbl aso_quote_pub.qte_access_tbl_type := aso_quote_pub.g_miss_qte_access_tbl;
1326 x_qte_access_tbl aso_quote_pub.qte_access_tbl_type;
1327 BEGIN
1328
1329 -- Standard Start of API savepoint
1330 SAVEPOINT COPY_HEADER_ROWS_PVT;
1331
1332 -- Standard call to check for call compatibility.
1333 IF NOT FND_API.Compatible_API_Call (
1334 l_api_version_number
1335 , p_api_version_number
1336 , l_api_name
1337 , G_PKG_NAME
1338 ) THEN
1339 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1340 END IF;
1341
1342 -- Initialize message list if p_init_msg_list is set to TRUE.
1343 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
1344 FND_MSG_PUB.initialize;
1345 END IF;
1346
1347 -- Debug Message
1348 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW ) THEN
1349 FND_MESSAGE.Set_Name ('ASO' , 'Copy Quote Header API: Start' );
1350 FND_MSG_PUB.ADD;
1351 END IF;
1352
1353 -- Initialize API return status to success
1354 l_return_status := FND_API.G_RET_STS_SUCCESS;
1355
1356 --
1357 -- API body
1358 --
1359
1360 /* Code change for Quoting Usability Sun ER Start */
1361
1362 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows (
1363 p_qte_header_id => l_qte_header_id,
1364 p_qte_line_id => NULL );
1365
1366 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1367 aso_debug_pub.ADD ( 'Copy_Header_Rows - l_shipment_tbl.count: ' || TO_CHAR ( l_shipment_tbl.COUNT ) , 1 , 'N' );
1368 END IF;
1369
1370 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows (
1371 P_Shipment_Tbl => l_shipment_tbl );
1372
1373 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1374 aso_debug_pub.ADD ( 'Copy_Header_Rows - l_freight_charge_tbl.count: ' || TO_CHAR ( l_freight_charge_tbl.COUNT ) , 1 , 'N' );
1375 END IF;
1376
1377 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows (
1378 p_qte_header_id => l_qte_header_id,
1379 p_qte_line_id => NULL,
1380 p_shipment_tbl => ASO_QUOTE_PUB.g_miss_shipment_tbl );
1381
1382 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1383 aso_debug_pub.ADD ( 'Copy_Header_Rows - l_tax_detail_tbl.count: ' || TO_CHAR ( l_tax_detail_tbl.COUNT ) , 1 , 'N' );
1384 END IF;
1385 /* Code change for Quoting Usability Sun ER End */
1386
1387 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_TRUE Then -- Code change for Quoting Usability Sun ER
1388
1389 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1390 aso_debug_pub.ADD ( 'Copy_Header_Rows - P_Copy_Quote_Control_Rec.Copy_To_Same_Customer is True ', 1 , 'N' );
1391 END IF;
1392
1393 l_price_adj_tbl :=
1394 ASO_UTILITY_PVT.Query_Price_Adj_Rows (
1395 p_qte_header_id => l_qte_header_id
1396 , p_qte_line_id => NULL
1397 );
1398
1399 l_dup_Price_Adj_Tbl := l_price_adj_tbl;
1400
1401 l_price_adj_attr_tbl :=
1402 ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows (
1403 p_price_adj_tbl => l_price_adj_tbl
1404 );
1405
1406 l_price_attr_tbl :=
1407 ASO_UTILITY_PVT.Query_Price_Attr_Rows (
1408 p_qte_header_id => l_qte_header_id
1409 , p_qte_line_id => NULL
1410 );
1411
1412 /* l_payment_tbl :=
1413 ASO_UTILITY_PVT.Query_Payment_Rows (
1414 p_qte_header_id => l_qte_header_id
1415 , p_qte_line_id => NULL
1416 );
1417
1418 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1419 aso_debug_pub.ADD ( 'Copy_Rows - payment_tbl.count: ' || TO_CHAR ( l_payment_tbl.COUNT ) , 1 , 'N' );
1420 END IF; */
1421
1422 /* Code change for Quoting Usability Sun ER Start */
1423
1424 If P_Copy_Quote_Control_Rec.Copy_Shipping = FND_API.G_FALSE Then
1425 l_shipment_tbl(1).SHIP_TO_CUST_ACCOUNT_ID := Null;
1426 l_shipment_tbl(1).SHIP_TO_CUST_PARTY_ID := Null;
1427 l_shipment_tbl(1).SHIP_TO_PARTY_ID := Null;
1428 l_shipment_tbl(1).SHIP_TO_PARTY_SITE_ID := Null;
1429 l_shipment_tbl(1).SHIP_TO_PARTY_NAME := Null;
1430 l_shipment_tbl(1).SHIP_TO_CONTACT_FIRST_NAME := Null;
1431 l_shipment_tbl(1).SHIP_TO_CONTACT_MIDDLE_NAME := Null;
1432 l_shipment_tbl(1).SHIP_TO_CONTACT_LAST_NAME := Null;
1433 l_shipment_tbl(1).SHIP_TO_ADDRESS1 := Null;
1434 l_shipment_tbl(1).SHIP_TO_ADDRESS2 := Null;
1435 l_shipment_tbl(1).SHIP_TO_ADDRESS3 := Null;
1436 l_shipment_tbl(1).SHIP_TO_ADDRESS4 := Null;
1437 l_shipment_tbl(1).SHIP_TO_COUNTRY_CODE := Null;
1438 l_shipment_tbl(1).SHIP_TO_COUNTRY := Null;
1439 l_shipment_tbl(1).SHIP_TO_CITY := Null;
1440 l_shipment_tbl(1).SHIP_TO_POSTAL_CODE := Null;
1441 l_shipment_tbl(1).SHIP_TO_STATE := Null;
1442 l_shipment_tbl(1).SHIP_TO_PROVINCE := Null;
1443 l_shipment_tbl(1).SHIP_TO_COUNTY := Null;
1444 l_shipment_tbl(1).SHIP_METHOD_CODE := Null;
1445 l_shipment_tbl(1).FREIGHT_TERMS_CODE := Null;
1446 l_shipment_tbl(1).FOB_CODE := Null;
1447 l_shipment_tbl(1).DEMAND_CLASS_CODE := Null;
1448 l_shipment_tbl(1).REQUEST_DATE_TYPE := Null;
1449 l_shipment_tbl(1).REQUEST_DATE := Null;
1450 l_shipment_tbl(1).SHIPMENT_PRIORITY_CODE := Null;
1451 l_shipment_tbl(1).SHIPPING_INSTRUCTIONS := Null;
1452 l_shipment_tbl(1).PACKING_INSTRUCTIONS := Null;
1453 End If;
1454
1455 If P_Copy_Quote_Control_Rec.Copy_Billing = FND_API.G_FALSE Then
1456 l_qte_header_rec.INVOICE_TO_CUST_ACCOUNT_ID := Null;
1457 l_qte_header_rec.INVOICE_TO_CUST_PARTY_ID := Null;
1458 l_qte_header_rec.INVOICE_TO_PARTY_ID := Null;
1459 l_qte_header_rec.INVOICE_TO_PARTY_SITE_ID := Null;
1460 l_qte_header_rec.INVOICE_TO_PARTY_NAME := Null;
1461 l_qte_header_rec.INVOICE_TO_CONTACT_FIRST_NAME := Null;
1462 l_qte_header_rec.INVOICE_TO_CONTACT_MIDDLE_NAME := Null;
1463 l_qte_header_rec.INVOICE_TO_CONTACT_LAST_NAME := Null;
1464 l_qte_header_rec.INVOICE_TO_ADDRESS1 := Null;
1465 l_qte_header_rec.INVOICE_TO_ADDRESS2 := Null;
1466 l_qte_header_rec.INVOICE_TO_ADDRESS3 := Null;
1467 l_qte_header_rec.INVOICE_TO_ADDRESS4 := Null;
1468 l_qte_header_rec.INVOICE_TO_COUNTRY_CODE := Null;
1469 l_qte_header_rec.INVOICE_TO_COUNTRY := Null;
1470 l_qte_header_rec.INVOICE_TO_CITY := Null;
1471 l_qte_header_rec.INVOICE_TO_POSTAL_CODE := Null;
1472 l_qte_header_rec.INVOICE_TO_STATE := Null;
1473 l_qte_header_rec.INVOICE_TO_PROVINCE := Null;
1474 l_qte_header_rec.INVOICE_TO_COUNTY := Null;
1475 End If;
1476
1477 If P_Copy_Quote_Control_Rec.Copy_End_Customer = FND_API.G_FALSE Then
1478 l_qte_header_rec.END_CUSTOMER_PARTY_ID := Null;
1479 l_qte_header_rec.END_CUSTOMER_PARTY_SITE_ID := Null;
1480 l_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := Null;
1481 l_qte_header_rec.END_CUSTOMER_CUST_PARTY_ID := Null;
1482 End If;
1483
1484 If P_Copy_Quote_Control_Rec.Copy_Sales_Credit = FND_API.G_TRUE Then
1485 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row (
1486 P_qte_header_Id => l_qte_header_id ,
1487 P_qte_line_id => NULL );
1488
1489 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1490 aso_debug_pub.ADD ( 'Copy_Header_Rows - l_sales_credit_tbl.count: ' || TO_CHAR ( l_sales_credit_tbl.COUNT ) , 1 , 'N' );
1491 END IF;
1492 End If;
1493
1494 ElsIf P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
1495
1496 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1497 aso_debug_pub.ADD ( 'Copy_Header_Rows - P_Copy_Quote_Control_Rec.Copy_To_Same_Customer is False ', 1 , 'N' );
1498 END IF;
1499
1500 l_shipment_tbl(1).SHIP_TO_CUST_ACCOUNT_ID := P_Hd_Shipment_Rec.SHIP_TO_CUST_ACCOUNT_ID;
1501 l_shipment_tbl(1).SHIP_TO_CUST_PARTY_ID := P_Hd_Shipment_Rec.SHIP_TO_CUST_PARTY_ID;
1502 l_shipment_tbl(1).SHIP_TO_PARTY_ID := P_Hd_Shipment_Rec.SHIP_TO_PARTY_ID;
1503 l_shipment_tbl(1).SHIP_TO_PARTY_SITE_ID := P_Hd_Shipment_Rec.SHIP_TO_PARTY_SITE_ID;
1504 l_shipment_tbl(1).SHIP_TO_PARTY_NAME := P_Hd_Shipment_Rec.SHIP_TO_PARTY_NAME;
1505 l_shipment_tbl(1).SHIP_TO_CONTACT_FIRST_NAME := P_Hd_Shipment_Rec.SHIP_TO_CONTACT_FIRST_NAME;
1506 l_shipment_tbl(1).SHIP_TO_CONTACT_MIDDLE_NAME := P_Hd_Shipment_Rec.SHIP_TO_CONTACT_MIDDLE_NAME;
1507 l_shipment_tbl(1).SHIP_TO_CONTACT_LAST_NAME := P_Hd_Shipment_Rec.SHIP_TO_CONTACT_LAST_NAME;
1508 l_shipment_tbl(1).SHIP_TO_ADDRESS1 := P_Hd_Shipment_Rec.SHIP_TO_ADDRESS1;
1509 l_shipment_tbl(1).SHIP_TO_ADDRESS2 := P_Hd_Shipment_Rec.SHIP_TO_ADDRESS2;
1510 l_shipment_tbl(1).SHIP_TO_ADDRESS3 := P_Hd_Shipment_Rec.SHIP_TO_ADDRESS3;
1511 l_shipment_tbl(1).SHIP_TO_ADDRESS4 := P_Hd_Shipment_Rec.SHIP_TO_ADDRESS4;
1512 l_shipment_tbl(1).SHIP_TO_COUNTRY_CODE := P_Hd_Shipment_Rec.SHIP_TO_COUNTRY_CODE;
1513 l_shipment_tbl(1).SHIP_TO_COUNTRY := P_Hd_Shipment_Rec.SHIP_TO_COUNTRY;
1514 l_shipment_tbl(1).SHIP_TO_CITY := P_Hd_Shipment_Rec.SHIP_TO_CITY;
1515 l_shipment_tbl(1).SHIP_TO_POSTAL_CODE := P_Hd_Shipment_Rec.SHIP_TO_POSTAL_CODE;
1516 l_shipment_tbl(1).SHIP_TO_STATE := P_Hd_Shipment_Rec.SHIP_TO_STATE;
1517 l_shipment_tbl(1).SHIP_TO_PROVINCE := P_Hd_Shipment_Rec.SHIP_TO_PROVINCE;
1518 l_shipment_tbl(1).SHIP_TO_COUNTY := P_Hd_Shipment_Rec.SHIP_TO_COUNTY;
1519
1520 If P_Copy_Quote_Control_Rec.Copy_Shipping = FND_API.G_FALSE Then
1521 l_shipment_tbl(1).SHIP_METHOD_CODE := Null;
1522 l_shipment_tbl(1).FREIGHT_TERMS_CODE := Null;
1523 l_shipment_tbl(1).FOB_CODE := Null;
1524 l_shipment_tbl(1).DEMAND_CLASS_CODE := Null;
1525 l_shipment_tbl(1).REQUEST_DATE_TYPE := Null;
1526 l_shipment_tbl(1).REQUEST_DATE := Null;
1527 l_shipment_tbl(1).SHIPMENT_PRIORITY_CODE := Null;
1528 l_shipment_tbl(1).SHIPPING_INSTRUCTIONS := Null;
1529 l_shipment_tbl(1).PACKING_INSTRUCTIONS := Null;
1530 End If;
1531
1532 -- If Tax Handling is Exempt then don't copy following values
1533 FOR j IN 1 .. l_tax_detail_tbl.COUNT LOOP
1534 If l_tax_detail_tbl(j).TAX_EXEMPT_FLAG = 'E' Then
1535 l_tax_detail_tbl(j).TAX_EXEMPT_FLAG := P_hd_Tax_Detail_Tbl(j).TAX_EXEMPT_FLAG;
1536 l_tax_detail_tbl(j).TAX_EXEMPT_NUMBER := P_hd_Tax_Detail_Tbl(j).TAX_EXEMPT_FLAG;
1537 l_tax_detail_tbl(j).TAX_EXEMPT_REASON_CODE := P_hd_Tax_Detail_Tbl(j).TAX_EXEMPT_REASON_CODE;
1538 End If;
1539 END LOOP;
1540
1541 l_price_adj_tbl := aso_quote_pub.g_miss_price_adj_tbl;
1542
1543 l_dup_Price_Adj_Tbl := l_price_adj_tbl;
1544
1545 l_price_adj_attr_tbl := aso_quote_pub.g_miss_price_adj_attr_tbl;
1546
1547 l_price_attr_tbl := aso_quote_pub.g_miss_price_attributes_tbl;
1548
1549 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row (
1550 P_qte_header_Id => l_qte_header_id ,
1551 P_qte_line_id => NULL );
1552
1553 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1554 aso_debug_pub.ADD ( 'Copy_Header_Rows - l_sales_credit_tbl.count: ' || TO_CHAR ( l_sales_credit_tbl.COUNT ) , 1 , 'N' );
1555 END IF;
1556
1557 End If;
1558
1559 If P_Copy_Quote_Control_Rec.Copy_Flexfield = FND_API.G_FALSE Then
1560 l_qte_header_rec.ATTRIBUTE1 := Null;
1561 l_qte_header_rec.ATTRIBUTE2 := Null;
1562 l_qte_header_rec.ATTRIBUTE3 := Null;
1563 l_qte_header_rec.ATTRIBUTE4 := Null;
1564 l_qte_header_rec.ATTRIBUTE5 := Null;
1565 l_qte_header_rec.ATTRIBUTE6 := Null;
1566 l_qte_header_rec.ATTRIBUTE7 := Null;
1567 l_qte_header_rec.ATTRIBUTE8 := Null;
1568 l_qte_header_rec.ATTRIBUTE9 := Null;
1569 l_qte_header_rec.ATTRIBUTE10 := Null;
1570 l_qte_header_rec.ATTRIBUTE11 := Null;
1571 l_qte_header_rec.ATTRIBUTE12 := Null;
1572 l_qte_header_rec.ATTRIBUTE13 := Null;
1573 l_qte_header_rec.ATTRIBUTE14 := Null;
1574 l_qte_header_rec.ATTRIBUTE15 := Null;
1575 l_qte_header_rec.ATTRIBUTE16 := Null;
1576 l_qte_header_rec.ATTRIBUTE17 := Null;
1577 l_qte_header_rec.ATTRIBUTE18 := Null;
1578 l_qte_header_rec.ATTRIBUTE19 := Null;
1579 l_qte_header_rec.ATTRIBUTE20 := Null;
1580 End If;
1581 /* Code change for Quoting Usability Sun ER End */
1582
1583 l_Line_Attr_Ext_Tbl :=
1584 ASO_UTILITY_PVT.Query_Line_Attribs_header_Rows (
1585 P_Qte_header_Id => l_qte_header_id
1586 );
1587 /*
1588 l_sales_credit_tbl :=
1589 ASO_UTILITY_PVT.Query_Sales_Credit_Row (
1590 P_qte_header_Id => l_qte_header_id
1591 , P_qte_line_id => NULL
1592 );
1593 */
1594 l_quote_party_tbl :=
1595 ASO_UTILITY_PVT.Query_Quote_Party_Row (
1596 P_Qte_header_Id => l_qte_header_id
1597 , P_qte_line_id => NULL
1598 );
1599
1600 IF P_Copy_Quote_Control_Rec.Copy_Header_Only = FND_API.G_TRUE THEN
1601 l_qte_header_rec.TOTAL_LIST_PRICE := NULL;
1602 l_qte_header_rec.TOTAL_ADJUSTED_AMOUNT := NULL;
1603 l_qte_header_rec.TOTAL_ADJUSTED_PERCENT := NULL;
1604 l_qte_header_rec.TOTAL_TAX := NULL;
1605 l_qte_header_rec.TOTAL_SHIPPING_CHARGE := NULL;
1606 l_qte_header_rec.SURCHARGE := NULL;
1607 l_qte_header_rec.TOTAL_QUOTE_PRICE := NULL;
1608 l_qte_header_rec.PAYMENT_AMOUNT := NULL;
1609 l_qte_header_rec.ORDERED_DATE := NULL;
1610 END IF;
1611
1612 l_qte_header_rec.PUBLISH_FLAG := NULL;
1613 l_qte_header_rec.ORDER_ID := NULL;
1614 l_qte_header_rec.ORDER_NUMBER := NULL;
1615 l_qte_header_rec.quote_header_id := NULL;
1616 l_qte_header_rec.price_updated_date := NULL;
1617 l_qte_header_rec.tax_updated_date := NULL;
1618 l_qte_header_rec.price_request_id := NULL;
1619 l_qte_header_rec.price_frozen_date := NULL;
1620
1621 -- hyang new okc
1622 l_qte_header_rec.Customer_Name_And_Title := NULL;
1623 l_qte_header_rec.Customer_Signature_Date := NULL;
1624 l_qte_header_rec.Supplier_Name_And_Title := NULL;
1625 l_qte_header_rec.Supplier_Signature_Date := NULL;
1626 -- end of hyang new okc
1627
1628 -- bug 5159758
1629 IF ( P_Copy_Quote_Control_Rec.New_Version = FND_API.G_FALSE ) THEN
1630 l_qte_header_rec.ASSISTANCE_REQUESTED := null;
1631 l_qte_header_rec.ASSISTANCE_REASON_CODE := null;
1632 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1633 aso_debug_pub.ADD ( 'Copy_Rows - Nulled out the ASSISTANCE_REQUESTED and ASSISTANCE_REASON_CODE' , 1 , 'N' );
1634 END IF;
1635 END IF;
1636
1637
1638
1639 --BC4J Primary Key Fix
1640
1641
1642 FOR j IN 1 .. l_price_adj_tbl.COUNT LOOP
1643 l_price_adj_tbl ( j ).price_adjustment_id := null;
1644 l_price_adj_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
1645 END LOOP;
1646
1647 FOR j IN 1 .. l_price_adj_attr_tbl.COUNT LOOP
1648 l_price_adj_attr_tbl(j).price_adj_attrib_id := null;
1649 l_price_adj_attr_tbl(j).object_version_number := FND_API.G_MISS_NUM;
1650 END LOOP;
1651
1652 FOR j IN 1 .. l_price_attr_tbl.COUNT LOOP
1653 l_price_attr_tbl ( j ).price_attribute_id := null;
1654 l_price_attr_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
1655 END LOOP;
1656
1657 /*
1658 FOR j IN 1 .. l_payment_tbl.COUNT LOOP
1659 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
1660 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
1661 l_payment_tbl ( j ).payment_id := NULL;
1662 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
1663 END LOOP; */
1664
1665 FOR j IN 1 .. l_shipment_tbl.COUNT LOOP
1666 l_shipment_tbl ( j ).shipment_id := null;
1667 l_shipment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
1668 END LOOP;
1669
1670 FOR j IN 1 .. l_sales_credit_tbl.COUNT LOOP
1671 l_sales_credit_tbl(j).sales_credit_id := null;
1672 l_sales_credit_tbl(j).object_version_number := FND_API.G_MISS_NUM;
1673 END LOOP;
1674
1675 FOR j IN 1 .. l_quote_party_tbl.COUNT LOOP
1676 l_quote_party_tbl(j).QUOTE_PARTY_ID := null;
1677 l_quote_party_tbl(j).object_version_number := FND_API.G_MISS_NUM;
1678 END LOOP;
1679
1680 FOR j IN 1 .. l_tax_detail_tbl.COUNT LOOP
1681 l_tax_detail_tbl(j).tax_detail_id := null;
1682 l_tax_detail_tbl(j).object_version_number := FND_API.G_MISS_NUM;
1683 END LOOP;
1684
1685 FOR j IN 1 .. l_Line_Attr_Ext_Tbl.COUNT LOOP
1686 l_Line_Attr_Ext_Tbl(j).line_attribute_id := null;
1687 l_Line_Attr_Ext_Tbl(j).object_version_number := FND_API.G_MISS_NUM;
1688 END LOOP;
1689
1690 l_qte_header_rec.object_version_number := FND_API.G_MISS_NUM;
1691
1692 --End of BC4J Primary Key Fix
1693
1694 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1695 aso_debug_pub.ADD ( 'Copy_Header_Rows - Before insert_rows ', 1 , 'Y' );
1696 END IF;
1697
1698 ASO_QUOTE_HEADERS_PVT.Insert_Rows (
1699 p_qte_header_rec => l_qte_header_rec
1700 , p_Price_Attributes_Tbl => l_price_attr_tbl
1701 , P_Price_Adjustment_Tbl => l_price_adj_tbl
1702 , P_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl
1703 , P_Payment_Tbl => l_payment_tbl
1704 , P_Shipment_Tbl => l_shipment_tbl
1705 , P_Freight_Charge_Tbl => l_freight_charge_tbl
1706 , P_Tax_Detail_Tbl => l_tax_detail_tbl
1707 , P_hd_Attr_Ext_Tbl => l_Line_Attr_Ext_Tbl
1708 , P_Sales_Credit_Tbl => l_sales_credit_tbl
1709 , P_Quote_Party_Tbl => l_Quote_Party_Tbl
1710 , P_qte_access_Tbl => l_qte_access_tbl
1711 , x_qte_header_rec => l_qte_header_rec_out
1712 , x_Price_Attributes_Tbl => l_price_attr_tbl_out
1713 , x_Price_Adjustment_Tbl => lx_hd_Price_Adj_Tbl
1714 , x_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl_out
1715 , x_Payment_Tbl => l_payment_tbl_out
1716 , x_Shipment_Rec => l_shipment_rec
1717 , x_Freight_Charge_Tbl => l_freight_charge_tbl_out
1718 , x_Tax_Detail_Tbl => l_tax_detail_tbl_out
1719 , x_hd_Attr_Ext_Tbl => x_hd_Attr_Ext_Tbl
1720 , x_sales_credit_tbl => x_sales_credit_tbl
1721 , x_quote_party_tbl => x_quote_party_tbl
1722 , x_qte_access_Tbl => x_qte_access_tbl
1723 , X_Return_Status => l_return_status
1724 , X_Msg_Count => x_msg_count
1725 , X_Msg_Data => x_msg_data
1726 );
1727
1728
1729
1730 l_qte_header_rec :=l_qte_header_rec_out ;
1731 l_Price_Attr_Tbl := l_Price_Attr_Tbl_out ;
1732 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out ;
1733 l_freight_charge_tbl :=l_freight_charge_tbl_out ;
1734 l_tax_detail_tbl := l_tax_detail_tbl_out ;
1735 l_payment_tbl := l_payment_tbl_out;
1736
1737
1738 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1739 aso_debug_pub.ADD ( 'Copy_Header_Rows - After insert_rows - status: ' || l_return_status , 1 , 'Y' );
1740 END IF;
1741
1742 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1743 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1744 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
1745 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
1746 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYHEADER AFTER_INSERT' , TRUE );
1747 FND_MSG_PUB.ADD;
1748 END IF;
1749 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1750 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
1751 x_return_status := FND_API.G_RET_STS_ERROR;
1752 RAISE FND_API.G_EXC_ERROR;
1753 END IF;
1754
1755 x_qte_header_id := l_qte_header_rec.quote_header_id;
1756
1757 -- Copy the header payment record
1758 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(p_qte_header_id =>l_qte_header_id,p_qte_line_id =>NULL);
1759
1760 IF l_payment_tbl.count > 0 then
1761
1762 FOR j IN 1 .. l_payment_tbl.COUNT LOOP
1763 l_payment_tbl ( j ).quote_header_id := l_qte_header_rec.quote_header_id;
1764 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
1765 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
1766 l_payment_tbl ( j ).payment_id := NULL;
1767 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
1768 /* Code change for Quoting Usability Sun ER Start */
1769 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_TRUE Then
1770 If P_Copy_Quote_Control_Rec.Copy_Payment = FND_API.G_FALSE Then
1771 l_payment_tbl ( j ).CUST_PO_NUMBER := Null;
1772 l_payment_tbl ( j ).PAYMENT_TERM_ID := Null;
1773 l_payment_tbl ( j ).PAYMENT_TYPE_CODE := NULL;
1774 l_payment_tbl ( j ).PAYMENT_REF_NUMBER := Null;
1775 l_payment_tbl ( j ).CREDIT_CARD_CODE := Null;
1776 l_payment_tbl ( j ).CREDIT_CARD_HOLDER_NAME := Null;
1777 l_payment_tbl ( j ).CREDIT_CARD_EXPIRATION_DATE := Null;
1778 End If;
1779 ElsIf P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
1780 If l_payment_tbl ( j ).PAYMENT_TYPE_CODE In ('CHECK','CREDIT_CARD') Then
1781 -- Not required to pass credit card details since these details are not stored in ASO tables anymore bug 16591499
1782 If l_payment_tbl ( j ).PAYMENT_TYPE_CODE = 'CREDIT_CARD' Then
1783 l_payment_tbl ( j ).CREDIT_CARD_CODE := null;--P_hd_Payment_Tbl(j).CREDIT_CARD_CODE;
1784 l_payment_tbl ( j ).CREDIT_CARD_HOLDER_NAME := null;--P_hd_Payment_Tbl(j).CREDIT_CARD_HOLDER_NAME;
1785 l_payment_tbl ( j ).CREDIT_CARD_EXPIRATION_DATE := null;--P_hd_Payment_Tbl(j).CREDIT_CARD_EXPIRATION_DATE;
1786 End If;
1787 l_payment_tbl ( j ).PAYMENT_TYPE_CODE := null;--P_hd_Payment_Tbl(j).PAYMENT_TYPE_CODE;
1788 l_payment_tbl ( j ).PAYMENT_REF_NUMBER := null;--P_hd_Payment_Tbl(j).PAYMENT_REF_NUMBER; -- bug 16591499
1789 End If;
1790 l_payment_tbl ( j ).CUST_PO_NUMBER := null;--P_hd_Payment_Tbl(j).CUST_PO_NUMBER;
1791 l_payment_tbl ( j ).PAYMENT_TERM_ID := null;--P_hd_Payment_Tbl(j).PAYMENT_TERM_ID;
1792
1793 End If;
1794 l_payment_tbl ( j ).cvv2 := Null;
1795 /* Code change for Quoting Usability Sun ER End */
1796 END LOOP;
1797
1798 If P_Copy_Quote_Control_Rec.Copy_Payment = FND_API.G_TRUE Then -- Code change for Quoting Usability Sun ER
1799
1800 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1801 aso_debug_pub.add('Copy_Header: Before call to copy_payment_row ', 1, 'Y');
1802 END IF;
1803
1804 aso_copy_quote_pvt.copy_payment_row(p_payment_rec => l_payment_tbl(1) ,
1805 x_return_status => l_return_status,
1806 x_msg_count => x_msg_count,
1807 x_msg_data => x_msg_data);
1808
1809 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1810 aso_debug_pub.add('Copy_Header: After call to copy_payment_row: x_return_status: '||l_return_status, 1, 'Y');
1811 END IF;
1812 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1813 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1814 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
1815 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
1816 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYHEADER AFTER_INSERT' , TRUE );
1817 FND_MSG_PUB.ADD;
1818 END IF;
1819 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1820 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
1821 x_return_status := FND_API.G_RET_STS_ERROR;
1822 RAISE FND_API.G_EXC_ERROR;
1823 END IF;
1824
1825 END IF;
1826
1827 End If; -- Code change for Quoting Usability Sun ER
1828
1829 -- End Copy payment record
1830
1831 -- Copy Notes,Task and Attachment related to quote header only if the control_rec flag is set
1832 IF P_Copy_Quote_Control_Rec.Copy_Note = FND_API.G_TRUE THEN
1833
1834 -- Checking the new version flag, if new version then creating reference otherwise creating new note
1835 -- see bug3805575 for more details
1836
1837 IF P_Copy_Quote_Control_Rec.New_Version = FND_API.G_TRUE THEN
1838
1839 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1840 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before copy_notes-l_old_qte_header_id ' || l_old_qte_header_id , 1 , 'N' );
1841 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before copy_notes-x_qte_header_id ' || x_qte_header_id , 1 , 'N' );
1842 aso_debug_pub.ADD ('Copy_Rows - Begin- before copy_notes ' , 1, 'N' );
1843 aso_debug_pub.ADD ('Copy_Rows - Begin- creating new reference for note ' , 1, 'N' );
1844 END IF;
1845
1846 ASO_NOTES_INT.COPY_NOTES (
1847 p_api_version => l_api_version
1848 , p_init_msg_list => FND_API.G_FALSE
1849 , p_commit => FND_API.G_FALSE
1850 , x_return_status => l_return_status
1851 , x_msg_count => x_msg_count
1852 , x_msg_data => x_msg_data
1853 , p_old_object_id => l_old_qte_header_id
1854 , p_new_object_id => x_qte_header_id
1855 , p_old_object_type_code => 'ASO_QUOTE'
1856 , p_new_object_type_code => 'ASO_QUOTE'
1857 );
1858 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1859 aso_debug_pub.ADD ( 'Copy_Rows - after copy_notes status' || l_return_status , 1 , 'Y' );
1860 END IF;
1861
1862 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1863 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1864 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
1865 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
1866 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYHEADER AFTER_NOTES' , TRUE );
1867 FND_MSG_PUB.ADD;
1868 END IF;
1869 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1870 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
1871 x_return_status := FND_API.G_RET_STS_ERROR;
1872 RAISE FND_API.G_EXC_ERROR;
1873 END IF;
1874
1875 ELSE -- this means new quote is being created
1876 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1877 aso_debug_pub.ADD ('Copy_Rows - Begin- creating new note ' , 1, 'N' );
1878 END IF;
1879 ASO_NOTES_INT.Copy_Notes_copy_quote (
1880 p_api_version => l_api_version
1881 , p_init_msg_list => FND_API.G_FALSE
1882 , p_commit => FND_API.G_FALSE
1883 , p_old_object_id => l_old_qte_header_id
1884 , p_new_object_id => x_qte_header_id
1885 , p_old_object_type_code => 'ASO_QUOTE'
1886 , p_new_object_type_code => 'ASO_QUOTE'
1887 , x_return_status => l_return_status
1888 , x_msg_count => x_msg_count
1889 , x_msg_data => x_msg_data
1890 );
1891 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1892 aso_debug_pub.ADD ( 'Copy_Rows - after Copy_Notes_copy_quote status' || l_return_status , 1 , 'Y' );
1893 END IF;
1894
1895 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1896 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1897 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
1898 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
1899 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYHEADER AFTER_NOTES' , TRUE );
1900 FND_MSG_PUB.ADD;
1901 END IF;
1902 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1903 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
1904 x_return_status := FND_API.G_RET_STS_ERROR;
1905 RAISE FND_API.G_EXC_ERROR;
1906 END IF;
1907
1908 END IF; -- end if for new version flag
1909
1910 END IF; -- end if for copy notes flag
1911
1912 IF P_Copy_Quote_Control_Rec.Copy_Task = FND_API.G_TRUE THEN
1913 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1914 aso_debug_pub.ADD ('Copy_Rows - Begin- before copy_tasks ' , 1, 'Y' );
1915 END IF;
1916
1917 ASO_TASK_INT.COPY_TASKS (
1918 p_api_version => l_api_version
1919 , p_init_msg_list => FND_API.G_FALSE
1920 , p_commit => FND_API.G_FALSE
1921 , x_return_status => l_return_status
1922 , x_msg_count => x_msg_count
1923 , x_msg_data => x_msg_data
1924 , p_old_object_id => l_old_qte_header_id
1925 , p_new_object_id => x_qte_header_id
1926 , p_old_object_type_code => 'ASO_QUOTE'
1927 , p_new_object_type_code => 'ASO_QUOTE'
1928 , p_new_object_name => l_qte_header_rec.quote_number
1929 || FND_GLOBAL.local_chr ( 45 )
1930 || l_qte_header_rec.quote_version ,
1931 p_quote_version_flag => P_Copy_Quote_Control_Rec.New_Version
1932 );
1933 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1934 aso_debug_pub.ADD ( 'Copy_Rows - after copy_tasks status' || l_return_status , 1 , 'Y' );
1935 END IF;
1936
1937 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1938 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1939 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
1940 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
1941 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYHEADER AFTER_TASKS' , TRUE );
1942 FND_MSG_PUB.ADD;
1943 END IF;
1944 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1945 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
1946 x_return_status := FND_API.G_RET_STS_ERROR;
1947 RAISE FND_API.G_EXC_ERROR;
1948 END IF;
1949
1950 END IF;
1951
1952 IF P_Copy_Quote_Control_Rec.Copy_Attachment = FND_API.G_TRUE THEN
1953 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1954 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before copy_attch ' , 1 , 'Y' );
1955 END IF;
1956
1957 ASO_ATTACHMENT_INT.COPY_ATTACHMENTS(
1958 p_api_version => l_api_version,
1959 p_old_object_code => 'ASO_QUOTE_HEADERS_ALL',
1960 p_new_object_code => 'ASO_QUOTE_HEADERS_ALL',
1961 p_old_object_id => l_old_qte_header_id,
1962 p_new_object_id => x_qte_header_id,
1963 x_return_status => l_return_status,
1964 x_msg_count => x_msg_count,
1965 x_msg_data => x_msg_data
1966 );
1967 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1968 aso_debug_pub.ADD ( 'Copy_Rows -After copy_attch ' || l_return_status , 1 , 'Y' );
1969 END IF;
1970
1971 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1972 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1973 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
1974 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
1975 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYHEADER AFTER_ATTACHMENTS' , TRUE );
1976 FND_MSG_PUB.ADD;
1977 END IF;
1978 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1979 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
1980 x_return_status := FND_API.G_RET_STS_ERROR;
1981 RAISE FND_API.G_EXC_ERROR;
1982 END IF;
1983
1984 END IF;
1985
1986 FOR j IN 1 .. l_price_adj_tbl.COUNT LOOP
1987 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1988 aso_debug_pub.ADD ( 'Copy_Header_Rows: lx_hd_price_adj_tbl(j).price_adjustment_id' || lx_hd_price_adj_tbl ( j ).price_adjustment_id , 1 , 'Y' );
1989 END IF;
1990
1991 X_Price_Index_Link_Tbl ( l_dup_price_adj_tbl ( j ).price_adjustment_id ) :=
1992 lx_hd_price_adj_tbl ( j ).price_adjustment_id;
1993 END LOOP;
1994
1995 -- Requirement CPQ-5
1996
1997 IF P_Copy_Quote_Control_Rec.New_Version = FND_API.G_FALSE THEN
1998 -- security changes
1999
2000 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2001 aso_debug_pub.ADD ( 'Copy_Header_Rows: value of ASO_API_ENABLE_SECURITY: ' || FND_PROFILE.VALUE ('ASO_API_ENABLE_SECURITY' ) , 1 , 'Y' );
2002 END IF;
2003
2004 l_qte_header_rec.batch_price_flag := FND_API.G_FALSE;
2005
2006 IF NVL ( FND_PROFILE.VALUE ('ASO_API_ENABLE_SECURITY' ), 'N' ) = 'Y' THEN
2007
2008 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2009 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: l_sales_team_prof: ' || l_sales_team_prof , 1 , 'N' );
2010 END IF;
2011
2012 If (P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_TRUE And
2013 P_Copy_Quote_Control_Rec.Copy_Sales_Team = FND_API.G_TRUE) Then -- Code change for Quoting Usability Sun ER
2014
2015 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2016 aso_debug_pub.ADD ( 'Copy_Header_Rows - Copy_To_Same_Customer is True and Copy_Sales_Team is True ', 1 , 'N' );
2017 END IF;
2018
2019 IF l_sales_team_prof = 'FULL' OR l_sales_team_prof = 'PARTIAL' THEN
2020
2021 OPEN C_Get_Old_Qte (l_old_qte_header_id);
2022 FETCH C_Get_Old_Qte INTO l_old_qte_num;
2023 CLOSE C_Get_Old_Qte;
2024
2025 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2026 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: l_old_qte_num: ' || l_old_qte_num , 1 , 'N' );
2027 END IF;
2028 FOR C_Sales_Team_Rec IN C_Get_Sales_Team(l_old_qte_num) LOOP
2029
2030 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2031 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: Add Res: Resource_Id: ' || C_Sales_Team_Rec.Resource_Id , 1 , 'N' );
2032 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: Add Res: Resource_Grp_Id: ' || C_Sales_Team_Rec.Resource_Grp_Id , 1 , 'N' );
2033 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: Add Res: l_qte_header_rec.Quote_Number: ' || l_qte_header_rec.Quote_Number , 1 , 'N' );
2034 END IF;
2035
2036 l_sequence := NULL;
2037
2038 ASO_QUOTE_ACCESSES_PKG.Insert_Row(
2039 px_ACCESS_ID => l_sequence,
2040 p_QUOTE_NUMBER => l_qte_header_rec.Quote_Number,
2041 p_RESOURCE_ID => C_Sales_Team_Rec.Resource_Id,
2042 p_RESOURCE_GRP_ID => C_Sales_Team_Rec.Resource_Grp_Id,
2043 p_CREATED_BY => G_USER_ID,
2044 p_CREATION_DATE => SYSDATE,
2045 p_LAST_UPDATED_BY => G_USER_ID,
2046 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2047 p_LAST_UPDATE_DATE => SYSDATE,
2048 p_REQUEST_ID => C_Sales_Team_Rec.Request_Id,
2049 p_PROGRAM_APPLICATION_ID => C_Sales_Team_Rec.Program_Application_Id,
2050 p_PROGRAM_ID => C_Sales_Team_Rec.Program_Id,
2051 p_PROGRAM_UPDATE_DATE => C_Sales_Team_Rec.Program_Update_Date,
2052 p_KEEP_FLAG => C_Sales_Team_Rec.Keep_Flag,
2053 p_UPDATE_ACCESS_FLAG => C_Sales_Team_Rec.Update_Access_Flag,
2054 p_CREATED_BY_TAP_FLAG => C_Sales_Team_Rec.Created_By_Tap_Flag,
2055 p_TERRITORY_ID => C_Sales_Team_Rec.Territory_Id,
2056 p_TERRITORY_SOURCE_FLAG => C_Sales_Team_Rec.Territory_Source_Flag,
2057 p_ROLE_ID => C_Sales_Team_Rec.Role_Id,
2058 p_ATTRIBUTE_CATEGORY => C_Sales_Team_Rec.ATTRIBUTE_CATEGORY,
2059 p_ATTRIBUTE1 => C_Sales_Team_Rec.ATTRIBUTE1,
2060 p_ATTRIBUTE2 => C_Sales_Team_Rec.ATTRIBUTE2,
2061 p_ATTRIBUTE3 => C_Sales_Team_Rec.ATTRIBUTE3,
2062 p_ATTRIBUTE4 => C_Sales_Team_Rec.ATTRIBUTE4,
2063 p_ATTRIBUTE5 => C_Sales_Team_Rec.ATTRIBUTE5,
2064 p_ATTRIBUTE6 => C_Sales_Team_Rec.ATTRIBUTE6,
2065 p_ATTRIBUTE7 => C_Sales_Team_Rec.ATTRIBUTE7,
2066 p_ATTRIBUTE8 => C_Sales_Team_Rec.ATTRIBUTE8,
2067 p_ATTRIBUTE9 => C_Sales_Team_Rec.ATTRIBUTE9,
2068 p_ATTRIBUTE10 => C_Sales_Team_Rec.ATTRIBUTE10,
2069 p_ATTRIBUTE11 => C_Sales_Team_Rec.ATTRIBUTE11,
2070 p_ATTRIBUTE12 => C_Sales_Team_Rec.ATTRIBUTE12,
2071 p_ATTRIBUTE13 => C_Sales_Team_Rec.ATTRIBUTE13,
2072 p_ATTRIBUTE14 => C_Sales_Team_Rec.ATTRIBUTE14,
2073 p_ATTRIBUTE15 => C_Sales_Team_Rec.ATTRIBUTE15,
2074 p_ATTRIBUTE16 => C_Sales_Team_Rec.ATTRIBUTE16,
2075 p_ATTRIBUTE17 => C_Sales_Team_Rec.ATTRIBUTE17,
2076 p_ATTRIBUTE18 => C_Sales_Team_Rec.ATTRIBUTE18,
2077 p_ATTRIBUTE19 => C_Sales_Team_Rec.ATTRIBUTE19,
2078 p_ATTRIBUTE20 => C_Sales_Team_Rec.ATTRIBUTE20,
2079 p_Object_Version_Number => C_Sales_Team_Rec.OBJECT_VERSION_NUMBER
2080 );
2081
2082 END LOOP;
2083
2084 ELSE
2085
2086 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2087 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: l_sales_team_prof : ' || l_sales_team_prof , 1 , 'N' );
2088 END IF;
2089
2090 ASO_SECURITY_INT.Add_SalesRep_QuoteCreator (
2091 p_init_msg_list => FND_API.G_FALSE
2092 , p_commit => FND_API.G_FALSE
2093 , p_Qte_Header_Rec => l_qte_header_rec
2094 , x_return_status => x_return_status
2095 , x_msg_count => x_msg_count
2096 , x_msg_data => x_msg_data
2097 );
2098 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2099 RAISE FND_API.G_EXC_ERROR;
2100 END IF;
2101 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2102 aso_debug_pub.ADD ( 'Copy_Header_Rows: After Add Salesrep: x_return_status: ' || x_return_status , 1 , 'N' );
2103 END IF;
2104 END IF; -- sales_team_prof
2105
2106 /* Code change for Quoting Usability Sun ER Start */
2107 ElsIf (P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_TRUE And
2108 P_Copy_Quote_Control_Rec.Copy_Sales_Team = FND_API.G_FALSE) Then
2109
2110 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2111 aso_debug_pub.ADD ( 'Copy_Header_Rows - Copy_To_Same_Customer is True and Copy_Sales_Team is False ', 1 , 'N' );
2112 END IF;
2113
2114 ASO_SECURITY_INT.Add_SalesRep_QuoteCreator (
2115 p_init_msg_list => FND_API.G_FALSE
2116 , p_commit => FND_API.G_FALSE
2117 , p_Qte_Header_Rec => l_qte_header_rec
2118 , x_return_status => x_return_status
2119 , x_msg_count => x_msg_count
2120 , x_msg_data => x_msg_data
2121 );
2122 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2123 RAISE FND_API.G_EXC_ERROR;
2124 END IF;
2125 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2126 aso_debug_pub.ADD ( 'Copy_Header_Rows: After Add Salesrep: x_return_status: ' || x_return_status , 1 , 'N' );
2127 END IF;
2128
2129 ElsIf (P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE) Then
2130
2131 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2132 aso_debug_pub.ADD ( 'Copy_Header_Rows - Copy_To_Same_Customer is False in Copy Sales Team flow', 1 , 'N' );
2133 END IF;
2134
2135 IF l_sales_team_prof = 'FULL' OR l_sales_team_prof = 'PARTIAL' THEN
2136
2137 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2138 aso_debug_pub.ADD ( 'Copy_Header_Rows: Before calling ASO_SECURITY_INT.Add_SalesRep_QuoteCreator ' , 1 , 'N' );
2139 END IF;
2140
2141 ASO_SECURITY_INT.Add_SalesRep_QuoteCreator (
2142 p_init_msg_list => FND_API.G_FALSE
2143 , p_commit => FND_API.G_FALSE
2144 , p_Qte_Header_Rec => l_qte_header_rec
2145 , x_return_status => x_return_status
2146 , x_msg_count => x_msg_count
2147 , x_msg_data => x_msg_data );
2148
2149 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2150 RAISE FND_API.G_EXC_ERROR;
2151 END IF;
2152 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2153 aso_debug_pub.ADD ( 'Copy_Header_Rows: After Add Salesrep: x_return_status: ' || x_return_status , 1 , 'N' );
2154 END IF;
2155 Else
2156 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2157 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: l_sales_team_prof : ' || l_sales_team_prof , 1 , 'N' );
2158 END IF;
2159
2160 OPEN C_Get_Old_Qte (l_old_qte_header_id);
2161 FETCH C_Get_Old_Qte INTO l_old_qte_num;
2162 CLOSE C_Get_Old_Qte;
2163
2164 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2165 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: l_old_qte_num: ' || l_old_qte_num , 1 , 'N' );
2166 END IF;
2167
2168 FOR C_Sales_Team_Rec IN C_Get_Sales_Team(l_old_qte_num) LOOP
2169
2170 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2171 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: Add Res: C_Sales_Team_Rec.Resource_Id: ' || C_Sales_Team_Rec.Resource_Id , 1 , 'N' );
2172 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: Add Res: C_Sales_Team_Rec.Resource_Grp_Id: ' || C_Sales_Team_Rec.Resource_Grp_Id , 1 , 'N' );
2173 aso_debug_pub.ADD ( 'Copy_Header_Rows: Sales_Team: Add Res: l_qte_header_rec.Quote_Number: ' || l_qte_header_rec.Quote_Number , 1 , 'N' );
2174 END IF;
2175
2176 l_sequence := NULL;
2177
2178 ASO_QUOTE_ACCESSES_PKG.Insert_Row(
2179 px_ACCESS_ID => l_sequence,
2180 p_QUOTE_NUMBER => l_qte_header_rec.Quote_Number,
2181 p_RESOURCE_ID => C_Sales_Team_Rec.Resource_Id,
2182 p_RESOURCE_GRP_ID => C_Sales_Team_Rec.Resource_Grp_Id,
2183 p_CREATED_BY => G_USER_ID,
2184 p_CREATION_DATE => SYSDATE,
2185 p_LAST_UPDATED_BY => G_USER_ID,
2186 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2187 p_LAST_UPDATE_DATE => SYSDATE,
2188 p_REQUEST_ID => C_Sales_Team_Rec.Request_Id,
2189 p_PROGRAM_APPLICATION_ID => C_Sales_Team_Rec.Program_Application_Id,
2190 p_PROGRAM_ID => C_Sales_Team_Rec.Program_Id,
2191 p_PROGRAM_UPDATE_DATE => C_Sales_Team_Rec.Program_Update_Date,
2192 p_KEEP_FLAG => C_Sales_Team_Rec.Keep_Flag,
2193 p_UPDATE_ACCESS_FLAG => C_Sales_Team_Rec.Update_Access_Flag,
2194 p_CREATED_BY_TAP_FLAG => C_Sales_Team_Rec.Created_By_Tap_Flag,
2195 p_TERRITORY_ID => C_Sales_Team_Rec.Territory_Id,
2196 p_TERRITORY_SOURCE_FLAG => C_Sales_Team_Rec.Territory_Source_Flag,
2197 p_ROLE_ID => C_Sales_Team_Rec.Role_Id,
2198 p_ATTRIBUTE_CATEGORY => C_Sales_Team_Rec.ATTRIBUTE_CATEGORY,
2199 p_ATTRIBUTE1 => C_Sales_Team_Rec.ATTRIBUTE1,
2200 p_ATTRIBUTE2 => C_Sales_Team_Rec.ATTRIBUTE2,
2201 p_ATTRIBUTE3 => C_Sales_Team_Rec.ATTRIBUTE3,
2202 p_ATTRIBUTE4 => C_Sales_Team_Rec.ATTRIBUTE4,
2203 p_ATTRIBUTE5 => C_Sales_Team_Rec.ATTRIBUTE5,
2204 p_ATTRIBUTE6 => C_Sales_Team_Rec.ATTRIBUTE6,
2205 p_ATTRIBUTE7 => C_Sales_Team_Rec.ATTRIBUTE7,
2206 p_ATTRIBUTE8 => C_Sales_Team_Rec.ATTRIBUTE8,
2207 p_ATTRIBUTE9 => C_Sales_Team_Rec.ATTRIBUTE9,
2208 p_ATTRIBUTE10 => C_Sales_Team_Rec.ATTRIBUTE10,
2209 p_ATTRIBUTE11 => C_Sales_Team_Rec.ATTRIBUTE11,
2210 p_ATTRIBUTE12 => C_Sales_Team_Rec.ATTRIBUTE12,
2211 p_ATTRIBUTE13 => C_Sales_Team_Rec.ATTRIBUTE13,
2212 p_ATTRIBUTE14 => C_Sales_Team_Rec.ATTRIBUTE14,
2213 p_ATTRIBUTE15 => C_Sales_Team_Rec.ATTRIBUTE15,
2214 p_ATTRIBUTE16 => C_Sales_Team_Rec.ATTRIBUTE16,
2215 p_ATTRIBUTE17 => C_Sales_Team_Rec.ATTRIBUTE17,
2216 p_ATTRIBUTE18 => C_Sales_Team_Rec.ATTRIBUTE18,
2217 p_ATTRIBUTE19 => C_Sales_Team_Rec.ATTRIBUTE19,
2218 p_ATTRIBUTE20 => C_Sales_Team_Rec.ATTRIBUTE20,
2219 p_Object_Version_Number => C_Sales_Team_Rec.OBJECT_VERSION_NUMBER);
2220 END LOOP;
2221 End If; -- l_sales_team_prof is None
2222 End If;
2223 /* Code change for Quoting Usability Sun ER End */
2224 END IF;
2225 -- end security changes
2226
2227 END IF;
2228
2229 x_return_status := FND_API.G_RET_STS_SUCCESS;
2230
2231 --
2232 -- End of API body
2233 --
2234
2235 -- Standard check for p_commit
2236 IF FND_API.to_Boolean ( p_commit ) THEN
2237 COMMIT WORK;
2238 END IF;
2239
2240 -- Standard call to get message count and if count is 1, get message info.
2241 FND_MSG_PUB.Count_And_Get (
2242 p_count => x_msg_count
2243 , p_data => x_msg_data
2244 );
2245
2246 EXCEPTION
2247
2248 WHEN FND_API.G_EXC_ERROR THEN
2249 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
2250 P_API_NAME => L_API_NAME
2251 , P_PKG_NAME => G_PKG_NAME
2252 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
2253 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
2254 , X_MSG_COUNT => X_MSG_COUNT
2255 , X_MSG_DATA => X_MSG_DATA
2256 , X_RETURN_STATUS => X_RETURN_STATUS
2257 );
2258
2259 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2260 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
2261 P_API_NAME => L_API_NAME
2262 , P_PKG_NAME => G_PKG_NAME
2263 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
2264 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
2265 , X_MSG_COUNT => X_MSG_COUNT
2266 , X_MSG_DATA => X_MSG_DATA
2267 , X_RETURN_STATUS => X_RETURN_STATUS
2268 );
2269
2270 WHEN OTHERS THEN
2271 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
2272 P_API_NAME => L_API_NAME
2273 , P_PKG_NAME => G_PKG_NAME
2274 , P_SQLCODE => SQLCODE
2275 , P_SQLERRM => SQLERRM
2276 , P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
2277 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
2278 , X_MSG_COUNT => X_MSG_COUNT
2279 , X_MSG_DATA => X_MSG_DATA
2280 , X_RETURN_STATUS => X_RETURN_STATUS
2281 );
2282
2283 END Copy_Header_Rows;
2284
2285
2286 PROCEDURE Copy_Line_Rows (
2287 P_Api_Version_Number IN NUMBER
2288 , P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE
2289 , P_Commit IN VARCHAR2 := FND_API.G_FALSE
2290 , P_Qte_Header_Id IN NUMBER
2291 , P_New_Qte_Header_Id IN NUMBER
2292 , P_Qte_Line_Id IN NUMBER := FND_API.G_MISS_NUM
2293 , P_Price_Index_Link_Tbl IN ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type
2294 , P_Copy_Quote_Control_Rec IN ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type
2295 , P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type
2296 , P_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type
2297 , X_Qte_Line_Id OUT NOCOPY /* file.sql.39 change */ NUMBER
2298 , X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2299 , X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER
2300 , X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
2301 ) IS
2302
2303 CURSOR c_line_relation (
2304 x_quote_header_id NUMBER
2305 ) IS
2306 SELECT LINE_RELATIONSHIP_ID, CREATION_DATE, CREATED_BY
2307 , LAST_UPDATED_BY, LAST_UPDATE_DATE, LAST_UPDATE_LOGIN
2308 , REQUEST_ID, PROGRAM_APPLICATION_ID, PROGRAM_ID
2309 , PROGRAM_UPDATE_DATE, QUOTE_LINE_ID, RELATED_QUOTE_LINE_ID
2310 , RELATIONSHIP_TYPE_CODE, RECIPROCAL_FLAG, OBJECT_VERSION_NUMBER
2311 FROM ASO_LINE_RELATIONSHIPS
2312 WHERE quote_line_id IN ( SELECT quote_line_id
2313 FROM aso_quote_lines_all
2314 WHERE quote_header_id = x_quote_header_id )
2315 AND relationship_type_code <> 'SERVICE';
2316
2317 CURSOR c_price_adj_rel (
2318 x_quote_header_id NUMBER
2319 ) IS
2320 SELECT apr.ADJ_RELATIONSHIP_ID, apr.CREATION_DATE, apr.CREATED_BY
2321 , apr.LAST_UPDATE_DATE, apr.LAST_UPDATED_BY
2322 , apr.LAST_UPDATE_LOGIN, apr.PROGRAM_APPLICATION_ID
2323 , apr.PROGRAM_ID, apr.PROGRAM_UPDATE_DATE, apr.REQUEST_ID
2324 , apr.QUOTE_LINE_ID, apr.PRICE_ADJUSTMENT_ID
2325 , apr.RLTD_PRICE_ADJ_ID , apr.OBJECT_VERSION_NUMBER
2326 FROM ASO_PRICE_ADJ_RELATIONSHIPS apr
2327 , ASO_PRICE_ADJUSTMENTS apa
2328 WHERE apr.price_adjustment_id = apa.price_adjustment_id
2329 AND apa.quote_header_id = x_quote_header_id
2330 AND EXISTS ( SELECT 'x'
2331 FROM aso_quote_lines_all aql
2332 WHERE aql.quote_header_id = x_quote_header_id
2333 AND apr.quote_line_id = aql.quote_line_id );
2334
2335 CURSOR C_Serviceable_Product (
2336 l_organization_id NUMBER
2337 , l_inv_item_id NUMBER
2338 ) IS
2339 SELECT serviceable_product_flag, service_item_flag
2340 FROM MTL_SYSTEM_ITEMS_VL
2341 WHERE inventory_item_id = l_inv_item_id
2342 AND organization_id = l_organization_id;
2343
2344 CURSOR C_Get_Ship_Id (
2345 lc_line_id NUMBER
2346 ) IS
2347 SELECT shipment_id
2348 FROM ASO_SHIPMENTS
2349 WHERE quote_line_id = lc_line_id;
2350
2351 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
2352 l_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
2353 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
2354 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
2355 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
2356 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
2357 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
2358 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
2359 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
2360 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
2361 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
2362 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
2363 lx_ln_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
2364 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
2365 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type := p_control_rec; -- Code change for Quoting Usability Sun ER
2366 l_price_index_link_tbl ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type
2367 := P_Price_Index_Link_Tbl;
2368 l_line_index_link_tbl ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type;
2369 l_qte_line_id NUMBER;
2370 l_index NUMBER;
2371 l_index_2 NUMBER;
2372 l_service_ref_line_id NUMBER;
2373 l_config_control_rec ASO_CFG_INT.Control_Rec_Type
2374 := ASO_CFG_INT.G_MISS_Control_Rec;
2375 l_old_config_header_id NUMBER;
2376 l_old_config_revision_num NUMBER;
2377 l_config_hdr_id NUMBER;
2378 l_config_rev_nbr NUMBER;
2379 LX_PRICE_ADJ_RLTSHIP_ID NUMBER;
2380 LX_LINE_RELATIONSHIP_ID NUMBER;
2381 X_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
2382 X_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
2383 X_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
2384 l_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
2385 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
2386 l_quote_party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
2387 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
2388 l_sales_credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
2389 l_api_version CONSTANT NUMBER := 1.0;
2390 l_api_name CONSTANT VARCHAR2 ( 30 ) := 'Copy_Line_Rows';
2391 l_service_item_flag VARCHAR2 ( 1 );
2392 l_serviceable_product_flag VARCHAR2 ( 1 );
2393 l_return_status VARCHAR2 ( 1 );
2394 l_api_version_number CONSTANT NUMBER := 1.0;
2395 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
2396 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
2397 l_ship_id NUMBER;
2398 l_orig_item_id_tbl CZ_API_PUB.number_tbl_type;
2399 l_new_item_id_tbl CZ_API_PUB.number_tbl_type;
2400 -- hyang: for bug 2692785
2401 lx_status VARCHAR2(1);
2402
2403 l_dup_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
2404
2405 --- New Code added for Copy Quote Line Functionality
2406
2407 CURSOR C_Validate_Quote_Line (
2408 x_qte_header_id NUMBER,
2409 x_qte_line_id NUMBER
2410 ) IS
2411 SELECT 'X'
2412 FROM ASO_QUOTE_LINES_ALL
2413 WHERE quote_header_id = x_qte_header_id
2414 AND quote_line_id = x_qte_line_id;
2415
2416 CURSOR c_line_relation_from_line_id (
2417 x_quote_line_id NUMBER
2418 ) IS
2419 SELECT LINE_RELATIONSHIP_ID, CREATION_DATE, CREATED_BY
2420 , LAST_UPDATED_BY, LAST_UPDATE_DATE, LAST_UPDATE_LOGIN
2421 , REQUEST_ID, PROGRAM_APPLICATION_ID, PROGRAM_ID
2422 , PROGRAM_UPDATE_DATE, QUOTE_LINE_ID, RELATED_QUOTE_LINE_ID
2423 , RELATIONSHIP_TYPE_CODE, RECIPROCAL_FLAG, OBJECT_VERSION_NUMBER
2424 FROM ASO_LINE_RELATIONSHIPS
2425 WHERE relationship_type_code <> 'SERVICE'
2426 CONNECT BY PRIOR related_quote_line_id = quote_line_id
2427 START WITH quote_line_id = x_quote_line_id;
2428
2429 CURSOR c_price_adj_rel_from_line_id (
2430 x_quote_line_id NUMBER
2431 ) IS
2432 SELECT apr.ADJ_RELATIONSHIP_ID, apr.CREATION_DATE, apr.CREATED_BY
2433 , apr.LAST_UPDATE_DATE, apr.LAST_UPDATED_BY
2434 , apr.LAST_UPDATE_LOGIN, apr.PROGRAM_APPLICATION_ID
2435 , apr.PROGRAM_ID, apr.PROGRAM_UPDATE_DATE, apr.REQUEST_ID
2436 , apr.QUOTE_LINE_ID, apr.PRICE_ADJUSTMENT_ID
2437 , apr.RLTD_PRICE_ADJ_ID
2438 , apr.OBJECT_VERSION_NUMBER
2439 FROM ASO_PRICE_ADJ_RELATIONSHIPS apr
2440 , ASO_PRICE_ADJUSTMENTS apa
2441 WHERE apr.price_adjustment_id = apa.price_adjustment_id
2442 AND apr.quote_line_id = x_quote_line_id
2443 AND apa.quote_line_id = x_quote_line_id
2444 AND apa.modifier_line_type_code <> 'PRG';
2445
2446 l_val varchar2(1);
2447 l_appl_param_rec CZ_API_PUB.appl_param_rec_type;
2448 l_last_update_date DATE;
2449 l_line_number NUMBER;
2450
2451
2452 Cursor C_Get_quote(c_QUOTE_HEADER_ID Number) IS
2453 Select
2454 LAST_UPDATE_DATE
2455 From ASO_QUOTE_HEADERS_ALL
2456 Where QUOTE_HEADER_ID = c_QUOTE_HEADER_ID;
2457
2458 Cursor Get_Max_Line_Number ( c_QUOTE_HEADER_ID Number) IS
2459 Select Max(Line_number)
2460 From ASO_QUOTE_LINES_ALL
2461 WHERE quote_header_id = c_QUOTE_HEADER_ID;
2462
2463 x_qte_header_rec aso_quote_pub.qte_header_rec_type;
2464 x_qte_line_tbl aso_quote_pub.qte_line_tbl_type;
2465 x_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type;
2466 x_hd_price_attributes_tbl aso_quote_pub.price_attributes_tbl_type;
2467 x_hd_payment_tbl aso_quote_pub.payment_tbl_type;
2468 x_hd_shipment_tbl aso_quote_pub.shipment_tbl_type;
2469 x_hd_freight_charge_tbl aso_quote_pub.freight_charge_tbl_type;
2470 x_hd_tax_detail_tbl aso_quote_pub.tax_detail_tbl_type;
2471 x_line_attr_ext_tbl aso_quote_pub.line_attribs_ext_tbl_type;
2472 x_line_rltship_tbl aso_quote_pub.line_rltship_tbl_type;
2473 x_price_adjustment_tbl aso_quote_pub.price_adj_tbl_type;
2474 x_price_adj_attr_tbl aso_quote_pub.price_adj_attr_tbl_type;
2475 x_price_adj_rltship_tbl aso_quote_pub.price_adj_rltship_tbl_type;
2476 x_ln_price_attributes_tbl aso_quote_pub.price_attributes_tbl_type;
2477 x_ln_payment_tbl aso_quote_pub.payment_tbl_type;
2478 x_ln_shipment_tbl aso_quote_pub.shipment_tbl_type;
2479 x_ln_freight_charge_tbl aso_quote_pub.freight_charge_tbl_type;
2480 x_ln_tax_detail_tbl aso_quote_pub.tax_detail_tbl_type;
2481 l_Qte_Header_Rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_MISS_Qte_Header_Rec;
2482
2483 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
2484 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
2485 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
2486 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
2487 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
2488 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
2489 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
2490 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
2491 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
2492 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
2493 l_ato_model VARCHAR2(1) := FND_API.G_FALSE;
2494
2495 /* Code change for Quoting Usability Sun ER Start */
2496 CURSOR c_header_org IS
2497 SELECT org_id FROM aso_quote_headers_all
2498 WHERE quote_header_id = P_Qte_Header_Id;
2499
2500 l_header_org_id NUMBER;
2501
2502 l_copy_flag VARCHAR2(1) := 'T';
2503 l_def_control_rec ASO_DEFAULTING_INT.Control_Rec_Type := ASO_DEFAULTING_INT.G_MISS_CONTROL_REC;
2504 l_db_object_name VARCHAR2(30);
2505 l_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Payment_REC;
2506 lx_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
2507 lx_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
2508 lx_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
2509 lx_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type;
2510 lx_ln_misc_rec ASO_DEFAULTING_INT.Line_Misc_Rec_Type;
2511 lx_ln_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
2512 lx_ln_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
2513 lx_ln_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
2514 lx_changed_flag VARCHAR2(1);
2515 l_def_Qte_Line_Rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_qte_line_REC;
2516
2517 l_check_service_rec ASO_SERVICE_CONTRACTS_INT.CHECK_SERVICE_REC_TYPE;
2518
2519 x_available_yn Varchar2(1);
2520
2521 cursor c_service_ref_quote (P_Quote_line_id number) is
2522 select service_ref_line_id
2523 from aso_quote_line_Details
2524 where quote_line_id= P_Quote_line_id
2525 and service_ref_type_code ='QUOTE';
2526
2527 l_return_value Varchar2(1);
2528
2529 CURSOR C_AGREEMENT(P_AGREEMENT_ID IN NUMBER,P_INVOICE_TO_CUSTOMER_ID IN NUMBER) IS
2530 SELECT 'x'
2531 FROM OE_AGREEMENTS_VL
2532 WHERE AGREEMENT_ID = P_AGREEMENT_ID
2533 AND INVOICE_TO_CUSTOMER_ID = P_INVOICE_TO_CUSTOMER_ID;
2534
2535 l_var varchar2(1);
2536
2537 /* Code change for Quoting Usability Sun ER End */
2538
2539 BEGIN
2540
2541 -- Standard Start of API savepoint
2542 SAVEPOINT COPY_LINE_ROWS_PVT;
2543
2544 -- Standard call to check for call compatibility.
2545 IF NOT FND_API.Compatible_API_Call (
2546 l_api_version_number
2547 , p_api_version_number
2548 , l_api_name
2549 , G_PKG_NAME
2550 ) THEN
2551 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2552 END IF;
2553
2554 -- Initialize message list if p_init_msg_list is set to TRUE.
2555 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
2556 FND_MSG_PUB.initialize;
2557 END IF;
2558
2559 -- Debug Message
2560 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW ) THEN
2561 FND_MESSAGE.Set_Name ('ASO' , 'Copy Quote Lines API: Start' );
2562 FND_MSG_PUB.ADD;
2563 END IF;
2564
2565 -- Initialize API return status to success
2566 x_return_status := FND_API.G_RET_STS_SUCCESS;
2567
2568 --
2569 -- API body
2570 --
2571
2572 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2573 aso_debug_pub.ADD ('Copy_Rows - Header and Lines' , 1, 'N' );
2574 END IF;
2575
2576 -- hyang: for bug 2692785
2577 IF P_Qte_Header_Rec.batch_price_flag <> FND_API.G_FALSE THEN
2578
2579 ASO_CONC_REQ_INT.Lock_Exists(
2580 p_quote_header_id => p_qte_header_id,
2581 x_status => lx_status);
2582
2583 IF (lx_status = FND_API.G_TRUE) THEN
2584 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2585 FND_MESSAGE.Set_Name('ASO', 'ASO_CONC_REQUEST_RUNNING');
2586 FND_MSG_PUB.ADD;
2587 END IF;
2588 RAISE FND_API.G_EXC_ERROR;
2589 END IF;
2590
2591 END IF;
2592
2593
2594 l_qte_line_tbl :=
2595 ASO_UTILITY_PVT.Query_Qte_Line_Rows ( p_qte_header_id );
2596
2597 /* Code change for Quoting Usability Sun ER Start */
2598
2599 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
2600
2601 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2602 aso_debug_pub.add('Copy_Line_Rows - P_Copy_Quote_Control_Rec.Copy_To_Same_Customer is FALSE ', 1, 'Y');
2603 END IF ;
2604
2605 OPEN c_header_org;
2606 FETCH c_header_org INTO l_header_org_id;
2607 CLOSE c_header_org;
2608
2609 FOR i in 1..l_qte_line_tbl.count LOOP
2610
2611 l_qte_line_tbl ( i ).INVOICE_TO_PARTY_SITE_ID := Null;
2612 l_qte_line_tbl ( i ).INVOICE_TO_PARTY_ID := Null;
2613 l_qte_line_tbl ( i ).INVOICE_TO_CUST_ACCOUNT_ID := Null;
2614 l_qte_line_tbl ( i ).INVOICE_TO_CUST_PARTY_ID := Null;
2615
2616 l_qte_line_tbl ( i ).END_CUSTOMER_PARTY_ID := Null;
2617 l_qte_line_tbl ( i ).END_CUSTOMER_PARTY_SITE_ID := Null;
2618 l_qte_line_tbl ( i ).END_CUSTOMER_CUST_ACCOUNT_ID := Null;
2619 l_qte_line_tbl ( i ).END_CUSTOMER_CUST_PARTY_ID := Null;
2620
2621 l_qte_line_tbl( i ).PRICE_LIST_ID := Null;
2622 l_qte_line_tbl( i ).CURRENCY_CODE := Null;
2623
2624 IF (l_qte_line_tbl(i).AGREEMENT_ID IS NOT NULL AND
2625 l_qte_line_tbl(i).AGREEMENT_ID <> FND_API.G_MISS_NUM) THEN
2626
2627 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2628 aso_debug_pub.add('Copy_Line_Rows - l_qte_line_tbl('||i||').AGREEMENT_ID : '||l_qte_line_tbl(i).AGREEMENT_ID, 1, 'Y');
2629 aso_debug_pub.add('Copy_Line_Rows - l_qte_line_tbl('||i||').INVOICE_TO_CUST_ACCOUNT_ID : '||l_qte_line_tbl(i).INVOICE_TO_CUST_ACCOUNT_ID, 1, 'Y');
2630 END IF ;
2631
2632 Open C_AGREEMENT(l_qte_line_tbl(i).AGREEMENT_ID,l_qte_line_tbl(i).INVOICE_TO_CUST_ACCOUNT_ID);
2633 Fetch C_AGREEMENT Into l_var;
2634 Close C_AGREEMENT;
2635
2636 If C_AGREEMENT%Found Then
2637 l_qte_line_tbl(i).AGREEMENT_ID := Null;
2638 End If;
2639 End If;
2640
2641 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(l_qte_line_tbl(i).quote_header_id,l_qte_line_tbl(i).quote_line_id);
2642
2643 IF (l_shipment_tbl.COUNT > 0) then
2644 l_shipment_tbl(1).SHIP_TO_CUST_ACCOUNT_ID := Null;
2645 l_shipment_tbl(1).SHIP_TO_CUST_PARTY_ID := Null;
2646 l_shipment_tbl(1).SHIP_TO_PARTY_ID := Null;
2647 l_shipment_tbl(1).SHIP_TO_PARTY_SITE_ID := Null;
2648 l_shipment_tbl(1).SHIP_TO_PARTY_NAME := Null;
2649 l_shipment_tbl(1).SHIP_TO_CONTACT_FIRST_NAME := Null;
2650 l_shipment_tbl(1).SHIP_TO_CONTACT_MIDDLE_NAME := Null;
2651 l_shipment_tbl(1).SHIP_TO_CONTACT_LAST_NAME := Null;
2652 l_shipment_tbl(1).SHIP_TO_ADDRESS1 := Null;
2653 l_shipment_tbl(1).SHIP_TO_ADDRESS2 := Null;
2654 l_shipment_tbl(1).SHIP_TO_ADDRESS3 := Null;
2655 l_shipment_tbl(1).SHIP_TO_ADDRESS4 := Null;
2656 l_shipment_tbl(1).SHIP_TO_COUNTRY_CODE := Null;
2657 l_shipment_tbl(1).SHIP_TO_COUNTRY := Null;
2658 l_shipment_tbl(1).SHIP_TO_CITY := Null;
2659 l_shipment_tbl(1).SHIP_TO_POSTAL_CODE := Null;
2660 l_shipment_tbl(1).SHIP_TO_STATE := Null;
2661 l_shipment_tbl(1).SHIP_TO_PROVINCE := Null;
2662 l_shipment_tbl(1).SHIP_TO_COUNTY := Null;
2663 END IF;
2664
2665 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(l_qte_line_tbl(i).quote_header_id,l_qte_line_tbl(i).quote_line_id);
2666
2667 IF (l_payment_tbl.COUNT > 0) then
2668 If l_payment_tbl(1).PAYMENT_TYPE_CODE In ('CHECK','CREDIT_CARD') Then
2669 If l_payment_tbl(1).PAYMENT_TYPE_CODE = 'CREDIT_CARD' Then
2670 l_payment_tbl(1).CREDIT_CARD_CODE := Null;
2671 l_payment_tbl(1).CREDIT_CARD_HOLDER_NAME := Null;
2672 l_payment_tbl(1).CREDIT_CARD_EXPIRATION_DATE := Null;
2673 l_payment_tbl(1).cvv2 := Null;
2674 End If;
2675 l_payment_tbl(1).PAYMENT_TYPE_CODE := NULL;
2676 l_payment_tbl(1).PAYMENT_REF_NUMBER := Null;
2677 End If;
2678 l_payment_tbl(1).CUST_PO_NUMBER := Null;
2679 l_payment_tbl(1).CUST_PO_LINE_NUMBER := Null;
2680 l_payment_tbl(1).PAYMENT_TERM_ID := Null;
2681 END IF;
2682
2683 -- Line level defaulting for different customer
2684
2685 If l_control_rec.defaulting_fwk_flag = 'Y' Then
2686
2687 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2688 aso_debug_pub.add('Copy_Line_Rows - l_header_org_id'||l_header_org_id, 1, 'Y');
2689 aso_debug_pub.add('Copy_Line_Rows - before defaulting framework', 1, 'Y');
2690 aso_debug_pub.add('Copy_Line_Rows - populate defaulting control record from the header control record', 1, 'Y');
2691 END IF ;
2692
2693 l_def_Qte_Line_Rec := l_qte_line_tbl(i);
2694 l_def_Qte_Line_Rec.org_id := l_header_org_id;
2695
2696 l_def_control_rec.Dependency_Flag := FND_API.G_TRUE;
2697 l_def_control_rec.Defaulting_Flag := FND_API.G_TRUE;
2698 l_def_control_rec.Application_Type_Code := 'QUOTING HTML';
2699 l_def_control_rec.Defaulting_Flow_Code := 'CREATE';
2700 l_db_object_name := ASO_QUOTE_HEADERS_PVT.G_QUOTE_LINE_DB_NAME;
2701
2702 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2703 aso_debug_pub.add('Copy_Line_Rows - Dependency_Flag: '|| l_def_control_rec.Dependency_Flag, 1, 'Y');
2704 aso_debug_pub.add('Copy_Line_Rows - Defaulting_Flag: '|| l_def_control_rec.Defaulting_Flag, 1, 'Y');
2705 aso_debug_pub.add('Copy_Line_Rows - Application_Type_Code: '|| l_def_control_rec.Application_Type_Code, 1, 'Y');
2706 aso_debug_pub.add('Copy_Line_Rows - Defaulting_Flow_Code: '|| l_def_control_rec.Defaulting_Flow_Code, 1, 'Y');
2707 END IF ;
2708
2709 IF (l_shipment_tbl.COUNT > 0) then
2710 l_shipment_rec := l_shipment_tbl(1);
2711 END IF;
2712
2713 IF (l_payment_tbl.COUNT > 0) then
2714 l_payment_rec := l_payment_tbl(1);
2715 END IF;
2716
2717 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2718 aso_debug_pub.add('Copy_Line_Rows - before call to ASO_DEFAULTING_INT.Default_Entity', 1, 'Y');
2719 END IF ;
2720
2721 ASO_DEFAULTING_INT.Default_Entity ( p_api_version => 1.0,
2722 p_control_rec => l_def_control_rec,
2723 p_database_object_name => l_db_object_name,
2724 p_quote_line_rec => l_def_Qte_Line_Rec,
2725 p_line_shipment_rec => l_shipment_rec,
2726 p_line_payment_rec => l_payment_rec,
2727 x_quote_header_rec => l_qte_header_rec,
2728 x_header_misc_rec => lx_hd_misc_rec,
2729 x_header_shipment_rec => lx_hd_shipment_rec,
2730 x_header_payment_rec => lx_hd_payment_rec,
2731 x_header_tax_detail_rec => lx_hd_tax_detail_rec,
2732 x_quote_line_rec => lx_qte_line_rec,
2733 x_line_misc_rec => lx_ln_misc_rec,
2734 x_line_shipment_rec => lx_ln_shipment_rec,
2735 x_line_payment_rec => lx_ln_payment_rec,
2736 x_line_tax_detail_rec => lx_ln_tax_detail_rec,
2737 x_changed_flag => lx_changed_flag,
2738 x_return_status => x_return_status,
2739 x_msg_count => x_msg_count,
2740 x_msg_data => x_msg_data );
2741
2742 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2743 aso_debug_pub.add('Copy_Line_Rows: After call to ASO_DEFAULTING_INT.Default_Entity', 1, 'Y');
2744 aso_debug_pub.add('Copy_Line_Rows: x_return_status: '|| x_return_status, 1, 'Y');
2745 End If;
2746
2747 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2748
2749 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2750 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_DEFAULTING');
2751 FND_MSG_PUB.ADD;
2752 END IF;
2753
2754 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2755 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2756 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2757 RAISE FND_API.G_EXC_ERROR;
2758 END IF;
2759 END IF;
2760
2761 l_qte_line_tbl(i) := lx_qte_line_rec;
2762
2763 IF aso_quote_headers_pvt.Shipment_Null_Rec_Exists(lx_ln_shipment_rec, l_db_object_name) THEN
2764 l_shipment_tbl(i) := lx_ln_shipment_rec;
2765 END IF;
2766
2767 IF aso_quote_headers_pvt.Payment_Null_Rec_Exists(lx_ln_payment_rec, l_db_object_name) THEN
2768 l_payment_tbl(i) := lx_ln_payment_rec;
2769 END IF;
2770
2771 End If;
2772
2773 END LOOP;
2774
2775 End If; -- Copy_To_Same_Customer = FND_API.G_FALSE
2776 /* Code change for Quoting Usability Sun ER End */
2777
2778 FOR i IN 1 .. l_qte_line_tbl.COUNT LOOP
2779 l_line_index_link_tbl ( l_qte_line_tbl ( i ).quote_line_id ) :=
2780 FND_API.G_MISS_NUM;
2781 END LOOP;
2782
2783 --- New Code added for Copy Quote Line Functionality
2784 IF ( P_Qte_Line_Id IS NOT NULL ) AND (P_Qte_Line_Id <> FND_API.G_MISS_NUM) THEN
2785
2786 -- Validating if the quote_line_id belongs to the qte_header_id
2787
2788 OPEN C_Validate_Quote_Line ( P_Qte_Header_Id, P_Qte_Line_Id);
2789 FETCH C_Validate_Quote_Line INTO l_val;
2790
2791
2792 IF C_Validate_Quote_Line%NOTFOUND THEN
2793 x_return_status := FND_API.G_RET_STS_ERROR;
2794 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
2795 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_INVALID_ID' );
2796 FND_MESSAGE.Set_Token ('COLUMN' , 'ORIGINAL_QUOTE_ID', FALSE );
2797 FND_MESSAGE.Set_Token ( 'VALUE' , TO_CHAR ( P_Qte_Line_Id ) , FALSE );
2798 FND_MSG_PUB.ADD;
2799 END IF;
2800 CLOSE C_Validate_Quote_Line;
2801 RAISE FND_API.G_EXC_ERROR;
2802 END IF;
2803
2804 CLOSE C_Validate_Quote_Line;
2805
2806 -- Validate for the last update of the quote
2807
2808
2809 Open C_Get_quote( P_Qte_Header_Id);
2810
2811 Fetch C_Get_quote into l_LAST_UPDATE_DATE;
2812 If ( C_Get_quote%NOTFOUND) Then
2813
2814 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2815 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_UPDATE_TARGET');
2816 FND_MESSAGE.Set_Token ('INFO', 'quote', FALSE);
2817 FND_MSG_PUB.Add;
2818 END IF;
2819 raise FND_API.G_EXC_ERROR;
2820 END IF;
2821 Close C_Get_quote;
2822
2823 If (l_last_update_date is NULL or
2824 l_last_update_date = FND_API.G_MISS_Date ) Then
2825 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2826 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
2827 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
2828 FND_MSG_PUB.ADD;
2829 END IF;
2830 raise FND_API.G_EXC_ERROR;
2831 End if;
2832
2833 -- Check Whether record has been changed by someone else
2834 If (l_last_update_date <> p_qte_header_rec.last_update_date) Then
2835 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2836 FND_MESSAGE.Set_Name('ASO', 'ASO_API_RECORD_CHANGED');
2837 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
2838 FND_MSG_PUB.ADD;
2839 END IF;
2840 raise FND_API.G_EXC_ERROR;
2841 End if;
2842
2843 -- end validation for last update data
2844
2845
2846
2847 l_qte_line_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL ;
2848 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row ( P_Qte_Line_Id );
2849 l_qte_line_tbl(1) := l_qte_line_rec;
2850
2851
2852
2853 -- Getting the quote line detail record
2854 l_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows ( P_Qte_Line_Id );
2855
2856
2857 IF l_qte_line_rec.line_category_code = 'RETURN' THEN
2858 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2859 aso_debug_pub.ADD ('l_qte_line_dtl_tbl.count' , 1, 'N' );
2860 END IF;
2861
2862 IF l_qte_line_dtl_tbl.count > 0 THEN
2863
2864 IF ( l_qte_line_dtl_tbl(1).RETURN_REF_TYPE = 'SALES ORDER' AND
2865 l_qte_line_dtl_tbl(1).RETURN_REF_LINE_ID IS NOT NULL AND
2866 l_qte_line_dtl_tbl(1).INSTANCE_ID IS NOT NULL )
2867 OR ( l_qte_line_dtl_tbl(1).REF_TYPE_CODE = 'TOP_MODEL' ) THEN
2868 x_return_status := FND_API.G_RET_STS_ERROR;
2869
2870 /* Code change for Quoting Usability Sun ER Start */
2871 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
2872 l_copy_flag:='F';
2873 End If;
2874 /* Code change for Quoting Usability Sun ER End */
2875
2876 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2877 aso_debug_pub.ADD ('Install Base Check Failed' , 1, 'N' );
2878 END IF;
2879
2880 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
2881 FND_MESSAGE.Set_Name ('ASO' , 'ASO_RECONFIG_ITM_ERR' );
2882 FND_MSG_PUB.ADD;
2883 END IF;
2884
2885 END IF;
2886
2887 END IF;
2888
2889 END IF;
2890
2891
2892 /*
2893 -- Validating if the item is a container item
2894 l_appl_param_rec.calling_application_id := nvl(FND_PROFILE.value('JTF_PROFILE_DEFAULT_APPLICATION'),697);
2895
2896 cz_network_api_pub.is_container(p_api_version => 1.0
2897 ,p_inventory_item_id => l_qte_line_rec.inventory_item_id
2898 ,p_organization_id => l_qte_line_rec.organization_id
2899 ,p_appl_param_rec => l_appl_param_rec
2900 ,x_return_value => l_return_value
2901 ,x_return_status => l_return_status
2902 ,x_msg_count => x_msg_count
2903 ,x_msg_data => x_msg_data );
2904
2905 IF ( l_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
2906
2907 IF l_return_value = 'Y' THEN
2908 x_return_status := FND_API.G_RET_STS_ERROR;
2909 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
2910 FND_MESSAGE.Set_Name ('ASO' , 'ASO_RECONFIG_ITM_ERR' );
2911 FND_MSG_PUB.ADD;
2912 END IF;
2913 RAISE FND_API.G_EXC_ERROR;
2914 END IF;
2915
2916 ELSE
2917 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2918 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
2919 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
2920 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_CONFIG_COPY' , TRUE );
2921 FND_MSG_PUB.ADD;
2922 END IF;
2923 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2924
2925 END IF;
2926 */
2927
2928
2929 IF l_qte_line_rec.item_type_code = 'CFG' then
2930 x_return_status := FND_API.G_RET_STS_ERROR;
2931
2932 /* Code change for Quoting Usability Sun ER Start */
2933 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
2934 l_copy_flag:='F';
2935
2936 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2937 aso_debug_pub.ADD ('Copy_Line_Rows : ASO_CFG_ITM_ERR error' , 1, 'N' );
2938 END IF;
2939 End If;
2940 /* Code change for Quoting Usability Sun ER End */
2941
2942 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
2943 FND_MESSAGE.Set_Name ('ASO' , 'ASO_CFG_ITM_ERR' );
2944 FND_MSG_PUB.ADD;
2945 END IF;
2946 RAISE FND_API.G_EXC_ERROR;
2947
2948 END IF;
2949
2950
2951 -- Check to see if it is a servicable product
2952
2953 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2954 aso_debug_pub.ADD ( 'service item flag = ' || l_qte_line_rec.service_item_flag , 1 , 'N' );
2955 END IF;
2956 IF l_qte_line_rec.service_item_flag = 'Y' THEN
2957
2958 x_return_status := FND_API.G_RET_STS_ERROR;
2959
2960 /* Code change for Quoting Usability Sun ER Start */
2961 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
2962 l_copy_flag:='F';
2963
2964 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2965 aso_debug_pub.ADD ('Copy_Line_Rows : ASO_SRV_ITM_ERR error' , 1, 'N' );
2966 END IF;
2967 End If;
2968 /* Code change for Quoting Usability Sun ER End */
2969
2970 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
2971 FND_MESSAGE.Set_Name ('ASO' , 'ASO_SRV_ITM_ERR' );
2972 FND_MSG_PUB.ADD;
2973 END IF;
2974
2975 RAISE FND_API.G_EXC_ERROR;
2976
2977 END IF;
2978
2979 -- Set the variables to null as they are re-used later on
2980 l_service_item_flag := NULL;
2981 l_serviceable_product_flag := NULL;
2982
2983 END IF;
2984 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2985 aso_debug_pub.ADD ('End Of New Code ' , 1, 'N' );
2986 END IF;
2987
2988 -- End of New Code added
2989
2990 FOR i IN 1 .. l_qte_line_tbl.COUNT LOOP
2991
2992 IF l_qte_line_tbl ( i ).uom_code = 'ENR' THEN
2993 x_return_status := FND_API.G_RET_STS_ERROR;
2994
2995 /* Code change for Quoting Usability Sun ER Start */
2996 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
2997 l_copy_flag:='F';
2998
2999 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3000 aso_debug_pub.ADD ('Copy_Line_Rows : ASO_CANNOT_COPY_EDU error' , 1, 'N' );
3001 END IF;
3002 End If;
3003 /* Code change for Quoting Usability Sun ER End */
3004
3005 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
3006 FND_MESSAGE.Set_Name ('ASO' , 'ASO_CANNOT_COPY_EDU' );
3007 FND_MSG_PUB.ADD;
3008 END IF;
3009 RAISE FND_API.G_EXC_ERROR;
3010 END IF;
3011
3012 l_qte_line_tbl ( i ).quote_header_id := P_New_Qte_Header_Id;
3013 l_qte_line_id := l_qte_line_tbl ( i ).quote_line_id;
3014
3015 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3016 aso_debug_pub.ADD ( 'qte line id = ' || l_qte_line_id, 1, 'N' );
3017 aso_debug_pub.ADD ( 'i = ' || i, 1, 'N' );
3018 aso_debug_pub.ADD ( 'item_type_code = ' || l_qte_line_tbl ( i ).item_type_code , 1 , 'N' );
3019 END IF;
3020
3021 IF l_line_index_link_tbl ( l_qte_line_id ) = FND_API.G_MISS_NUM THEN
3022
3023 l_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows ( l_qte_line_id );
3024
3025 /* Code change for Quoting Usability Sun ER Start */
3026 -- Validation check for Trade in product
3027 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
3028 IF (l_qte_line_tbl(i).item_type_code = 'STD' ) and ( l_qte_line_tbl(i).line_category_code = 'RETURN' )THEN
3029 IF (l_qte_line_dtl_tbl(1).INSTANCE_ID IS NOT NULL) Then
3030 l_copy_flag:='F';
3031 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3032 aso_debug_pub.ADD ('Copy_Line_Rows : Trade in from install Base Check Failed' , 1, 'N' );
3033 END IF;
3034 End IF;
3035 End IF;
3036
3037 l_appl_param_rec.calling_application_id := 697;
3038
3039 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3040 aso_debug_pub.add('Copy_Line_Rows:Call TO CZ_NETWORK_API_PUB.Is_Container ');
3041 END IF;
3042
3043 -- Validation check for Container Model
3044 cz_network_api_pub.is_container(p_api_version => 1.0
3045 ,p_inventory_item_id => l_qte_line_tbl( i ).inventory_item_id
3046 ,p_organization_id => l_qte_line_tbl( i ).organization_id
3047 ,p_appl_param_rec => l_appl_param_rec
3048 ,x_return_value => l_return_value
3049 ,x_return_status => l_return_status
3050 ,x_msg_count => x_msg_count
3051 ,x_msg_data => x_msg_data );
3052
3053 IF ( l_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
3054 IF l_return_value = 'Y' THEN
3055 l_copy_flag := 'F';
3056 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3057 aso_debug_pub.ADD ('Copy_Line_Rows : Container Model Check Failed' , 1, 'N' );
3058 END IF;
3059 END IF;
3060 ELSE
3061 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3062 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
3063 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
3064 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_CONFIG_COPY' , TRUE );
3065 FND_MSG_PUB.ADD;
3066 END IF;
3067 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3068 END IF;
3069 End If;
3070 /* Code change for Quoting Usability Sun ER End */
3071
3072 IF l_qte_line_tbl ( i ).item_type_code = 'MDL'
3073 And (l_copy_flag = 'T') THEN -- Code change for Quoting Usability Sun ER
3074
3075 IF l_qte_line_dtl_tbl.COUNT > 0 THEN
3076
3077 IF l_qte_line_dtl_tbl ( 1 ).config_header_id IS NOT NULL
3078 AND l_qte_line_dtl_tbl ( 1 ).config_revision_num IS NOT NULL THEN
3079
3080 l_config_control_rec.new_config_flag := FND_API.G_TRUE;
3081
3082 -- set the flag for ato model
3083 IF (l_qte_line_dtl_tbl(1).ato_line_id is not null and l_qte_line_dtl_tbl(1).ato_line_id <> fnd_api.g_miss_num) then
3084 l_ato_model := fnd_api.g_true;
3085 end if;
3086
3087
3088 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3089 aso_debug_pub.ADD ( 'Before Calling ASO_CGF_INT.Copy Configuration' , 1 , 'N' );
3090 END IF;
3091
3092 ASO_CFG_INT.Copy_Configuration (
3093 P_Api_version_NUmber => 1.0
3094 , P_config_header_id => l_qte_line_dtl_tbl ( 1 ).config_header_id
3095 , p_config_revision_num => l_qte_line_dtl_tbl ( 1 ).config_revision_num
3096 , p_copy_mode => CZ_API_PUB.G_NEW_HEADER_COPY_MODE
3097 , x_config_header_id => l_config_hdr_id
3098 , x_config_revision_num => l_config_rev_nbr
3099 , x_orig_item_id_tbl => l_orig_item_id_tbl
3100 , x_new_item_id_tbl => l_new_item_id_tbl
3101 , x_return_status => l_return_status
3102 , x_msg_count => x_msg_count
3103 , x_msg_data => x_msg_data
3104 , p_autonomous_flag => FND_API.G_FALSE
3105 );
3106
3107 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3108 aso_debug_pub.ADD ( 'After Calling ASO_CGF_INT.Copy Configuration' , 1 , 'N' );
3109 END IF;
3110
3111 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
3112 l_old_config_header_id :=
3113 l_qte_line_dtl_tbl ( 1 ).config_header_id;
3114 l_old_config_revision_num :=
3115 l_qte_line_dtl_tbl ( 1 ).config_revision_num;
3116 l_qte_line_dtl_tbl ( 1 ).config_header_id :=
3117 l_config_hdr_id;
3118 l_qte_line_dtl_tbl ( 1 ).config_revision_num :=
3119 l_config_rev_nbr;
3120 ELSE
3121 x_return_status := FND_API.G_RET_STS_ERROR;
3122 RAISE FND_API.G_EXC_ERROR;
3123 END IF;
3124
3125 END IF; -- config_header_id
3126
3127 END IF; -- line_dtl_tbl.count
3128
3129 END IF; -- 'MDL'
3130
3131 l_serviceable_product_flag := l_qte_line_tbl ( i ).SERVICEABLE_PRODUCT_FLAG;
3132 l_service_item_flag := l_qte_line_tbl ( i ).service_item_flag;
3133
3134 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3135 aso_debug_pub.ADD ( 'service item flag = ' || l_service_item_flag , 1 , 'N' );
3136 aso_debug_pub.ADD ( 'serviceable_product_flag = ' || l_serviceable_product_flag , 1 , 'N' );
3137 END IF;
3138
3139 IF l_service_item_flag = 'Y'
3140 AND (l_qte_line_dtl_tbl ( 1 ).service_ref_type_code IS NULL OR
3141 l_qte_line_dtl_tbl ( 1 ).service_ref_type_code <> 'QUOTE') THEN
3142 l_service_item_flag := 'N';
3143 END IF;
3144
3145 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3146 aso_debug_pub.ADD ( 'service item flag 2= ' || l_service_item_flag , 1 , 'N' );
3147 END IF;
3148
3149 /* Code change for Quoting Usability Sun ER Start */
3150 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
3151
3152 If l_service_item_flag = 'Y' Then
3153
3154 -- Validation check for service reference - Install Base and Pending Order
3155 If (l_qte_line_dtl_tbl ( 1 ).service_ref_type_code = 'CUSTOMER_PRODUCT') Or
3156 (l_qte_line_dtl_tbl ( 1 ).service_ref_type_code = 'PENDING_ORDER') Then
3157 l_copy_flag := 'F';
3158 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3159 aso_debug_pub.ADD ('Copy_Line_Rows : service_ref_type_code = '||l_qte_line_dtl_tbl ( 1 ).service_ref_type_code , 1, 'N' );
3160 END IF;
3161
3162 -- Validation check for service reference - Product Catalog
3163 ElsIf l_qte_line_dtl_tbl ( 1 ).service_ref_type_code = 'PRODUCT_CATALOG' Then
3164
3165 l_check_service_rec.product_item_id := l_qte_line_dtl_tbl ( 1 ).SERVICE_REF_LINE_ID;
3166 l_check_service_rec.customer_id := P_Qte_Header_Rec.CUST_ACCOUNT_ID;
3167 l_check_service_rec.service_item_id := l_qte_line_tbl ( i ).INVENTORY_ITEM_ID;
3168
3169 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3170 aso_debug_pub.ADD( 'Copy_Line_Rows:Before calling ASO_SERVICE_CONTRACTS_INT.Is_Service_Available for IB', 1 , 'N' );
3171 END IF;
3172
3173 ASO_SERVICE_CONTRACTS_INT.is_service_available (
3174 P_Api_Version_Number => 1.0 ,
3175 P_init_msg_list => FND_API.G_FALSE ,
3176 X_msg_Count => x_msg_count ,
3177 X_msg_Data => x_msg_data ,
3178 X_Return_Status => x_return_status ,
3179 p_check_service_rec => l_check_service_rec,
3180 X_Available_YN => x_Available_YN );
3181
3182 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3183 aso_debug_pub.ADD( 'Copy_Line_Rows:After calling ASO_SERVICE_CONTRACTS_INT.Is_Service_Available for IB', 1 , 'N' );
3184 END IF;
3185
3186 If nvl(x_Available_YN, 'N') = 'N' Then
3187 l_copy_flag := 'F';
3188 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3189 aso_debug_pub.add('Copy_Line_Rows: PC Service Not Available');
3190 END IF;
3191 End If;
3192
3193 -- Validation check for service reference - Quote
3194 ElsIf l_qte_line_dtl_tbl ( 1 ).service_ref_type_code = 'QUOTE' Then
3195
3196 open c_service_ref_quote(l_qte_line_id);
3197 fetch c_service_ref_quote into l_check_service_rec.product_item_id;
3198 close c_service_ref_quote;
3199
3200 l_check_service_rec.customer_id := P_Qte_Header_Rec.CUST_ACCOUNT_ID;
3201 l_check_service_rec.service_item_id := l_qte_line_tbl ( i ).INVENTORY_ITEM_ID;
3202
3203 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3204 aso_debug_pub.ADD( 'Copy_Line_Rows:Before calling ASO_SERVICE_CONTRACTS_INT.Is_Service_Available for Quote', 1 , 'N' );
3205 END IF;
3206
3207 ASO_SERVICE_CONTRACTS_INT.is_service_available (
3208 P_Api_Version_Number => 1.0 ,
3209 P_init_msg_list => FND_API.G_FALSE ,
3210 X_msg_Count => x_msg_count ,
3211 X_msg_Data => x_msg_data ,
3212 X_Return_Status => x_return_status ,
3213 p_check_service_rec => l_check_service_rec,
3214 X_Available_YN => x_Available_YN );
3215
3216 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3217 aso_debug_pub.ADD( 'Copy_Line_Rows:After calling ASO_SERVICE_CONTRACTS_INT.Is_Service_Available for Quote', 1 , 'N' );
3218 END IF;
3219
3220 If nvl(x_Available_YN, 'N') = 'N' Then
3221 l_copy_flag := 'F';
3222 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3223 aso_debug_pub.add('Copy_Line_Rows: Quote Service Not Available');
3224 END IF;
3225 End If;
3226
3227 End If;
3228 End If;
3229 END IF;
3230 /* Code change for Quoting Usability Sun ER End */
3231
3232 IF l_qte_line_tbl ( i ).item_type_code <> 'CFG'
3233 AND l_qte_line_tbl ( i ).item_type_code <> 'OPT'
3234 AND l_service_item_flag <> 'Y'
3235 AND (l_copy_flag = 'T') THEN -- Code change for Quoting Usability Sun ER
3236
3237 l_line_attr_Ext_Tbl := ASO_UTILITY_PVT.Query_Line_Attribs_Ext_Rows ( l_qte_line_id );
3238
3239 IF ( P_Qte_Line_Id IS NOT NULL ) AND (P_Qte_Line_Id <> FND_API.G_MISS_NUM) THEN
3240
3241 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_NonPRG_Rows(p_qte_header_id, l_qte_line_id);
3242 ELSE
3243 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Rows(p_qte_header_id, l_qte_line_id);
3244 END IF;
3245
3246 l_dup_Price_Adj_Tbl := l_price_adj_tbl;
3247
3248 l_price_adj_attr_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows( p_price_adj_tbl => l_price_adj_tbl );
3249
3250 l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows(p_qte_header_id, l_qte_line_id);
3251
3252 --l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(p_qte_header_id, L_QTE_LINE_ID);
3253
3254 -- l_payment_tbl := ASO_QUOTE_PUB.g_miss_payment_tbl;
3255
3256 -- l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(p_qte_header_id, L_QTE_LINE_ID);
3257
3258 /* Code change for Quoting Usability Sun ER Start */
3259 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_TRUE Then
3260
3261 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3262 aso_debug_pub.add('Copy_Line_Rows - P_Copy_Quote_Control_Rec.Copy_To_Same_Customer is True ', 1, 'Y');
3263 END IF ;
3264
3265 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(p_qte_header_id,l_qte_line_id);
3266
3267 If P_Copy_Quote_Control_Rec.Copy_Line_Shipping = FND_API.G_FALSE Then
3268 l_shipment_tbl(1).SHIP_TO_CUST_ACCOUNT_ID := Null;
3269 l_shipment_tbl(1).SHIP_TO_CUST_PARTY_ID := Null;
3270 l_shipment_tbl(1).SHIP_TO_PARTY_ID := Null;
3271 l_shipment_tbl(1).SHIP_TO_PARTY_SITE_ID := Null;
3272 l_shipment_tbl(1).SHIP_TO_PARTY_NAME := Null;
3273 l_shipment_tbl(1).SHIP_TO_CONTACT_FIRST_NAME := Null;
3274 l_shipment_tbl(1).SHIP_TO_CONTACT_MIDDLE_NAME := Null;
3275 l_shipment_tbl(1).SHIP_TO_CONTACT_LAST_NAME := Null;
3276 l_shipment_tbl(1).SHIP_TO_ADDRESS1 := Null;
3277 l_shipment_tbl(1).SHIP_TO_ADDRESS2 := Null;
3278 l_shipment_tbl(1).SHIP_TO_ADDRESS3 := Null;
3279 l_shipment_tbl(1).SHIP_TO_ADDRESS4 := Null;
3280 l_shipment_tbl(1).SHIP_TO_COUNTRY_CODE := Null;
3281 l_shipment_tbl(1).SHIP_TO_COUNTRY := Null;
3282 l_shipment_tbl(1).SHIP_TO_CITY := Null;
3283 l_shipment_tbl(1).SHIP_TO_POSTAL_CODE := Null;
3284 l_shipment_tbl(1).SHIP_TO_STATE := Null;
3285 l_shipment_tbl(1).SHIP_TO_PROVINCE := Null;
3286 l_shipment_tbl(1).SHIP_TO_COUNTY := Null;
3287 l_shipment_tbl(1).SHIP_METHOD_CODE := Null;
3288 l_shipment_tbl(1).FREIGHT_TERMS_CODE := Null;
3289 l_shipment_tbl(1).FOB_CODE := Null;
3290 l_shipment_tbl(1).DEMAND_CLASS_CODE := Null;
3291 l_shipment_tbl(1).SHIP_FROM_ORG_ID := Null;
3292 l_shipment_tbl(1).REQUEST_DATE := Null;
3293 l_shipment_tbl(1).SHIPMENT_PRIORITY_CODE := Null;
3294 l_shipment_tbl(1).SHIPPING_INSTRUCTIONS := Null;
3295 l_shipment_tbl(1).PACKING_INSTRUCTIONS := Null;
3296 End If;
3297
3298 If P_Copy_Quote_Control_Rec.Copy_Line_Billing = FND_API.G_FALSE Then
3299 l_qte_line_tbl ( i ).INVOICE_TO_PARTY_SITE_ID := Null;
3300 l_qte_line_tbl ( i ).INVOICE_TO_PARTY_ID := Null;
3301 l_qte_line_tbl ( i ).INVOICE_TO_CUST_ACCOUNT_ID := Null;
3302 l_qte_line_tbl ( i ).INVOICE_TO_CUST_PARTY_ID := Null;
3303 End If;
3304
3305 If P_Copy_Quote_Control_Rec.Copy_Line_End_Customer = FND_API.G_FALSE Then
3306 l_qte_line_tbl ( i ).END_CUSTOMER_PARTY_ID := Null;
3307 l_qte_line_tbl ( i ).END_CUSTOMER_PARTY_SITE_ID := Null;
3308 l_qte_line_tbl ( i ).END_CUSTOMER_CUST_ACCOUNT_ID := Null;
3309 l_qte_line_tbl ( i ).END_CUSTOMER_CUST_PARTY_ID := Null;
3310 End If;
3311
3312 If P_Copy_Quote_Control_Rec.Copy_Line_Sales_Credit = FND_API.G_TRUE Then
3313 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row(p_qte_header_id,l_qte_line_id);
3314 End If;
3315
3316 ElsIf P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
3317
3318 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3319 aso_debug_pub.add('Copy_Line_Rows - P_Copy_Quote_Control_Rec.Copy_To_Same_Customer is False 2 ', 1, 'Y');
3320 END IF ;
3321
3322 If P_Copy_Quote_Control_Rec.Copy_Line_Shipping = FND_API.G_FALSE Then
3323 l_shipment_tbl(1).SHIP_METHOD_CODE := Null;
3324 l_shipment_tbl(1).FREIGHT_TERMS_CODE := Null;
3325 l_shipment_tbl(1).FOB_CODE := Null;
3326 l_shipment_tbl(1).DEMAND_CLASS_CODE := Null;
3327 l_shipment_tbl(1).SHIP_FROM_ORG_ID := Null;
3328 l_shipment_tbl(1).REQUEST_DATE := Null;
3329 l_shipment_tbl(1).SHIPMENT_PRIORITY_CODE := Null;
3330 l_shipment_tbl(1).SHIPPING_INSTRUCTIONS := Null;
3331 l_shipment_tbl(1).PACKING_INSTRUCTIONS := Null;
3332 End If;
3333
3334 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row(p_qte_header_id,l_qte_line_id);
3335 End If;
3336
3337 If P_Copy_Quote_Control_Rec.Copy_Line_Flexfield = FND_API.G_FALSE Then
3338 l_qte_line_tbl ( i ).ATTRIBUTE1 := Null;
3339 l_qte_line_tbl ( i ).ATTRIBUTE2 := Null;
3340 l_qte_line_tbl ( i ).ATTRIBUTE3 := Null;
3341 l_qte_line_tbl ( i ).ATTRIBUTE4 := Null;
3342 l_qte_line_tbl ( i ).ATTRIBUTE5 := Null;
3343 l_qte_line_tbl ( i ).ATTRIBUTE6 := Null;
3344 l_qte_line_tbl ( i ).ATTRIBUTE7 := Null;
3345 l_qte_line_tbl ( i ).ATTRIBUTE8 := Null;
3346 l_qte_line_tbl ( i ).ATTRIBUTE9 := Null;
3347 l_qte_line_tbl ( i ).ATTRIBUTE10 := Null;
3348 l_qte_line_tbl ( i ).ATTRIBUTE11 := Null;
3349 l_qte_line_tbl ( i ).ATTRIBUTE12 := Null;
3350 l_qte_line_tbl ( i ).ATTRIBUTE13 := Null;
3351 l_qte_line_tbl ( i ).ATTRIBUTE14 := Null;
3352 l_qte_line_tbl ( i ).ATTRIBUTE15 := Null;
3353 l_qte_line_tbl ( i ).ATTRIBUTE16 := Null;
3354 l_qte_line_tbl ( i ).ATTRIBUTE17 := Null;
3355 l_qte_line_tbl ( i ).ATTRIBUTE18 := Null;
3356 l_qte_line_tbl ( i ).ATTRIBUTE19 := Null;
3357 l_qte_line_tbl ( i ).ATTRIBUTE20 := Null;
3358 End If;
3359 /* Code change for Quoting Usability Sun ER End */
3360
3361 l_quote_party_tbl := ASO_UTILITY_PVT.Query_Quote_Party_Row(p_qte_header_id, L_QTE_LINE_ID);
3362
3363 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows(l_shipment_tbl);
3364
3365 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows(p_qte_header_id, L_QTE_LINE_ID, l_shipment_tbl);
3366
3367 l_qte_line_tbl(i).quote_line_id := NULL;
3368
3369 l_qte_line_tbl ( i ).object_version_number := FND_API.G_MISS_NUM;
3370
3371 --BC4J Fix
3372
3373 FOR j IN 1 .. l_qte_line_dtl_tbl.COUNT LOOP
3374 l_qte_line_dtl_tbl(j).quote_line_detail_id := null;
3375 l_qte_line_dtl_tbl(j).object_version_number := FND_API.G_MISS_NUM;
3376 l_qte_line_dtl_tbl(j).top_model_line_id := null;
3377 l_qte_line_dtl_tbl(j).ato_line_id := null;
3378 l_qte_line_dtl_tbl(j).qte_line_index := i;
3379 END LOOP;
3380
3381 FOR j IN 1 .. l_price_adj_tbl.COUNT LOOP
3382 l_price_adj_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
3383 l_price_adj_tbl ( j ).price_adjustment_id := null;
3384 l_price_adj_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
3385 END LOOP;
3386
3387 FOR j IN 1 .. l_price_adj_attr_tbl.COUNT LOOP
3388 l_price_adj_attr_tbl(j).price_adj_attrib_id := null;
3389 l_price_adj_attr_tbl(j).object_version_number := FND_API.G_MISS_NUM;
3390 END LOOP;
3391
3392 FOR j IN 1 .. l_price_attr_tbl.COUNT LOOP
3393 l_price_attr_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
3394 l_price_attr_tbl ( j ).price_attribute_id := null;
3395 l_price_attr_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
3396 END LOOP;
3397
3398 /* FOR j IN 1 .. l_payment_tbl.COUNT LOOP
3399 l_payment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
3400 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
3401 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
3402 l_payment_tbl ( j ).payment_id := NULL;
3403 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
3404 END LOOP; */
3405
3406 FOR j IN 1 .. l_shipment_tbl.COUNT LOOP
3407 l_shipment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
3408 l_shipment_tbl ( j ).shipment_id := null;
3409 l_shipment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
3410 END LOOP;
3411
3412 FOR j IN 1 .. l_sales_credit_tbl.COUNT LOOP
3413 l_sales_credit_tbl(j).QUOTE_HEADER_ID := p_new_qte_header_id;
3414 l_sales_credit_tbl(j).sales_credit_id := null;
3415 l_sales_credit_tbl(j).object_version_number := FND_API.G_MISS_NUM;
3416 END LOOP;
3417
3418 FOR j IN 1 .. l_quote_party_tbl.COUNT LOOP
3419 l_quote_party_tbl(j).QUOTE_HEADER_ID := p_new_qte_header_id;
3420 l_quote_party_tbl(j).QUOTE_PARTY_ID := null;
3421 l_quote_party_tbl(j).object_version_number := FND_API.G_MISS_NUM;
3422 END LOOP;
3423
3424 FOR j IN 1 .. l_tax_detail_tbl.COUNT LOOP
3425 l_tax_detail_tbl(j).tax_detail_id := null;
3426 l_tax_detail_tbl(j).object_version_number := FND_API.G_MISS_NUM;
3427 END LOOP;
3428
3429 FOR j IN 1 .. l_line_attr_Ext_Tbl.COUNT LOOP
3430 l_line_attr_Ext_Tbl(j).line_attribute_id := null;
3431 l_line_attr_Ext_Tbl(j).object_version_number := FND_API.G_MISS_NUM;
3432 END LOOP;
3433
3434 FOR j IN 1 .. l_freight_charge_tbl.COUNT LOOP
3435 l_freight_charge_tbl(j).freight_charge_id := null;
3436 l_freight_charge_tbl(j).object_version_number := FND_API.G_MISS_NUM;
3437 END LOOP;
3438
3439 --End of BC4J Fix
3440
3441 -- Setting the new line number if a quote line is being copied
3442 IF ( P_Qte_Line_Id IS NOT NULL ) AND (P_Qte_Line_Id <> FND_API.G_MISS_NUM) THEN
3443 Open Get_Max_Line_Number(P_Qte_Header_Id);
3444 Fetch Get_Max_Line_Number into l_line_number;
3445 Close Get_Max_Line_Number;
3446
3447 l_qte_line_tbl ( i ).line_number := l_line_number + 10000;
3448
3449 END IF;
3450
3451
3452 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3453 aso_debug_pub.ADD ( 'Copy_Line_Rows - Before insert_quote_line_rows: ' || l_qte_line_id , 1 , 'Y' );
3454 END IF;
3455 ASO_QUOTE_LINES_PVT.Insert_Quote_Line_Rows (
3456 p_control_rec => l_control_rec
3457 , P_qte_Line_Rec => l_qte_line_tbl ( i )
3458 , P_qte_line_dtl_tbl => l_qte_line_dtl_tbl
3459 , P_Line_Attribs_Ext_Tbl => l_line_attr_ext_tbl
3460 , P_price_attributes_tbl => l_price_attr_tbl
3461 , P_Price_Adj_Tbl => l_price_adj_tbl
3462 , P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl
3463 , P_Payment_Tbl => ASO_QUOTE_PUB.g_miss_payment_tbl
3464 , P_Shipment_Tbl => l_shipment_tbl
3465 , P_Freight_Charge_Tbl => l_freight_charge_tbl
3466 , P_Tax_Detail_Tbl => l_tax_detail_tbl
3467 , P_Sales_Credit_Tbl => l_sales_credit_tbl
3468 , P_Quote_Party_Tbl => l_quote_party_tbl
3469 , x_qte_Line_Rec => lx_qte_line_rec
3470 , x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out
3471 , x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out
3472 , x_price_attributes_tbl => l_price_attr_tbl_out
3473 , x_Price_Adj_Tbl => lx_ln_price_adj_tbl
3474 , x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out
3475 , x_Payment_Tbl => l_payment_tbl_out
3476 , x_Shipment_Tbl => l_shipment_tbl_out
3477 , x_Freight_Charge_Tbl => l_freight_charge_tbl_out
3478 , x_Tax_Detail_Tbl => l_tax_detail_tbl_out
3479 , x_Sales_Credit_Tbl => l_sales_credit_tbl_out
3480 , x_Quote_Party_Tbl => l_quote_party_tbl_out
3481 , x_Return_Status => l_return_status
3482 , x_Msg_Count => x_msg_count
3483 , x_Msg_Data => x_msg_data
3484 );
3485
3486 l_quote_party_tbl :=l_quote_party_tbl_out ;
3487 l_sales_credit_tbl :=l_sales_credit_tbl_out ;
3488 l_tax_detail_tbl := l_tax_detail_tbl_out ;
3489 l_freight_charge_tbl := l_freight_charge_tbl_out ;
3490 l_shipment_tbl := l_shipment_tbl_out ;
3491 l_payment_tbl := l_payment_tbl_out ;
3492 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out ;
3493 l_Price_Attr_Tbl := l_Price_Attr_Tbl_out ;
3494 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out ;
3495 l_Line_Attr_Ext_Tbl := l_Line_Attr_Ext_Tbl_out;
3496
3497
3498 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3499 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3500 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
3501 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
3502 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_INSERT' , TRUE );
3503 FND_MSG_PUB.ADD;
3504 END IF;
3505 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3506 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
3507 x_return_status := FND_API.G_RET_STS_ERROR;
3508 RAISE FND_API.G_EXC_ERROR;
3509 END IF;
3510 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3511 aso_debug_pub.ADD ( 'Copy_Rows - After insert_quote_line_rows - status: ' || l_return_status , 1 , 'Y' );
3512 END IF;
3513
3514 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3515 aso_debug_pub.ADD ( 'Copy_Rows - Updating the top model and ato line id for the top model line ', 1 , 'Y' );
3516 aso_debug_pub.ADD ( 'Copy_Rows - l_ato_model: ' || l_ato_model , 1 , 'Y' );
3517 END IF;
3518 update aso_quote_line_details
3519 set top_model_line_id = lx_qte_line_rec.quote_line_id,
3520 ato_line_id = decode(l_ato_model,fnd_api.g_true,lx_qte_line_rec.quote_line_id,null)
3521 where quote_line_id = lx_qte_line_rec.quote_line_id;
3522
3523 -- Copy the payment record
3524 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(p_qte_header_id, L_QTE_LINE_ID);
3525
3526 IF l_payment_tbl.count > 0 then
3527
3528 FOR j IN 1 .. l_payment_tbl.COUNT LOOP
3529 l_payment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
3530 l_payment_tbl ( j ).quote_line_id := lx_qte_line_rec.quote_line_id;
3531 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
3532 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
3533 l_payment_tbl ( j ).payment_id := NULL;
3534 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
3535
3536 /* Code change for Quoting Usability Sun ER Start */
3537 If (P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_TRUE And
3538 P_Copy_Quote_Control_Rec.Copy_Line_Payment = FND_API.G_FALSE) Then
3539 l_payment_tbl ( j ).CUST_PO_NUMBER := Null;
3540 l_payment_tbl ( j ).CUST_PO_LINE_NUMBER := Null;
3541 l_payment_tbl ( j ).PAYMENT_TERM_ID := Null;
3542 l_payment_tbl ( j ).PAYMENT_TYPE_CODE := NULL;
3543 l_payment_tbl ( j ).PAYMENT_REF_NUMBER := Null;
3544 l_payment_tbl ( j ).CREDIT_CARD_CODE := Null;
3545 l_payment_tbl ( j ).CREDIT_CARD_HOLDER_NAME := Null;
3546 l_payment_tbl ( j ).CREDIT_CARD_EXPIRATION_DATE := Null;
3547 End If;
3548 l_payment_tbl ( j ).cvv2 := Null;
3549 /* Code change for Quoting Usability Sun ER End */
3550 END LOOP;
3551
3552 If P_Copy_Quote_Control_Rec.Copy_Line_Payment = FND_API.G_TRUE Then -- Code change for Quoting Usability Sun ER
3553
3554 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3555 aso_debug_pub.add('Copy_Rows: Before call to copy_payment_row ', 1, 'Y');
3556 END IF;
3557
3558 aso_copy_quote_pvt.copy_payment_row(p_payment_rec => l_payment_tbl(1) ,
3559 x_return_status => l_return_status,
3560 x_msg_count => x_msg_count,
3561 x_msg_data => x_msg_data);
3562
3563 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3564 aso_debug_pub.add('Copy_Rows: After call to copy_payment_row: x_return_status: '||l_return_status, 1, 'Y');
3565 END IF;
3566 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3567 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3568 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
3569 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
3570 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_INSERT' , TRUE );
3571 FND_MSG_PUB.ADD;
3572 END IF;
3573 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3574 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
3575 x_return_status := FND_API.G_RET_STS_ERROR;
3576 RAISE FND_API.G_EXC_ERROR;
3577 END IF;
3578 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3579 aso_debug_pub.ADD ( 'Copy_Rows - After insert_quote_line_rows - status: ' || l_return_status , 1 , 'Y' );
3580 END IF;
3581
3582 END IF;
3583
3584 End If; -- Code change for Quoting Usability Sun ER
3585
3586 -- End Copy payment record
3587
3588 -- Copying the sales supplement data for the line
3589 -- IF ( P_Copy_Quote_Control_Rec.New_Version = FND_API.G_TRUE ) THEN code commented for Quoting Usability Sun ER
3590
3591 If P_Copy_Quote_Control_Rec.Copy_Line_Sales_Supplement = FND_API.G_TRUE Then -- Code change for Quoting Usability Sun ER
3592
3593 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3594 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before line copy_sales_supplement ' , 1 , 'Y' );
3595 END IF;
3596
3597 ASO_COPY_QUOTE_PVT.INSERT_SALES_SUPP_DATA
3598 (
3599 P_Api_Version_Number => 1.0,
3600 P_Init_Msg_List => P_Init_Msg_List,
3601 P_Commit => P_Commit,
3602 P_OLD_QUOTE_LINE_ID => L_QTE_LINE_ID,
3603 P_NEW_QUOTE_LINE_ID => lx_qte_line_rec.quote_line_id,
3604 X_Return_Status => l_return_status,
3605 X_Msg_Count => X_Msg_Count,
3606 X_Msg_Data => X_Msg_Data );
3607
3608
3609 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3610 aso_debug_pub.ADD ( 'Copy_Rows -After line copy_sales_supplement ' || x_return_status , 1 , 'Y' );
3611 END IF;
3612
3613
3614 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3615 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3616 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
3617 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
3618 FND_MESSAGE.Set_Token ('ROW' , 'ASO_QUOTE_HEADER', TRUE );
3619 FND_MSG_PUB.ADD;
3620 END IF;
3621 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3622
3623 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
3624 x_return_status := FND_API.G_RET_STS_ERROR;
3625 RAISE FND_API.G_EXC_ERROR;
3626 END IF;
3627
3628 End If; -- Code change for Quoting Usability Sun ER
3629
3630 -- END IF; -- new version check
3631
3632
3633
3634
3635
3636
3637
3638
3639 --IF P_Copy_Quote_Control_Rec.Copy_Attachment = FND_API.G_TRUE
3640 IF P_Copy_Quote_Control_Rec.Copy_Line_Attachment = FND_API.G_TRUE -- Code change for Quoting Usability Sun ER
3641
3642 OR ( ( P_Qte_Line_Id IS NOT NULL ) AND (P_Qte_Line_Id <> FND_API.G_MISS_NUM)) THEN
3643
3644 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3645 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before line copy_attch ' , 1 , 'Y' );
3646 END IF;
3647
3648 ASO_ATTACHMENT_INT.Copy_Attachments(
3649 p_api_version => l_api_version,
3650 p_old_object_code => 'ASO_QUOTE_LINES_ALL',
3651 p_new_object_code => 'ASO_QUOTE_LINES_ALL',
3652 p_old_object_id => L_QTE_LINE_ID,
3653 p_new_object_id => lx_qte_line_rec.quote_line_id,
3654 x_return_status => l_return_status,
3655 x_msg_count => x_msg_count,
3656 x_msg_data => x_msg_data
3657 );
3658 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3659 aso_debug_pub.ADD ( 'Copy_Rows -After line copy_attch ' || x_return_status , 1 , 'Y' );
3660 END IF;
3661
3662 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3663 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3664 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
3665 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
3666 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_ATTACHMENTS' , TRUE );
3667 FND_MSG_PUB.ADD;
3668 END IF;
3669 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3670 ELSIF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3671 x_return_status := FND_API.G_RET_STS_ERROR;
3672 RAISE FND_API.G_EXC_ERROR;
3673 END IF;
3674
3675 END IF;
3676
3677 FOR j IN 1 .. l_dup_price_adj_tbl.COUNT LOOP
3678 l_price_index_link_tbl ( l_dup_price_adj_tbl ( j ).price_adjustment_id ) :=
3679 lx_ln_price_adj_tbl ( j ).price_adjustment_id;
3680 aso_debug_pub.ADD ( 'Copy - l_dup_price_adj_tbl ( j ).price_adjustment_id ' || l_dup_price_adj_tbl ( j ).price_adjustment_id , 1 , 'Y' );
3681 aso_debug_pub.ADD ( 'Copy - lx_ln_price_adj_tbl ( j ).price_adjustment_id ' || lx_ln_price_adj_tbl ( j ).price_adjustment_id , 1 , 'Y' );
3682 END LOOP;
3683
3684 l_line_index_link_tbl ( l_qte_line_id ) :=
3685 lx_qte_line_rec.quote_line_id;
3686 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3687 aso_debug_pub.ADD ( 'Copy_Config - l_qte_line_tbl(i).item_type_code ' || l_qte_line_tbl ( i ).item_type_code , 1 , 'Y' );
3688 aso_debug_pub.ADD ( 'Copy - l_qte_line_tbl(i).inventory_item_id ' || l_qte_line_tbl ( i ).inventory_item_id , 1 , 'Y' );
3689 aso_debug_pub.ADD ( 'Copy - l_serviceable_product_flag ' || l_serviceable_product_flag , 1 , 'Y' );
3690 END IF;
3691
3692 IF l_serviceable_product_flag = 'Y' THEN
3693
3694 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3695 aso_debug_pub.ADD ( 'Before Calling Service Copy ' , 1 , 'N' );
3696 END IF;
3697
3698 ASO_COPY_QUOTE_PVT.service_copy (
3699 p_qte_line_id => l_qte_line_id
3700 , p_copy_quote_control_rec => p_copy_quote_control_rec
3701 , p_new_qte_header_id => p_new_qte_header_id
3702 , p_qte_header_id => p_qte_header_id
3703 , lx_line_index_link_tbl => l_line_index_link_tbl
3704 , lx_price_index_link_tbl => l_price_index_link_tbl
3705 , X_Return_Status => l_return_status
3706 , X_Msg_Count => x_msg_count
3707 , X_Msg_Data => x_msg_data
3708 , p_line_quantity => FND_API.G_MISS_NUM
3709 );
3710
3711 END IF;
3712
3713 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3714 aso_debug_pub.ADD ( ' After Calling Service Copy' , 1 , 'N' );
3715 END IF;
3716
3717
3718 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3719 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3720 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
3721 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
3722 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_SERVICE' , TRUE );
3723 FND_MSG_PUB.ADD;
3724 END IF;
3725 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3726 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
3727 x_return_status := FND_API.G_RET_STS_ERROR;
3728 RAISE FND_API.G_EXC_ERROR;
3729 END IF;
3730
3731 END IF; -- If <> CFG and OPT and copy_flag = 'T'
3732
3733 IF l_qte_line_tbl ( i ).item_type_code = 'MDL'
3734 AND (l_copy_flag = 'T') THEN -- Code change for Quoting Usability Sun ER
3735 IF l_qte_line_dtl_tbl.COUNT > 1 THEN
3736 FOR k IN 2 .. l_qte_line_dtl_tbl.COUNT LOOP
3737 l_qte_line_dtl_tbl ( k ).config_header_id :=
3738 l_config_hdr_id;
3739 l_qte_line_dtl_tbl ( k ).config_revision_num :=
3740 l_config_rev_nbr;
3741 END LOOP;
3742 END IF;
3743
3744 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3745 aso_debug_pub.ADD ( 'l_old_config_header_id = ' || l_old_config_header_id , 1 , 'N' );
3746 aso_debug_pub.ADD ( ' Before Calling Copy Quote Config Copy' , 1 , 'N' );
3747 END IF;
3748
3749 ASO_COPY_QUOTE_PVT.config_copy (
3750 p_old_config_header_id => l_old_config_header_id
3751 , p_old_config_revision_num => l_old_config_revision_num
3752 , p_config_header_id => l_config_hdr_id
3753 , p_config_revision_num => l_config_rev_nbr
3754 , p_copy_quote_control_rec => p_copy_quote_control_rec
3755 , p_new_qte_header_id => p_new_qte_header_id
3756 , p_qte_header_id => p_qte_header_id
3757 , lx_line_index_link_tbl => l_line_index_link_tbl
3758 , lx_price_index_link_tbl => l_price_index_link_tbl
3759 , X_Return_Status => l_return_status
3760 , X_Msg_Count => x_msg_count
3761 , X_Msg_Data => x_msg_data
3762 , p_line_quantity => FND_API.G_MISS_NUM
3763 );
3764
3765 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3766 aso_debug_pub.ADD ( ' After Calling Copy Quote Config Copy' , 1 , 'N' );
3767 END IF;
3768
3769
3770 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3771 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3772 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
3773 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
3774 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_CONFIG_COPY' , TRUE );
3775 FND_MSG_PUB.ADD;
3776 END IF;
3777 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3778 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
3779 x_return_status := FND_API.G_RET_STS_ERROR;
3780 RAISE FND_API.G_EXC_ERROR;
3781 END IF;
3782
3783 /* bug 1903605*/
3784 l_old_config_header_id := NULL;
3785 l_old_config_revision_num := NULL;
3786 /* bug 1903605*/
3787
3788 IF (l_orig_item_id_tbl IS NOT NULL) AND (l_new_item_id_tbl IS NOT NULL) THEN
3789
3790 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3791 aso_debug_pub.ADD ( 'item_id_count > 0 ', 1 , 'N' );
3792 aso_debug_pub.ADD ( 'Orig Tbl Count ' ||l_orig_item_id_tbl.count, 1 , 'N' );
3793 aso_debug_pub.ADD ( 'New Tbl Count '||l_new_item_id_tbl.count, 1 , 'N' );
3794
3795 END IF;
3796
3797 IF l_orig_item_id_tbl.count > 0 AND l_new_item_id_tbl.count > 0 THEN
3798
3799 FORALL i IN l_orig_item_id_tbl.FIRST..l_orig_item_id_tbl.LAST
3800 UPDATE aso_quote_line_details
3801 SET config_item_id = l_new_item_id_tbl(i)
3802 ,last_update_date = SYSDATE
3803 ,last_updated_by =G_USER_ID
3804 ,last_update_login = G_LOGIN_ID
3805
3806 WHERE config_header_id = l_config_hdr_id
3807 AND config_revision_num = l_config_rev_nbr
3808 AND config_item_id = l_orig_item_id_tbl(i);
3809
3810 END IF;
3811
3812 END IF;
3813
3814 END IF; -- 'MDL'
3815
3816
3817 END IF; -- checking index link tbl
3818
3819 END LOOP;
3820
3821 -- Added a new IF for Copy Line Functionality
3822
3823 IF ( P_Qte_Line_Id IS NULL ) OR (P_Qte_Line_Id = FND_API.G_MISS_NUM) THEN
3824
3825 FOR price_adj_rltship_rec IN c_price_adj_rel ( p_qte_header_id ) LOOP
3826 lx_price_adj_rltship_id := FND_API.G_MISS_NUM;
3827
3828 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3829 aso_debug_pub.ADD ( 'l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id ) = ' || l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id ) , 1 , 'N' );
3830 END IF;
3831
3832 OPEN C_Get_Ship_Id (
3833 l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id )
3834 );
3835 FETCH C_Get_Ship_Id INTO l_ship_id;
3836 CLOSE C_Get_Ship_Id;
3837
3838 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3839 aso_debug_pub.ADD ( 'l_ship_id from line_id = ' || l_ship_id , 1 , 'N' );
3840 aso_debug_pub.ADD ( 'price_adj_rltship_rec.price_adjustment_id = ' || price_adj_rltship_rec.price_adjustment_id , 1 , 'N' );
3841 aso_debug_pub.ADD ( 'price_adj_rltship_rec.rltd_price_adj_id = ' || price_adj_rltship_rec.rltd_price_adj_id , 1 , 'N' );
3842 END IF;
3843
3844 ASO_PRICE_RLTSHIPS_PKG.Insert_Row (
3845 px_ADJ_RELATIONSHIP_ID => lx_price_adj_rltship_id
3846 , p_creation_date => SYSDATE
3847 , p_CREATED_BY => G_USER_ID
3848 , p_LAST_UPDATE_DATE => SYSDATE
3849 , p_LAST_UPDATED_BY => G_USER_ID
3850 , p_LAST_UPDATE_LOGIN => G_LOGIN_ID
3851 , p_PROGRAM_APPLICATION_ID => price_adj_rltship_rec.PROGRAM_APPLICATION_ID
3852 , p_PROGRAM_ID => price_adj_rltship_rec.PROGRAM_ID
3853 , p_PROGRAM_UPDATE_DATE => price_adj_rltship_rec.PROGRAM_UPDATE_DATE
3854 , p_REQUEST_ID => price_adj_rltship_rec.REQUEST_ID
3855 , p_QUOTE_LINE_ID => l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id )
3856 , p_PRICE_ADJUSTMENT_ID => l_price_index_link_tbl ( price_adj_rltship_rec.price_adjustment_id )
3857 , p_RLTD_PRICE_ADJ_ID => l_price_index_link_tbl ( price_adj_rltship_rec.rltd_price_adj_id )
3858 , p_QUOTE_SHIPMENT_ID => l_ship_id
3859 , p_OBJECT_VERSION_NUMBER => price_adj_rltship_rec.OBJECT_VERSION_NUMBER
3860 );
3861 END LOOP;
3862
3863 -- copy line relationships
3864
3865 FOR line_rel_rec IN c_line_relation ( p_qte_header_id ) LOOP
3866 lx_LINE_RELATIONSHIP_ID := FND_API.G_MISS_NUM;
3867 ASO_LINE_RELATIONSHIPS_PKG.Insert_Row (
3868 px_LINE_RELATIONSHIP_ID => lx_LINE_RELATIONSHIP_ID
3869 , p_CREATION_DATE => SYSDATE
3870 , p_CREATED_BY => G_USER_ID
3871 , p_LAST_UPDATED_BY => G_USER_ID
3872 , p_LAST_UPDATE_DATE => SYSDATE
3873 , p_LAST_UPDATE_LOGIN => G_LOGIN_ID
3874 , p_REQUEST_ID => line_rel_rec.REQUEST_ID
3875 , p_PROGRAM_APPLICATION_ID => line_rel_rec.PROGRAM_APPLICATION_ID
3876 , p_PROGRAM_ID => line_rel_rec.PROGRAM_ID
3877 , p_PROGRAM_UPDATE_DATE => line_rel_rec.PROGRAM_UPDATE_DATE
3878 , p_QUOTE_LINE_ID => l_line_index_link_tbl ( line_rel_rec.quote_line_id )
3879 , p_RELATED_QUOTE_LINE_ID => l_line_index_link_tbl ( line_rel_rec.related_quote_line_id )
3880 , p_RECIPROCAL_FLAG => line_rel_rec.RECIPROCAL_FLAG
3881 , P_RELATIONSHIP_TYPE_CODE => line_rel_rec.RELATIONSHIP_TYPE_CODE
3882 , p_OBJECT_VERSION_NUMBER => line_rel_rec.OBJECT_VERSION_NUMBER
3883 );
3884 END LOOP;
3885
3886 -- Copy for only that line if a line id was passed in
3887 ELSIF ( P_Qte_Line_Id IS NOT NULL ) AND (P_Qte_Line_Id <> FND_API.G_MISS_NUM) THEN
3888
3889 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3890 aso_debug_pub.ADD ( ' Copying price adj records ', 1 , 'N' );
3891 aso_debug_pub.ADD ( 'Line Index Tbl Count = '||to_char(l_line_index_link_tbl.count) , 1 , 'N' );
3892 END IF;
3893
3894 FOR price_adj_rltship_rec IN c_price_adj_rel_from_line_id ( P_Qte_Line_Id ) LOOP
3895 lx_price_adj_rltship_id := FND_API.G_MISS_NUM;
3896 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3897 aso_debug_pub.ADD ( 'l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id ) = '
3898 || l_line_index_link_tbl( price_adj_rltship_rec.quote_line_id ) , 1 , 'N' );
3899 END IF;
3900
3901 OPEN C_Get_Ship_Id (
3902 l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id )
3903 );
3904 FETCH C_Get_Ship_Id INTO l_ship_id;
3905 CLOSE C_Get_Ship_Id;
3906
3907 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3908 aso_debug_pub.ADD ( 'l_ship_id from line_id = ' || l_ship_id , 1 , 'N' );
3909 END IF;
3910
3911 ASO_PRICE_RLTSHIPS_PKG.Insert_Row (
3912 px_ADJ_RELATIONSHIP_ID => lx_price_adj_rltship_id
3913 , p_creation_date => SYSDATE
3914 , p_CREATED_BY => G_USER_ID
3915 , p_LAST_UPDATE_DATE => SYSDATE
3916 , p_LAST_UPDATED_BY => G_USER_ID
3917 , p_LAST_UPDATE_LOGIN => G_LOGIN_ID
3918 , p_PROGRAM_APPLICATION_ID => price_adj_rltship_rec.PROGRAM_APPLICATION_ID
3919 , p_PROGRAM_ID => price_adj_rltship_rec.PROGRAM_ID
3920 , p_PROGRAM_UPDATE_DATE => price_adj_rltship_rec.PROGRAM_UPDATE_DATE
3921 , p_REQUEST_ID => price_adj_rltship_rec.REQUEST_ID
3922 , p_QUOTE_LINE_ID => l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id )
3923 , p_PRICE_ADJUSTMENT_ID => l_price_index_link_tbl ( price_adj_rltship_rec.price_adjustment_id )
3924 , p_RLTD_PRICE_ADJ_ID => l_price_index_link_tbl ( price_adj_rltship_rec.rltd_price_adj_id )
3925 , p_QUOTE_SHIPMENT_ID => l_ship_id
3926 , p_OBJECT_VERSION_NUMBER => price_adj_rltship_rec.OBJECT_VERSION_NUMBER
3927 );
3928 END LOOP;
3929
3930
3931 -- copy line relationships
3932
3933 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3934 aso_debug_pub.ADD ( ' Copying line relationship records ', 1 , 'N' );
3935 END IF;
3936
3937 FOR line_rel_rec IN c_line_relation_from_line_id ( P_Qte_Line_Id ) LOOP
3938 lx_LINE_RELATIONSHIP_ID := FND_API.G_MISS_NUM;
3939 ASO_LINE_RELATIONSHIPS_PKG.Insert_Row (
3940 px_LINE_RELATIONSHIP_ID => lx_LINE_RELATIONSHIP_ID
3941 , p_CREATION_DATE => SYSDATE
3942 , p_CREATED_BY => G_USER_ID
3943 , p_LAST_UPDATED_BY => G_USER_ID
3944 , p_LAST_UPDATE_DATE => SYSDATE
3945 , p_LAST_UPDATE_LOGIN => G_LOGIN_ID
3946 , p_REQUEST_ID => line_rel_rec.REQUEST_ID
3947 , p_PROGRAM_APPLICATION_ID => line_rel_rec.PROGRAM_APPLICATION_ID
3948 , p_PROGRAM_ID => line_rel_rec.PROGRAM_ID
3949 , p_PROGRAM_UPDATE_DATE => line_rel_rec.PROGRAM_UPDATE_DATE
3950 , p_QUOTE_LINE_ID => l_line_index_link_tbl ( line_rel_rec.quote_line_id )
3951 , p_RELATED_QUOTE_LINE_ID => l_line_index_link_tbl ( line_rel_rec.related_quote_line_id )
3952 , p_RECIPROCAL_FLAG => line_rel_rec.RECIPROCAL_FLAG
3953 , P_RELATIONSHIP_TYPE_CODE => line_rel_rec.RELATIONSHIP_TYPE_CODE
3954 , p_OBJECT_VERSION_NUMBER => line_rel_rec.OBJECT_VERSION_NUMBER
3955 );
3956 END LOOP;
3957
3958 END IF;
3959
3960
3961 -- Pass back the new quote line id which was created
3962 IF ( P_Qte_Line_Id IS NOT NULL ) AND (P_Qte_Line_Id <> FND_API.G_MISS_NUM) THEN
3963
3964 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3965 aso_debug_pub.ADD ( 'Calling Update Quote to re-price the quote ', 1 , 'N' );
3966 END IF;
3967 -- Call Update Quote for repricing the quote
3968
3969 -- l_control_rec.pricing_request_type := 'ASO';
3970 -- l_control_rec.header_pricing_event := 'BATCH';
3971
3972
3973 l_Qte_Header_Rec.quote_header_id := P_Qte_Header_Id;
3974 l_Qte_Header_Rec.last_update_date := l_last_update_date;
3975 l_Qte_Header_Rec.pricing_status_indicator := P_Qte_Header_Rec.pricing_status_indicator;
3976 l_Qte_Header_Rec.tax_status_indicator := P_Qte_Header_Rec.tax_status_indicator;
3977 l_Qte_Header_Rec.price_updated_date := P_Qte_Header_Rec.price_updated_date;
3978 l_Qte_Header_Rec.tax_updated_date := P_Qte_Header_Rec.tax_updated_date;
3979
3980 aso_quote_pub.update_quote (
3981 p_api_version_number => 1.0,
3982 p_init_msg_list => fnd_api.g_false,
3983 p_commit => fnd_api.g_false,
3984 p_control_rec => p_control_rec,
3985 p_qte_header_rec => l_Qte_Header_Rec,
3986 p_hd_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
3987 p_hd_payment_tbl => aso_quote_pub.g_miss_payment_tbl,
3988 p_hd_shipment_tbl => aso_quote_pub.g_miss_shipment_tbl,
3989 p_hd_freight_charge_tbl => aso_quote_pub.g_miss_freight_charge_tbl,
3990 p_hd_tax_detail_tbl => aso_quote_pub.g_miss_tax_detail_tbl,
3991 p_qte_line_tbl => aso_quote_pub.g_miss_qte_line_tbl,
3992 p_qte_line_dtl_tbl => aso_quote_pub.g_miss_qte_line_dtl_tbl,
3993 p_line_attr_ext_tbl => aso_quote_pub.G_MISS_Line_Attribs_Ext_TBL,
3994 p_line_rltship_tbl => aso_quote_pub.g_miss_line_rltship_tbl,
3995 p_price_adjustment_tbl => aso_quote_pub.g_miss_price_adj_tbl,
3996 p_price_adj_attr_tbl => aso_quote_pub.g_miss_price_adj_attr_tbl,
3997 p_price_adj_rltship_tbl => aso_quote_pub.g_miss_price_adj_rltship_tbl,
3998 p_ln_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
3999 p_ln_payment_tbl => aso_quote_pub.g_miss_payment_tbl,
4000 p_ln_shipment_tbl => aso_quote_pub.g_miss_shipment_tbl,
4001 p_ln_freight_charge_tbl => aso_quote_pub.g_miss_freight_charge_tbl,
4002 p_ln_tax_detail_tbl => aso_quote_pub.g_miss_tax_detail_tbl,
4003 x_qte_header_rec => x_qte_header_rec,
4004 x_qte_line_tbl => x_qte_line_tbl,
4005 x_qte_line_dtl_tbl => x_qte_line_dtl_tbl,
4006 x_hd_price_attributes_tbl => x_hd_price_attributes_tbl,
4007 x_hd_payment_tbl => x_hd_payment_tbl,
4008 x_hd_shipment_tbl => x_hd_shipment_tbl,
4009 x_hd_freight_charge_tbl => x_hd_freight_charge_tbl,
4010 x_hd_tax_detail_tbl => x_hd_tax_detail_tbl,
4011 x_line_attr_ext_tbl => x_line_attr_ext_tbl,
4012 x_line_rltship_tbl => x_line_rltship_tbl,
4013 x_price_adjustment_tbl => x_price_adjustment_tbl,
4014 x_price_adj_attr_tbl => x_price_adj_attr_tbl,
4015 x_price_adj_rltship_tbl => x_price_adj_rltship_tbl,
4016 x_ln_price_attributes_tbl => x_ln_price_attributes_tbl,
4017 x_ln_payment_tbl => x_ln_payment_tbl,
4018 x_ln_shipment_tbl => x_ln_shipment_tbl,
4019 x_ln_freight_charge_tbl => x_ln_freight_charge_tbl,
4020 x_ln_tax_detail_tbl => x_ln_tax_detail_tbl,
4021 x_return_status => l_return_status,
4022 x_msg_count => x_msg_count,
4023 x_msg_data => x_msg_data
4024 );
4025
4026 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4027 aso_debug_pub.ADD ( ' Return Status from Update Quote = '||l_return_status, 1 , 'N' );
4028 END IF;
4029
4030 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
4031 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4032 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
4033 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
4034 FND_MSG_PUB.ADD;
4035 END IF;
4036 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4037 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
4038 x_return_status := FND_API.G_RET_STS_ERROR;
4039 RAISE FND_API.G_EXC_ERROR;
4040 END IF;
4041
4042 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4043 aso_debug_pub.ADD ( ' After Calling Update Quote ', 1 , 'N' );
4044 END IF;
4045
4046 X_Qte_Line_Id := lx_qte_line_rec.quote_line_id;
4047 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4048 aso_debug_pub.ADD ('X_Qte_Line_Id = '||to_char(X_Qte_Line_Id), 1 , 'N' );
4049 END IF;
4050
4051 ELSE
4052
4053 X_Qte_Line_Id := NULL;
4054 END IF;
4055
4056 /* Code change for Quoting Usability Sun ER Start */
4057 If P_Copy_Quote_Control_Rec.Copy_To_Same_Customer = FND_API.G_FALSE Then
4058 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4059 aso_debug_pub.ADD ( 'Copy_Line_Rows : Calling Update Quote for lines in change customer flow', 1 , 'N' );
4060 aso_debug_pub.ADD ( 'Copy_Line_Rows : P_Qte_Header_Id :'||P_Qte_Header_Id, 1 , 'N' );
4061 aso_debug_pub.ADD ( 'Copy_Line_Rows : l_last_update_date :'||l_last_update_date, 1 , 'N' );
4062 aso_debug_pub.ADD ( 'Copy_Line_Rows : P_Qte_Header_Rec.pricing_status_indicator :'||P_Qte_Header_Rec.pricing_status_indicator, 1 , 'N' );
4063 aso_debug_pub.ADD ( 'Copy_Line_Rows : P_Qte_Header_Rec.price_updated_date :'||P_Qte_Header_Rec.price_updated_date, 1 , 'N' );
4064 aso_debug_pub.ADD ( 'Copy_Line_Rows : P_Qte_Header_Rec.tax_updated_date :'||P_Qte_Header_Rec.tax_updated_date, 1 , 'N' );
4065 END IF;
4066
4067 -- Call Update Quote for repricing the quote
4068
4069 l_control_rec.pricing_request_type := Null;
4070 l_control_rec.header_pricing_event := Null;
4071
4072 --Bug12829891
4073 /*Changed from P_Qte_Header_Id to P_New_Qte_Header_Id*/
4074 l_Qte_Header_Rec.quote_header_id := P_New_Qte_Header_Id;
4075 l_Qte_Header_Rec.last_update_date := l_last_update_date;
4076 l_Qte_Header_Rec.pricing_status_indicator := P_Qte_Header_Rec.pricing_status_indicator;
4077 l_Qte_Header_Rec.tax_status_indicator := P_Qte_Header_Rec.tax_status_indicator;
4078 l_Qte_Header_Rec.price_updated_date := P_Qte_Header_Rec.price_updated_date;
4079 l_Qte_Header_Rec.tax_updated_date := P_Qte_Header_Rec.tax_updated_date;
4080
4081 aso_quote_pub.update_quote (
4082 p_api_version_number => 1.0,
4083 p_init_msg_list => fnd_api.g_false,
4084 p_commit => fnd_api.g_false,
4085 p_control_rec => p_control_rec,
4086 p_qte_header_rec => l_Qte_Header_Rec,
4087 p_hd_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
4088 p_hd_payment_tbl => aso_quote_pub.g_miss_payment_tbl,
4089 p_hd_shipment_tbl => aso_quote_pub.g_miss_shipment_tbl,
4090 p_hd_freight_charge_tbl => aso_quote_pub.g_miss_freight_charge_tbl,
4091 p_hd_tax_detail_tbl => aso_quote_pub.g_miss_tax_detail_tbl,
4092 p_qte_line_tbl => l_qte_line_tbl,
4093 p_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
4094 p_line_attr_ext_tbl => l_line_attr_Ext_Tbl,
4095 p_line_rltship_tbl => aso_quote_pub.g_miss_line_rltship_tbl,
4096 p_price_adjustment_tbl => aso_quote_pub.g_miss_price_adj_tbl,
4097 p_price_adj_attr_tbl => aso_quote_pub.g_miss_price_adj_attr_tbl,
4098 p_price_adj_rltship_tbl => aso_quote_pub.g_miss_price_adj_rltship_tbl,
4099 p_ln_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
4100 p_ln_payment_tbl => l_payment_tbl,
4101 p_ln_shipment_tbl => l_shipment_tbl,
4102 p_ln_freight_charge_tbl => l_freight_charge_tbl,
4103 p_ln_tax_detail_tbl => l_tax_detail_tbl,
4104 x_qte_header_rec => x_qte_header_rec,
4105 x_qte_line_tbl => x_qte_line_tbl,
4106 x_qte_line_dtl_tbl => x_qte_line_dtl_tbl,
4107 x_hd_price_attributes_tbl => x_hd_price_attributes_tbl,
4108 x_hd_payment_tbl => x_hd_payment_tbl,
4109 x_hd_shipment_tbl => x_hd_shipment_tbl,
4110 x_hd_freight_charge_tbl => x_hd_freight_charge_tbl,
4111 x_hd_tax_detail_tbl => x_hd_tax_detail_tbl,
4112 x_line_attr_ext_tbl => x_line_attr_ext_tbl,
4113 x_line_rltship_tbl => x_line_rltship_tbl,
4114 x_price_adjustment_tbl => x_price_adjustment_tbl,
4115 x_price_adj_attr_tbl => x_price_adj_attr_tbl,
4116 x_price_adj_rltship_tbl => x_price_adj_rltship_tbl,
4117 x_ln_price_attributes_tbl => x_ln_price_attributes_tbl,
4118 x_ln_payment_tbl => x_ln_payment_tbl,
4119 x_ln_shipment_tbl => x_ln_shipment_tbl,
4120 x_ln_freight_charge_tbl => x_ln_freight_charge_tbl,
4121 x_ln_tax_detail_tbl => x_ln_tax_detail_tbl,
4122 x_return_status => l_return_status,
4123 x_msg_count => x_msg_count,
4124 x_msg_data => x_msg_data
4125 );
4126
4127 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4128 aso_debug_pub.ADD ( ' Copy_Line_Rows : Return Status from Update Quote = '||l_return_status, 1 , 'N' );
4129 END IF;
4130
4131 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
4132 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4133 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
4134 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
4135 FND_MSG_PUB.ADD;
4136 END IF;
4137 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4138 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
4139 x_return_status := FND_API.G_RET_STS_ERROR;
4140 RAISE FND_API.G_EXC_ERROR;
4141 END IF;
4142
4143 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4144 aso_debug_pub.ADD ( 'Copy_Line_Rows : After Calling Update Quote for lines in change customer flow ', 1 , 'N' );
4145 END IF;
4146 End If;
4147 /* Code change for Quoting Usability Sun ER End */
4148
4149 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4150 aso_debug_pub.ADD ( ' End Copy Line Rows API ', 1 , 'N' );
4151 END IF;
4152
4153 x_return_status := FND_API.G_RET_STS_SUCCESS;
4154
4155 --
4156 -- End of API body
4157 --
4158
4159 -- Standard check for p_commit
4160 IF FND_API.to_Boolean ( p_commit ) THEN
4161 COMMIT WORK;
4162 END IF;
4163
4164 -- Standard call to get message count and if count is 1, get message info.
4165 FND_MSG_PUB.Count_And_Get (
4166 p_count => x_msg_count
4167 , p_data => x_msg_data
4168 );
4169
4170 EXCEPTION
4171
4172 WHEN FND_API.G_EXC_ERROR THEN
4173 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
4174 P_API_NAME => L_API_NAME
4175 , P_PKG_NAME => G_PKG_NAME
4176 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
4177 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4178 , X_MSG_COUNT => X_MSG_COUNT
4179 , X_MSG_DATA => X_MSG_DATA
4180 , X_RETURN_STATUS => X_RETURN_STATUS
4181 );
4182
4183 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4184 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
4185 P_API_NAME => L_API_NAME
4186 , P_PKG_NAME => G_PKG_NAME
4187 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
4188 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4189 , X_MSG_COUNT => X_MSG_COUNT
4190 , X_MSG_DATA => X_MSG_DATA
4191 , X_RETURN_STATUS => X_RETURN_STATUS
4192 );
4193
4194 WHEN OTHERS THEN
4195 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
4196 P_API_NAME => L_API_NAME
4197 , P_PKG_NAME => G_PKG_NAME
4198 , P_SQLCODE => SQLCODE
4199 , P_SQLERRM => SQLERRM
4200 , P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
4201 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
4202 , X_MSG_COUNT => X_MSG_COUNT
4203 , X_MSG_DATA => X_MSG_DATA
4204 , X_RETURN_STATUS => X_RETURN_STATUS
4205 );
4206
4207 END Copy_Line_Rows;
4208
4209
4210 PROCEDURE config_copy (
4211 p_old_config_header_id IN NUMBER
4212 , p_old_config_revision_num IN NUMBER
4213 , p_config_header_id IN NUMBER
4214 , p_config_revision_num IN NUMBER
4215 , p_new_qte_header_id IN NUMBER
4216 , p_qte_header_id IN NUMBER
4217 , p_copy_quote_control_rec IN ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type
4218 := ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Control_Rec
4219 , lx_line_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type
4220 , lx_price_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type
4221 , X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4222 , X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER
4223 , X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4224 , p_line_quantity IN NUMBER := FND_API.G_MISS_NUM
4225 ) IS
4226
4227 -- made changes to the cursor as per bug4036748
4228 CURSOR line_id_from_config (
4229 config_hdr_id NUMBER
4230 , config_rev_number NUMBER
4231 , qte_hdr_id NUMBER
4232 ) IS
4233 SELECT ASO_Quote_Line_Details.QUOTE_LINE_ID
4234 FROM ASO_Quote_Line_Details
4235 , ASO_Quote_Lines_all
4236 WHERE ASO_Quote_Line_Details.config_header_id = config_hdr_id
4237 AND ASO_Quote_Line_Details.config_revision_num = config_rev_number
4238 AND ASO_quote_line_details.quote_line_id = ASO_Quote_Lines_all.quote_line_id
4239 AND ASO_quote_line_details.ref_type_code = 'CONFIG'
4240 AND ASO_quote_line_details.ref_line_id is not null
4241 AND aso_quote_lines_all.quote_header_id = qte_hdr_id
4242 ORDER BY aso_quote_line_details.bom_sort_order;
4243
4244 CURSOR C_Serviceable_Product (
4245 l_organization_id NUMBER
4246 , l_inv_item_id NUMBER
4247 ) IS
4248 SELECT serviceable_product_flag
4249 FROM MTL_SYSTEM_ITEMS_VL
4250 WHERE inventory_item_id = l_inv_item_id
4251 AND organization_id = l_organization_id;
4252
4253 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
4254 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
4255 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4256 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
4257 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
4258 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4259 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4260 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
4261 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
4262 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4263 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4264 lx_ln_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4265 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4266 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
4267 LX_PRICE_ADJ_RLTSHIP_ID NUMBER;
4268 LX_LINE_RELATIONSHIP_ID NUMBER;
4269 X_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4270 X_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4271 X_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
4272 l_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4273 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
4274 l_quote_party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
4275 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4276 l_sales_credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
4277 l_return_status VARCHAR2 ( 1 );
4278 qte_line_id NUMBER;
4279 i NUMBER;
4280 j NUMBER;
4281 k NUMBER;
4282 l_quote_line_id NUMBER;
4283 l_serviceable_product_flag VARCHAR2 ( 1 );
4284 l_api_version CONSTANT NUMBER := 1.0;
4285 l_ref_ln_id NUMBER;
4286 l_ato_line_id NUMBER;
4287 l_top_model_line_id NUMBER;
4288
4289
4290 Cursor get_qte_line_number (x_qte_line_id NUMBER) IS
4291 SELECT line_number
4292 FROM aso_quote_lines_all
4293 WHERE quote_line_id = x_qte_line_id ;
4294
4295 l_line_number NUMBER;
4296 l_old_quote_line_id Number;
4297
4298 CURSOR get_old_line_id (
4299 config_hdr_id NUMBER
4300 , config_rev_number NUMBER
4301 , qte_hdr_id NUMBER
4302 ) IS
4303 SELECT ASO_Quote_Line_Details.QUOTE_LINE_ID
4304 FROM ASO_Quote_Line_Details
4305 , ASO_Quote_Lines_all
4306 WHERE ASO_Quote_Line_Details.config_header_id = config_hdr_id
4307 AND ASO_Quote_Line_Details.config_revision_num = config_rev_number
4308 AND ASO_quote_line_details.quote_line_id = ASO_Quote_Lines_all.quote_line_id
4309 AND ASO_Quote_Lines_all.item_type_code = 'MDL'
4310 AND aso_quote_lines_all.quote_header_id = qte_hdr_id;
4311
4312 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
4313 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4314 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
4315 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
4316 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
4317 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
4318 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
4319 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4320 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
4321 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4322
4323 l_dup_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4324
4325
4326 BEGIN
4327
4328 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4329 aso_debug_pub.ADD ('Copy_Config - Begin ' , 1, 'Y' );
4330 aso_debug_pub.ADD ( 'Copy_Config - p_new_qte_header_id ' || p_new_qte_header_id , 1 , 'Y' );
4331 aso_debug_pub.ADD ( 'Copy_Config - p_qte_header_id ' || p_qte_header_id , 1 , 'Y' );
4332 END IF;
4333
4334 x_return_status := FND_API.G_RET_STS_SUCCESS;
4335
4336 OPEN line_id_from_config (
4337 p_old_config_header_id
4338 , p_old_config_revision_num
4339 , p_qte_header_id
4340 );
4341 LOOP
4342 FETCH line_id_from_config INTO qte_line_id;
4343 EXIT WHEN line_id_from_config%NOTFOUND;
4344 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4345 aso_debug_pub.ADD ( 'Copy_Config - inside cursor qte_line_id ' || qte_line_id , 1 , 'Y' );
4346 END IF;
4347
4348 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row ( qte_line_id );
4349
4350 IF p_new_qte_header_id = p_qte_header_id THEN
4351
4352 OPEN get_old_line_id (
4353 p_old_config_header_id
4354 , p_old_config_revision_num
4355 , p_qte_header_id
4356 );
4357
4358 FETCH get_old_line_id INTO l_old_quote_line_id;
4359 CLOSE get_old_line_id;
4360
4361 OPEN get_qte_line_number(lx_line_index_link_tbl(l_old_quote_line_id));
4362 FETCH get_qte_line_number into l_line_number;
4363 CLOSE get_qte_line_number;
4364
4365 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4366 aso_debug_pub.ADD ( 'Line Number -- ' || l_line_number , 1 , 'Y' );
4367 END IF;
4368
4369
4370 l_qte_line_rec.line_number := l_line_number;
4371
4372 END IF;
4373
4374 l_qte_line_rec.quote_header_id := p_new_qte_header_id;
4375
4376 -- Setting the line quantity ( as per changes for split_line API )
4377 IF (p_line_quantity is not null ) and (p_line_quantity <> FND_API.G_MISS_NUM ) THEN
4378 l_qte_line_rec.quantity := p_line_quantity;
4379 END IF;
4380
4381 l_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows ( qte_line_id );
4382
4383 FOR k IN 1 .. l_qte_line_dtl_tbl.COUNT LOOP
4384 l_qte_line_dtl_tbl ( k ).config_header_id := p_config_header_id;
4385 l_qte_line_dtl_tbl ( k ).config_revision_num := p_config_revision_num;
4386 END LOOP;
4387
4388 l_line_attr_Ext_Tbl := ASO_UTILITY_PVT.Query_Line_Attribs_Ext_Rows ( qte_line_id );
4389
4390 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Rows ( p_qte_header_id , qte_line_id );
4391 l_dup_price_adj_tbl := l_price_adj_tbl;
4392
4393 l_price_adj_attr_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows(p_price_adj_tbl => l_price_adj_tbl);
4394
4395 l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows ( p_qte_header_id , qte_line_id );
4396
4397 --l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows ( p_qte_header_id , qte_line_id );
4398
4399 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows ( p_qte_header_id , qte_line_id );
4400
4401 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row ( p_qte_header_id , qte_line_id );
4402
4403 l_quote_party_tbl := ASO_UTILITY_PVT.Query_Quote_Party_Row ( p_qte_header_id , qte_line_id );
4404
4405 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows ( l_shipment_tbl );
4406
4407 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows ( p_qte_header_id , qte_line_id , l_shipment_tbl );
4408
4409 OPEN C_Serviceable_Product ( l_qte_line_rec.organization_id , l_qte_line_rec.inventory_item_id );
4410 FETCH C_Serviceable_Product INTO l_serviceable_product_flag;
4411 CLOSE C_Serviceable_Product;
4412
4413 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4414 aso_debug_pub.ADD ('Copy_Config - After querying all the records for the line ' , 1, 'Y' );
4415 END IF;
4416
4417 FOR j IN 1 .. l_qte_line_dtl_tbl.COUNT LOOP
4418
4419 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4420 aso_debug_pub.ADD ('Copy_Config - l_qte_line_dtl_tbl('||j||')ref_line_id: '||l_qte_line_dtl_tbl(j).ref_line_id , 1, 'Y' );
4421 aso_debug_pub.ADD ('Copy_Config - l_qte_line_dtl_tbl('||j||')top_model_line_id: '||l_qte_line_dtl_tbl(j).top_model_line_id , 1, 'Y' );
4422 aso_debug_pub.ADD ('Copy_Config - l_qte_line_dtl_tbl('||j||')ato_line_id: '||l_qte_line_dtl_tbl(j).ato_line_id , 1, 'Y' );
4423 END IF;
4424
4425 l_ref_ln_id := lx_line_index_link_tbl ( l_qte_line_dtl_tbl ( j ).ref_line_id );
4426 l_qte_line_dtl_tbl ( j ).ref_line_id := l_ref_ln_id;
4427
4428 IF (l_qte_line_dtl_tbl(j).top_model_line_id IS NOT NULL AND l_qte_line_dtl_tbl(j).top_model_line_id <> FND_API.G_MISS_NUM
4429 and lx_line_index_link_tbl.exists(l_qte_line_dtl_tbl(j).top_model_line_id) ) THEN
4430 l_top_model_line_id := lx_line_index_link_tbl ( l_qte_line_dtl_tbl ( j ).top_model_line_id );
4431 l_qte_line_dtl_tbl ( j ).top_model_line_id := l_top_model_line_id;
4432 END IF;
4433
4434 IF (l_qte_line_dtl_tbl ( j ).ato_line_id IS NOT NULL AND l_qte_line_dtl_tbl ( j ).ato_line_id <> FND_API.G_MISS_NUM
4435 and lx_line_index_link_tbl.exists(l_qte_line_dtl_tbl(j).ato_line_id) ) THEN
4436 l_ato_line_id := lx_line_index_link_tbl ( l_qte_line_dtl_tbl ( j ).ato_line_id );
4437 l_qte_line_dtl_tbl ( j ).ato_line_id := l_ato_line_id;
4438 END IF;
4439
4440
4441 END LOOP;
4442
4443 l_quote_line_id := l_qte_line_rec.quote_line_id;
4444 l_qte_line_rec.quote_line_id := NULL;
4445 l_qte_line_rec.object_version_number := FND_API.G_MISS_NUM;
4446
4447
4448 --BC4J Fix
4449
4450 FOR j IN 1 .. l_qte_line_dtl_tbl.COUNT LOOP
4451 l_qte_line_dtl_tbl(j).quote_line_detail_id := null;
4452 l_qte_line_dtl_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4453 END LOOP;
4454
4455 FOR j IN 1 .. l_price_adj_tbl.COUNT LOOP
4456 l_price_adj_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4457 l_price_adj_tbl ( j ).price_adjustment_id := null;
4458 l_price_adj_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4459 END LOOP;
4460
4461 FOR j IN 1 .. l_price_adj_attr_tbl.COUNT LOOP
4462 l_price_adj_attr_tbl(j).price_adj_attrib_id := null;
4463 l_price_adj_attr_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4464 END LOOP;
4465
4466 FOR j IN 1 .. l_price_attr_tbl.COUNT LOOP
4467 l_price_attr_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4468 l_price_attr_tbl ( j ).price_attribute_id := null;
4469 l_price_attr_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4470 END LOOP;
4471
4472 /* FOR j IN 1 .. l_payment_tbl.COUNT LOOP
4473 l_payment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4474 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
4475 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
4476 l_payment_tbl ( j ).payment_id := NULL;
4477 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4478 END LOOP; */
4479
4480 FOR j IN 1 .. l_shipment_tbl.COUNT LOOP
4481 l_shipment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4482 l_shipment_tbl ( j ).shipment_id := null;
4483 l_shipment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4484 END LOOP;
4485
4486 FOR j IN 1 .. l_sales_credit_tbl.COUNT LOOP
4487 l_sales_credit_tbl(j).QUOTE_HEADER_ID := p_new_qte_header_id;
4488 l_sales_credit_tbl(j).sales_credit_id := null;
4489 l_sales_credit_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4490 END LOOP;
4491
4492 FOR j IN 1 .. l_tax_detail_tbl.COUNT LOOP
4493 l_tax_detail_tbl(j).tax_detail_id := null;
4494 l_tax_detail_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4495 END LOOP;
4496
4497 FOR j IN 1 .. l_quote_party_tbl.COUNT LOOP
4498 l_quote_party_tbl(j).QUOTE_HEADER_ID := p_new_qte_header_id;
4499 l_quote_party_tbl(j).QUOTE_PARTY_ID := null;
4500 l_quote_party_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4501 END LOOP;
4502
4503 FOR j IN 1 .. l_line_attr_Ext_Tbl.COUNT LOOP
4504 l_line_attr_Ext_Tbl(j).line_attribute_id := null;
4505 l_line_attr_Ext_Tbl(j).object_version_number := FND_API.G_MISS_NUM;
4506 END LOOP;
4507
4508 FOR j IN 1 .. l_freight_charge_tbl.COUNT LOOP
4509 l_freight_charge_tbl(j).freight_charge_id := null;
4510 l_freight_charge_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4511 END LOOP;
4512
4513
4514 --End of BC4J Fix
4515
4516 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4517 aso_debug_pub.ADD ( 'Copy_Config - Before insert_quote_line_rows: ' || l_quote_line_id , 1 , 'Y' );
4518 END IF;
4519 ASO_QUOTE_LINES_PVT.Insert_Quote_Line_Rows (
4520 p_control_rec => l_control_rec
4521 , P_qte_Line_Rec => l_qte_line_rec
4522 , P_qte_line_dtl_tbl => l_qte_line_dtl_tbl
4523 , P_Line_Attribs_Ext_Tbl => l_line_attr_ext_tbl
4524 , P_price_attributes_tbl => l_price_attr_tbl
4525 , P_Price_Adj_Tbl => l_price_adj_tbl
4526 , P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl
4527 , P_Payment_Tbl => ASO_QUOTE_PUB.g_miss_payment_tbl
4528 , P_Shipment_Tbl => l_shipment_tbl
4529 , P_Freight_Charge_Tbl => l_freight_charge_tbl
4530 , P_Tax_Detail_Tbl => l_tax_detail_tbl
4531 , P_Sales_Credit_Tbl => l_sales_credit_tbl
4532 , P_Quote_Party_Tbl => l_quote_party_tbl
4533
4534 , x_qte_Line_Rec => lx_qte_line_rec
4535 , x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out
4536 , x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out
4537 , x_price_attributes_tbl => l_price_attr_tbl_out
4538 , x_Price_Adj_Tbl => lx_ln_price_adj_tbl
4539 , x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out
4540 , x_Payment_Tbl => l_payment_tbl_out
4541 , x_Shipment_Tbl => l_shipment_tbl_out
4542 , x_Freight_Charge_Tbl => l_freight_charge_tbl_out
4543 , x_Tax_Detail_Tbl => l_tax_detail_tbl_out
4544 , X_Sales_Credit_Tbl => l_sales_credit_tbl_out
4545 , X_Quote_Party_Tbl => l_quote_party_tbl_out
4546 , X_Return_Status => x_return_status
4547 , X_Msg_Count => x_msg_count
4548 , X_Msg_Data => x_msg_data
4549 );
4550
4551 l_quote_party_tbl :=l_quote_party_tbl_out ;
4552 l_sales_credit_tbl :=l_sales_credit_tbl_out ;
4553 l_tax_detail_tbl := l_tax_detail_tbl_out ;
4554 l_freight_charge_tbl := l_freight_charge_tbl_out ;
4555 l_shipment_tbl := l_shipment_tbl_out ;
4556 l_payment_tbl := l_payment_tbl_out ;
4557 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out ;
4558 l_Price_Attr_Tbl := l_Price_Attr_Tbl_out ;
4559 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out ;
4560 l_Line_Attr_Ext_Tbl := l_Line_Attr_Ext_Tbl_out;
4561
4562
4563
4564 IF ( x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
4565 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
4566 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
4567 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYCONFIG AFTER_INSERT' , TRUE );
4568 FND_MSG_PUB.ADD;
4569 END IF;
4570 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4571 ELSIF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
4572 RAISE FND_API.G_EXC_ERROR;
4573 END IF;
4574
4575 -- Copy the payment record
4576 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows ( p_qte_header_id , qte_line_id );
4577 IF l_payment_tbl.count > 0 then
4578
4579 FOR j IN 1 .. l_payment_tbl.COUNT LOOP
4580 l_payment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4581 l_payment_tbl ( j ).QUOTE_LINE_ID := lx_qte_line_rec.quote_line_id;
4582 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
4583 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
4584 l_payment_tbl ( j ).payment_id := NULL;
4585 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4586 END LOOP;
4587
4588 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4589 aso_debug_pub.add('Copy_Config: Before call to copy_payment_row ', 1, 'Y');
4590 END IF;
4591
4592 aso_copy_quote_pvt.copy_payment_row(p_payment_rec => l_payment_tbl(1) ,
4593 x_return_status => l_return_status,
4594 x_msg_count => x_msg_count,
4595 x_msg_data => x_msg_data);
4596
4597 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4598 aso_debug_pub.add('Copy_Config: After call to copy_payment_row: x_return_status: '||l_return_status, 1, 'Y');
4599 END IF;
4600 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
4601 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4602 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
4603 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
4604 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYCONFIG AFTER_INSERT' , TRUE );
4605 FND_MSG_PUB.ADD;
4606 END IF;
4607 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4608 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
4609 x_return_status := FND_API.G_RET_STS_ERROR;
4610 RAISE FND_API.G_EXC_ERROR;
4611 END IF;
4612
4613 END IF;
4614 -- End Copy payment record
4615
4616
4617 -- Copying the sales supplement data for the line
4618 IF ( P_Copy_Quote_Control_Rec.New_Version = FND_API.G_TRUE ) THEN
4619
4620 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4621 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before line copy_sales_supplement ' , 1 , 'Y' );
4622 END IF;
4623
4624 ASO_COPY_QUOTE_PVT.INSERT_SALES_SUPP_DATA
4625 (
4626 P_Api_Version_Number => 1.0,
4627 P_Init_Msg_List => FND_API.G_FALSE,
4628 P_Commit => FND_API.G_FALSE,
4629 P_OLD_QUOTE_LINE_ID => qte_line_id,
4630 P_NEW_QUOTE_LINE_ID => lx_qte_line_rec.quote_line_id,
4631 X_Return_Status => l_return_status,
4632 X_Msg_Count => X_Msg_Count,
4633 X_Msg_Data => X_Msg_Data );
4634
4635
4636 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4637 aso_debug_pub.ADD ( 'Copy_Rows -After line copy_sales_supplement ' || x_return_status , 1 , 'Y' );
4638 END IF;
4639
4640
4641 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
4642 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4643 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
4644 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
4645 FND_MESSAGE.Set_Token ('ROW' , 'ASO_QUOTE_HEADER', TRUE );
4646 FND_MSG_PUB.ADD;
4647 END IF;
4648 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4649
4650 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
4651 x_return_status := FND_API.G_RET_STS_ERROR;
4652 RAISE FND_API.G_EXC_ERROR;
4653 END IF;
4654 END IF; -- new version check
4655
4656
4657
4658
4659 IF P_Copy_Quote_Control_Rec.copy_attachment = FND_API.G_TRUE THEN
4660 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4661 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before config line copy_attch ' , 1 , 'Y' );
4662 END IF;
4663
4664 ASO_ATTACHMENT_INT.Copy_Attachments(
4665 p_api_version => l_api_version,
4666 p_old_object_code => 'ASO_QUOTE_LINES_ALL',
4667 p_new_object_code => 'ASO_QUOTE_LINES_ALL',
4668 p_old_object_id => qte_line_id,
4669 p_new_object_id => lx_qte_line_rec.quote_line_id,
4670 x_return_status => x_return_status ,
4671 x_msg_count => x_msg_count,
4672 x_msg_data => x_msg_data
4673 );
4674 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4675 aso_debug_pub.ADD ( 'Copy_Rows -After config line copy_attch ' || x_return_status , 1 , 'Y' );
4676 END IF;
4677 IF ( x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
4678 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
4679 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
4680 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYCONFIG AFTER_ATTACHMENTS' , TRUE );
4681 FND_MSG_PUB.ADD;
4682 END IF;
4683 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4684 ELSIF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
4685 RAISE FND_API.G_EXC_ERROR;
4686 END IF;
4687
4688 END IF;
4689
4690 FOR j IN 1 .. l_dup_price_adj_tbl.COUNT LOOP
4691 lx_price_index_link_tbl(l_dup_price_adj_tbl(j).price_adjustment_id) := lx_ln_price_adj_tbl(j).price_adjustment_id;
4692 END LOOP;
4693
4694 lx_line_index_link_tbl(qte_line_id) := lx_qte_line_rec.quote_line_id;
4695
4696 -- CLOSE line_id_from_config;
4697
4698 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4699 aso_debug_pub.ADD('Copy_Config - l_qte_line_tbl(i).item_type_code ' || l_qte_line_rec.item_type_code , 1 , 'Y' );
4700 aso_debug_pub.ADD('Copy - l_qte_line_tbl(i).inventory_item_id ' || l_qte_line_rec.inventory_item_id , 1 , 'Y' );
4701 aso_debug_pub.ADD('Copy - l_serviceable_product_flag ' || l_serviceable_product_flag , 1 , 'Y' );
4702 END IF;
4703
4704 IF l_serviceable_product_flag = 'Y' THEN
4705 ASO_COPY_QUOTE_PVT.service_copy (
4706 p_qte_line_id => l_quote_line_id
4707 , p_copy_quote_control_rec => p_copy_quote_control_rec
4708 , p_new_qte_header_id => p_new_qte_header_id
4709 , p_qte_header_id => p_qte_header_id
4710 , lx_line_index_link_tbl => lx_line_index_link_tbl
4711 , lx_price_index_link_tbl => lx_price_index_link_tbl
4712 , X_Return_Status => x_return_status
4713 , X_Msg_Count => x_msg_count
4714 , X_Msg_Data => x_msg_data
4715 , p_line_quantity => FND_API.G_MISS_NUM
4716 );
4717 END IF;
4718 IF ( x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
4719 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
4720 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
4721 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYCONFIG AFTER_SERVICE' , TRUE );
4722 FND_MSG_PUB.ADD;
4723 END IF;
4724 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4725 ELSIF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
4726 RAISE FND_API.G_EXC_ERROR;
4727 END IF;
4728
4729 END LOOP;
4730
4731 CLOSE line_id_from_config;
4732
4733 END config_copy;
4734
4735
4736 PROCEDURE service_copy (
4737 p_qte_line_id IN NUMBER
4738 , p_copy_quote_control_rec IN ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type
4739 := ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Control_Rec
4740 , p_new_qte_header_id IN NUMBER
4741 , p_qte_header_id IN NUMBER
4742 , lx_line_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type
4743 , lx_price_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type
4744 , X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4745 , X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER
4746 , X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4747 , p_line_quantity IN NUMBER := FND_API.G_MISS_NUM
4748 ) IS
4749
4750 CURSOR line_id_from_service (
4751 qte_ln_id NUMBER
4752 ) IS
4753 SELECT related_quote_line_id
4754 FROM aso_line_relationships
4755 WHERE quote_line_id = qte_ln_id
4756 AND relationship_type_code = 'SERVICE';
4757
4758 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
4759 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
4760 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4761 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
4762 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
4763 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4764 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4765 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
4766 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
4767 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4768 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4769 lx_ln_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4770 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4771 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
4772 LX_PRICE_ADJ_RLTSHIP_ID NUMBER;
4773 LX_LINE_RELATIONSHIP_ID NUMBER;
4774 X_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4775 X_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4776 X_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
4777 l_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4778 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
4779 l_quote_party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
4780 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4781 l_sales_credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
4782 l_service_ref_line_id NUMBER;
4783 l_return_status VARCHAR2 ( 1 );
4784 qte_line_id NUMBER;
4785 i NUMBER;
4786 j NUMBER;
4787 k NUMBER;
4788 l_api_version CONSTANT NUMBER := 1.0;
4789
4790 Cursor get_qte_line_number (x_qte_line_id NUMBER) IS
4791 SELECT line_number
4792 FROM aso_quote_lines_all
4793 WHERE quote_line_id = x_qte_line_id ;
4794
4795 l_line_number NUMBER;
4796
4797 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
4798 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4799 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
4800 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
4801 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
4802 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
4803 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
4804 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4805 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
4806 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4807
4808 l_dup_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4809
4810
4811 BEGIN
4812
4813 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4814 aso_debug_pub.ADD ('Copy_Service - Begin ' , 1, 'Y' );
4815 aso_debug_pub.ADD ( 'Copy_Service - p_new_qte_header_id ' || p_new_qte_header_id , 1 , 'Y' );
4816 aso_debug_pub.ADD ( 'Copy_Service - p_qte_header_id ' || p_qte_header_id , 1 , 'Y' );
4817 aso_debug_pub.ADD ( 'Copy_Service - p_qte_line_id ' || p_qte_line_id , 1 , 'Y' );
4818 END IF;
4819
4820 x_return_status := FND_API.G_RET_STS_SUCCESS;
4821
4822 OPEN line_id_from_service ( p_qte_line_id );
4823
4824 LOOP
4825 FETCH line_id_from_service INTO qte_line_id;
4826 EXIT WHEN line_id_from_service%NOTFOUND;
4827 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4828 aso_debug_pub.ADD ( 'Copy_Service - inside cursor qte_line_id ' || qte_line_id , 1 , 'Y' );
4829 END IF;
4830
4831 l_qte_line_rec :=
4832 ASO_UTILITY_PVT.Query_Qte_Line_Row ( qte_line_id );
4833
4834 IF p_new_qte_header_id = p_qte_header_id THEN
4835
4836 OPEN get_qte_line_number(lx_line_index_link_tbl(p_qte_line_id));
4837 FETCH get_qte_line_number into l_line_number;
4838 CLOSE get_qte_line_number;
4839
4840 l_qte_line_rec.line_number := l_line_number;
4841
4842 END IF;
4843
4844 -- Setting the line quantity ( as per changes for split_line API )
4845 IF (p_line_quantity is not null ) and (p_line_quantity <> FND_API.G_MISS_NUM ) THEN
4846 l_qte_line_rec.quantity := p_line_quantity;
4847 END IF;
4848
4849 l_qte_line_rec.quote_header_id := p_new_qte_header_id;
4850 l_qte_line_dtl_tbl :=
4851 ASO_UTILITY_PVT.Query_Line_Dtl_Rows ( qte_line_id );
4852
4853 IF l_qte_line_dtl_tbl.COUNT > 0 THEN
4854
4855 FOR k IN 1 .. l_qte_line_dtl_tbl.COUNT LOOP
4856
4857 IF l_qte_line_dtl_tbl ( k ).service_ref_type_code = 'QUOTE' THEN
4858
4859 IF l_qte_line_dtl_tbl ( k ).service_ref_line_id IS NOT NULL THEN
4860
4861 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4862 aso_debug_pub.ADD ( 'Copy_Service - l_qte_line_dtl_tbl(k).service_ref_line_id ' || l_qte_line_dtl_tbl ( k ).service_ref_line_id , 1 , 'Y' );
4863 END IF;
4864 l_service_ref_line_id :=
4865 lx_line_index_link_tbl ( l_qte_line_dtl_tbl ( k ).service_ref_line_id );
4866 l_qte_line_dtl_tbl ( k ).service_ref_line_id :=
4867 l_service_ref_line_id;
4868 END IF;
4869
4870 END IF;
4871
4872 END LOOP;
4873
4874 END IF;
4875
4876 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4877 aso_debug_pub.ADD ( 'Copy_Service - 2 l_service_ref_line_id ' || l_service_ref_line_id , 1 , 'Y' );
4878 END IF;
4879
4880 l_line_attr_Ext_Tbl := ASO_UTILITY_PVT.Query_Line_Attribs_Ext_Rows ( qte_line_id );
4881
4882 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Rows ( p_qte_header_id , qte_line_id );
4883
4884 l_dup_price_adj_tbl := l_price_adj_tbl;
4885
4886 l_price_adj_attr_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows ( p_price_adj_tbl => l_price_adj_tbl );
4887
4888 l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows ( p_qte_header_id , qte_line_id );
4889
4890 --l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows ( p_qte_header_id , QTE_LINE_ID );
4891
4892 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows ( p_qte_header_id , QTE_LINE_ID );
4893
4894 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row ( p_qte_header_id , QTE_LINE_ID );
4895
4896 l_quote_party_tbl := ASO_UTILITY_PVT.Query_Quote_Party_Row ( p_qte_header_id , QTE_LINE_ID );
4897
4898 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows ( l_shipment_tbl );
4899
4900 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows ( p_qte_header_id , QTE_LINE_ID , l_shipment_tbl );
4901
4902 l_qte_line_rec.quote_line_id := NULL;
4903 l_qte_line_rec.object_version_number := FND_API.G_MISS_NUM;
4904
4905
4906 --BC4J Fix
4907
4908 FOR j IN 1 .. l_qte_line_dtl_tbl.COUNT LOOP
4909 l_qte_line_dtl_tbl(j).quote_line_detail_id := null;
4910 l_qte_line_dtl_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4911 END LOOP;
4912
4913 FOR j IN 1 .. l_price_adj_tbl.COUNT LOOP
4914 l_price_adj_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4915 l_price_adj_tbl ( j ).price_adjustment_id := null;
4916 l_price_adj_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4917 END LOOP;
4918
4919 FOR j IN 1 .. l_price_adj_attr_tbl.COUNT LOOP
4920 l_price_adj_attr_tbl(j).price_adj_attrib_id := null;
4921 l_price_adj_attr_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4922 END LOOP;
4923
4924 FOR j IN 1 .. l_price_attr_tbl.COUNT LOOP
4925 l_price_attr_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4926 l_price_attr_tbl ( j ).price_attribute_id := null;
4927 l_price_attr_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4928 END LOOP;
4929
4930 /* FOR j IN 1 .. l_payment_tbl.COUNT LOOP
4931 l_payment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4932 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
4933 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
4934 l_payment_tbl ( j ).payment_id := NULL;
4935 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4936 END LOOP; */
4937
4938 FOR j IN 1 .. l_shipment_tbl.COUNT LOOP
4939 l_shipment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
4940 l_shipment_tbl ( j ).shipment_id := null;
4941 l_shipment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
4942 END LOOP;
4943
4944 FOR j IN 1 .. l_sales_credit_tbl.COUNT LOOP
4945 l_sales_credit_tbl(j).QUOTE_HEADER_ID := p_new_qte_header_id;
4946 l_sales_credit_tbl(j).sales_credit_id := null;
4947 l_sales_credit_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4948 END LOOP;
4949
4950 FOR j IN 1 .. l_quote_party_tbl.COUNT LOOP
4951 l_quote_party_tbl(j).QUOTE_HEADER_ID := p_new_qte_header_id;
4952 l_quote_party_tbl(j).QUOTE_PARTY_ID := null;
4953 l_quote_party_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4954 END LOOP;
4955
4956 FOR j IN 1 .. l_tax_detail_tbl.COUNT LOOP
4957 l_tax_detail_tbl(j).tax_detail_id := null;
4958 l_tax_detail_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4959 END LOOP;
4960
4961 FOR j IN 1 .. l_line_attr_Ext_Tbl.COUNT LOOP
4962 l_line_attr_Ext_Tbl(j).line_attribute_id := null;
4963 l_line_attr_Ext_Tbl(j).object_version_number := FND_API.G_MISS_NUM;
4964 END LOOP;
4965
4966 FOR j IN 1 .. l_freight_charge_tbl.COUNT LOOP
4967 l_freight_charge_tbl(j).freight_charge_id := null;
4968 l_freight_charge_tbl(j).object_version_number := FND_API.G_MISS_NUM;
4969 END LOOP;
4970
4971
4972 --End of BC4J Fix
4973
4974 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4975 aso_debug_pub.ADD ( 'Copy_Service - Before insert_quote_line_rows: ' || p_qte_line_id , 1 , 'Y' );
4976 END IF;
4977 ASO_QUOTE_LINES_PVT.Insert_Quote_Line_Rows (
4978 p_control_rec => l_control_rec
4979 , P_qte_Line_Rec => l_qte_line_rec
4980 , P_qte_line_dtl_tbl => l_qte_line_dtl_tbl
4981 , P_Line_Attribs_Ext_Tbl => l_line_attr_ext_tbl
4982 , P_price_attributes_tbl => l_price_attr_tbl
4983 , P_Price_Adj_Tbl => l_price_adj_tbl
4984 , P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl
4985 , P_Payment_Tbl => ASO_QUOTE_PUB.g_miss_payment_tbl
4986 , P_Shipment_Tbl => l_shipment_tbl
4987 , P_Freight_Charge_Tbl => l_freight_charge_tbl
4988 , P_Tax_Detail_Tbl => l_tax_detail_tbl
4989 , P_Sales_Credit_Tbl => l_sales_credit_tbl
4990 , P_Quote_Party_Tbl => l_quote_party_tbl
4991 , x_qte_Line_Rec => lx_qte_line_rec
4992 , x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out
4993 , x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out
4994 , x_price_attributes_tbl => l_price_attr_tbl_out
4995 , x_Price_Adj_Tbl => lx_ln_price_adj_tbl
4996 , x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out
4997 , x_Payment_Tbl => l_payment_tbl_out
4998 , x_Shipment_Tbl => l_shipment_tbl_out
4999 , x_Freight_Charge_Tbl => l_freight_charge_tbl_out
5000 , x_Tax_Detail_Tbl => l_tax_detail_tbl_out
5001 , X_Sales_Credit_Tbl => l_sales_credit_tbl_out
5002 , X_Quote_Party_Tbl => l_quote_party_tbl_out
5003 , X_Return_Status => l_return_status
5004 , X_Msg_Count => x_msg_count
5005 , X_Msg_Data => x_msg_data
5006 );
5007
5008 l_quote_party_tbl :=l_quote_party_tbl_out ;
5009 l_sales_credit_tbl :=l_sales_credit_tbl_out ;
5010 l_tax_detail_tbl := l_tax_detail_tbl_out ;
5011 l_freight_charge_tbl := l_freight_charge_tbl_out ;
5012 l_shipment_tbl := l_shipment_tbl_out ;
5013 l_payment_tbl := l_payment_tbl_out ;
5014 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out ;
5015 l_Price_Attr_Tbl := l_Price_Attr_Tbl_out ;
5016 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out ;
5017 l_Line_Attr_Ext_Tbl := l_Line_Attr_Ext_Tbl_out;
5018
5019
5020
5021 IF ( x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
5022 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5023 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
5024 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYSERVICE AFTER_INSERT' , TRUE );
5025 FND_MSG_PUB.ADD;
5026 END IF;
5027 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5028 ELSIF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
5029 RAISE FND_API.G_EXC_ERROR;
5030 END IF;
5031
5032
5033 -- Copy the payment record
5034 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows ( p_qte_header_id , QTE_LINE_ID );
5035
5036 IF l_payment_tbl.count > 0 then
5037
5038 FOR j IN 1 .. l_payment_tbl.COUNT LOOP
5039 l_payment_tbl ( j ).QUOTE_HEADER_ID := p_new_qte_header_id;
5040 l_payment_tbl ( j ).QUOTE_LINE_ID := lx_qte_line_rec.quote_line_id;
5041 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
5042 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
5043 l_payment_tbl ( j ).payment_id := NULL;
5044 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
5045 END LOOP;
5046
5047 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5048 aso_debug_pub.add('Service_Copy: Before call to copy_payment_row ', 1, 'Y');
5049 END IF;
5050
5051 aso_copy_quote_pvt.copy_payment_row(p_payment_rec => l_payment_tbl(1) ,
5052 x_return_status => l_return_status,
5053 x_msg_count => x_msg_count,
5054 x_msg_data => x_msg_data);
5055
5056 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5057 aso_debug_pub.add('Service_Copy:: After call to copy_payment_row: x_return_status: '||l_return_status, 1, 'Y');
5058 END IF;
5059 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
5060 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5061 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5062 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
5063 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYSERVICE AFTER_INSERT' , TRUE );
5064 FND_MSG_PUB.ADD;
5065 END IF;
5066 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5067 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
5068 x_return_status := FND_API.G_RET_STS_ERROR;
5069 RAISE FND_API.G_EXC_ERROR;
5070 END IF;
5071
5072 END IF;
5073 -- End Copy payment record
5074
5075 -- Copying the sales supplement data for the line
5076 IF ( P_Copy_Quote_Control_Rec.New_Version = FND_API.G_TRUE ) THEN
5077
5078 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5079 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before line copy_sales_supplement ' , 1 , 'Y' );
5080 END IF;
5081
5082 ASO_COPY_QUOTE_PVT.INSERT_SALES_SUPP_DATA
5083 (
5084 P_Api_Version_Number => 1.0,
5085 P_Init_Msg_List => FND_API.G_FALSE,
5086 P_Commit => FND_API.G_FALSE,
5087 P_OLD_QUOTE_LINE_ID => qte_line_id,
5088 P_NEW_QUOTE_LINE_ID => lx_qte_line_rec.quote_line_id,
5089 X_Return_Status => l_return_status,
5090 X_Msg_Count => X_Msg_Count,
5091 X_Msg_Data => X_Msg_Data );
5092
5093
5094 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5095 aso_debug_pub.ADD ( 'Copy_Rows -After line copy_sales_supplement ' || x_return_status , 1 , 'Y' );
5096 END IF;
5097
5098
5099 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
5100 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5101 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5102 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
5103 FND_MESSAGE.Set_Token ('ROW' , 'ASO_QUOTE_HEADER', TRUE );
5104 FND_MSG_PUB.ADD;
5105 END IF;
5106 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5107
5108 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
5109 x_return_status := FND_API.G_RET_STS_ERROR;
5110 RAISE FND_API.G_EXC_ERROR;
5111 END IF;
5112 END IF; -- new version check
5113
5114
5115
5116 IF P_Copy_Quote_Control_Rec.copy_attachment = FND_API.G_TRUE THEN
5117 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5118 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before config line copy_attch ' , 1 , 'Y' );
5119 END IF;
5120
5121 ASO_ATTACHMENT_INT.Copy_Attachments (
5122 p_api_version => l_api_version,
5123 p_old_object_code => 'ASO_QUOTE_LINES_ALL',
5124 p_new_object_code => 'ASO_QUOTE_LINES_ALL',
5125 p_old_object_id => qte_line_id,
5126 p_new_object_id => lx_qte_line_rec.quote_line_id,
5127 x_return_status => x_return_status,
5128 x_msg_count => x_msg_count,
5129 x_msg_data => x_msg_data
5130 );
5131 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5132 aso_debug_pub.ADD ( 'Copy_Rows -After config line copy_attch ' || x_return_status , 1 , 'Y' );
5133 END IF;
5134 IF ( x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
5135 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5136 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
5137 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYSERVICE AFTER_ATTACHMENTS' , TRUE );
5138 FND_MSG_PUB.ADD;
5139 END IF;
5140 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5141 ELSIF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
5142 RAISE FND_API.G_EXC_ERROR;
5143 END IF;
5144
5145 END IF;
5146
5147 FOR j IN 1 .. l_dup_price_adj_tbl.COUNT LOOP
5148 lx_price_index_link_tbl(l_dup_price_adj_tbl(j).price_adjustment_id) := lx_ln_price_adj_tbl(j).price_adjustment_id;
5149 END LOOP;
5150
5151 lx_line_index_link_tbl ( qte_line_id ) := lx_qte_line_rec.quote_line_id;
5152
5153 END LOOP;
5154
5155 CLOSE line_id_from_service;
5156
5157 END service_copy;
5158
5159
5160 PROCEDURE Get_Quote_Exp_Date (
5161 X_Quote_Exp_Date OUT NOCOPY /* file.sql.39 change */ DATE
5162 , X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
5163 , X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER
5164 , X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
5165 ) IS
5166
5167 CURSOR C_Get_Expiration_Date (
5168 l_Def_Cal VARCHAR2
5169 , l_Def_Per VARCHAR2
5170 ) IS
5171 SELECT End_Date
5172 FROM GL_PERIODS_V
5173 WHERE Period_Type = l_Def_Per
5174 AND Period_Set_Name = l_Def_Cal
5175 AND SYSDATE BETWEEN Start_Date AND End_Date;
5176
5177 l_Default_Cal_Prof VARCHAR2 ( 15 )
5178 := FND_PROFILE.VALUE ('ASO_DEFAULT_EXP_GL_CAL' );
5179 l_Default_Per_Prof VARCHAR2 ( 15 )
5180 := FND_PROFILE.VALUE ('ASO_DEFAULT_EXP_GL_PERIOD' );
5181 l_qte_duration_prof NUMBER
5182 := FND_PROFILE.VALUE ('ASO_QUOTE_DURATION' );
5183
5184 BEGIN
5185
5186 X_Return_Status := FND_API.G_RET_STS_SUCCESS;
5187
5188 IF l_Default_Cal_Prof IS NOT NULL
5189 AND l_Default_Per_Prof IS NOT NULL THEN
5190
5191 OPEN C_Get_Expiration_Date (
5192 l_Default_Cal_Prof
5193 , l_Default_Per_Prof
5194 );
5195 FETCH C_Get_Expiration_Date INTO X_Quote_Exp_Date;
5196
5197 IF C_Get_Expiration_Date%NOTFOUND THEN
5198
5199 IF l_qte_duration_prof IS NOT NULL THEN
5200 X_Quote_Exp_Date := SYSDATE + l_qte_duration_prof;
5201 ELSE
5202 /* If profile ASO_QUOTE_DURATION is null, then exp date is sysdate + 30
5203 see bug 3704719 for more detaisl */
5204 X_Quote_Exp_Date := sysdate + NVL(FND_PROFILE.value('ASO_QUOTE_DURATION'), 30);
5205 END IF;
5206
5207 END IF;
5208
5209 CLOSE C_Get_Expiration_Date;
5210
5211 ELSE
5212
5213 IF l_qte_duration_prof IS NOT NULL THEN
5214 X_Quote_Exp_Date := SYSDATE + l_qte_duration_prof;
5215 ELSE
5216 /* If profile ASO_QUOTE_DURATION is null, then exp date is sysdate + 30
5217 see bug 3704719 for more detaisl */
5218 X_Quote_Exp_Date := sysdate + NVL(FND_PROFILE.value('ASO_QUOTE_DURATION'), 30);
5219 END IF;
5220
5221 END IF;
5222
5223 END Get_Quote_Exp_Date;
5224
5225
5226 PROCEDURE COPY_SALES_SUPPLEMENT (
5227 P_Api_Version_Number IN NUMBER
5228 , P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE
5229 , P_Commit IN VARCHAR2 := FND_API.G_FALSE
5230 , p_old_quote_header_id IN NUMBER
5231 , p_new_quote_header_id IN NUMBER
5232 , X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
5233 , X_Msg_Count OUT NOCOPY /* file.sql.39 change */ VARCHAR2
5234 , X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
5235 ) IS
5236
5237 CURSOR get_template_id (
5238 qte_header_id NUMBER
5239 ) IS
5240 SELECT template_instance_id, template_id
5241 FROM aso_sup_tmpl_instance
5242 WHERE owner_table_name = 'ASO_QUOTE_HEADERS'
5243 AND owner_table_id = qte_header_id;
5244
5245 CURSOR get_values (
5246 temp_instance_id NUMBER
5247 ) IS
5248 SELECT sect_comp_map_id, VALUE, value_type_qualifier, response_id
5249 FROM aso_sup_instance_value
5250 WHERE template_instance_id = temp_instance_id;
5251
5252 l_old_template_instance_id NUMBER;
5253 l_new_template_instance_id NUMBER;
5254 l_sup_instance_rowid ROWID;
5255 l_template_instance_rowid ROWID;
5256 l_instance_value_id NUMBER;
5257 l_old_instance_value_id NUMBER;
5258 l_api_name VARCHAR2 ( 50 ) := 'COPY_SALES_SUPPLEMENT';
5259 l_api_version_number CONSTANT NUMBER := 1.0;
5260
5261 BEGIN
5262
5263 -- Establish a standard save point
5264 SAVEPOINT COPY_SALES_SUPPLEMENT_PVT;
5265
5266 -- Standard call to check for call compatability
5267 IF NOT FND_API.Compatible_API_Call (
5268 l_api_version_number
5269 , p_api_version_number
5270 , l_api_name
5271 , G_PKG_NAME
5272 ) THEN
5273 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5274 END IF;
5275
5276 -- Initialize message list if p_init_msg_list is set to TRUE.
5277 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
5278 FND_MSG_PUB.initialize;
5279 END IF;
5280
5281 -- API BODY
5282 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5283 aso_debug_pub.ADD ('COPY_SALES_SUPPLEMENT API: Begin' , 1, 'N' );
5284 aso_debug_pub.ADD ( 'Old Qte Header Id : ' || TO_CHAR ( p_old_quote_header_id ) , 1 , 'N' );
5285 aso_debug_pub.ADD ( 'New Qte Header Id : ' || TO_CHAR ( p_new_quote_header_id ) , 1 , 'N' );
5286 END IF;
5287
5288 -- Get the template id's and template_instance_id's based upon the
5289 -- quote header id
5290
5291 FOR template_val IN get_template_id ( p_old_quote_header_id ) LOOP
5292 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5293 aso_debug_pub.ADD ( 'Template Id : ' || TO_CHAR ( template_val.template_id ) , 1 , 'N' );
5294 aso_debug_pub.ADD ( ' Old Template Instance Id : ' || TO_CHAR ( template_val.template_instance_id ) , 1 , 'N' );
5295
5296 -- Create a new row in the ASO_SUP_TMPL_INSTANCE Table with the template id
5297
5298 aso_debug_pub.ADD ( 'Inserting a row into tmpl_instance table' , 1 , 'N' );
5299 END IF;
5300
5301 -- Initiate the variable to null,
5302 -- so that each time they contain new value for every pass of loop
5303
5304 l_new_template_instance_id := NULL;
5305 ASO_SUP_TMPL_INSTANCE_PKG.INSERT_ROW (
5306 PX_ROWID => l_template_instance_rowid
5307 , PX_TEMPLATE_INSTANCE_ID => l_new_template_instance_id
5308 , P_created_by => FND_GLOBAL.USER_ID
5309 , P_creation_date => SYSDATE
5310 , P_last_updated_by => FND_GLOBAL.USER_ID
5311 , P_last_update_date => SYSDATE
5312 , P_last_update_login => FND_GLOBAL.CONC_LOGIN_ID
5313 , P_TEMPLATE_ID => template_val.template_id
5314 , P_Owner_Table_Name => 'ASO_QUOTE_HEADERS'
5315 , P_Owner_Table_Id => p_new_quote_header_id
5316 , P_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM
5317 );
5318 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5319 aso_debug_pub.ADD ( ' New Template Instance Id : ' || TO_CHAR ( l_new_template_instance_id ) , 1 , 'N' );
5320 END IF;
5321
5322 -- Get the values for that instance
5323 FOR inst_val IN get_values ( template_val.template_instance_id ) LOOP
5324 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5325 aso_debug_pub.ADD ( 'Value : ' || inst_val.VALUE, 1, 'N' );
5326 aso_debug_pub.ADD ( 'Value Type Qualifier : ' || inst_val.value_type_qualifier , 1 , 'N' );
5327 aso_debug_pub.ADD ( 'Response Id : ' || TO_CHAR ( inst_val.response_id ) , 1 , 'N' );
5328 END IF;
5329
5330 -- If values are fetched then insert rows
5331 IF inst_val.sect_comp_map_id IS NOT NULL THEN
5332 -- Initiate the variables to null,
5333 -- so that each time they contain new value for every pass of loop
5334
5335 l_instance_value_id := NULL;
5336 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5337 aso_debug_pub.ADD ( 'Inserting a row into instance_value table' , 1 , 'N' );
5338 END IF;
5339
5340 -- Create a new row in the ASO_SUP_INSTANCE_VALUE table
5341 ASO_SUP_INSTANCE_VALUE_PKG.INSERT_ROW (
5342 PX_ROWID => l_sup_instance_rowid
5343 , PX_INSTANCE_VALUE_ID => l_instance_value_id
5344 , P_SECT_COMP_MAP_ID => inst_val.sect_comp_map_id
5345 , P_Template_Instance_ID => l_new_template_instance_id
5346 , p_value => inst_val.VALUE
5347 , p_value_type_qualifier => inst_val.value_type_qualifier
5348 , p_response_id => inst_val.response_id
5349 , P_created_by => FND_GLOBAL.USER_ID
5350 , P_last_updated_by => FND_GLOBAL.USER_ID
5351 , P_last_update_login => FND_GLOBAL.CONC_LOGIN_ID
5352 , P_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM
5353 );
5354 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5355 aso_debug_pub.ADD ( 'New Instance Value Id : ' || TO_CHAR ( l_instance_value_id ) , 1 , 'N' );
5356 END IF;
5357 END IF;
5358
5359 END LOOP; -- instance value loop
5360
5361 END LOOP; -- template loop
5362
5363 -- Standard check for p_commit
5364 IF FND_API.to_Boolean ( p_commit ) THEN
5365 COMMIT WORK;
5366 END IF;
5367
5368 -- Initialize API return status to success
5369 x_return_status := FND_API.G_RET_STS_SUCCESS;
5370
5371 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5372 aso_debug_pub.ADD ( 'COPY_SALES_SUPPLEMENT API: ' || l_api_name || 'end' , 1 , 'N' );
5373 END IF;
5374
5375 EXCEPTION
5376
5377 WHEN FND_API.G_EXC_ERROR THEN
5378 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
5379 P_API_NAME => L_API_NAME
5380 , P_PKG_NAME => G_PKG_NAME
5381 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
5382 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
5383 , X_MSG_COUNT => X_MSG_COUNT
5384 , X_MSG_DATA => X_MSG_DATA
5385 , X_RETURN_STATUS => X_RETURN_STATUS
5386 );
5387
5388 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5389 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
5390 P_API_NAME => L_API_NAME
5391 , P_PKG_NAME => G_PKG_NAME
5392 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
5393 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
5394 , X_MSG_COUNT => X_MSG_COUNT
5395 , X_MSG_DATA => X_MSG_DATA
5396 , X_RETURN_STATUS => X_RETURN_STATUS
5397 );
5398
5399 WHEN OTHERS THEN
5400 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
5401 P_API_NAME => L_API_NAME
5402 , P_PKG_NAME => G_PKG_NAME
5403 , P_SQLCODE => SQLCODE
5404 , P_SQLERRM => SQLERRM
5405 , P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
5406 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
5407 , X_MSG_COUNT => X_MSG_COUNT
5408 , X_MSG_DATA => X_MSG_DATA
5409 , X_RETURN_STATUS => X_RETURN_STATUS
5410 );
5411
5412 END COPY_SALES_SUPPLEMENT;
5413
5414
5415
5416 PROCEDURE Copy_Opp_Quote(
5417 p_api_version_number IN NUMBER := 1.0,
5418 p_qte_header_id IN NUMBER,
5419 p_new_qte_header_id IN NUMBER,
5420 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5421 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5422 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
5423 )
5424 IS
5425
5426 CURSOR C_Get_Opp_From_Hdr (qte_hdr NUMBER) IS
5427 SELECT request_id, program_application_id, program_id, program_update_date,
5428 quote_object_type_code, quote_object_id, object_type_code, object_id,
5429 relationship_type_code, reciprocal_flag
5430 FROM ASO_QUOTE_RELATED_OBJECTS
5431 WHERE relationship_type_code = 'OPP_QUOTE'
5432 AND quote_object_id = qte_hdr;
5433
5434 l_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
5435 l_related_obj_id NUMBER;
5436
5437 BEGIN
5438
5439 x_return_status := FND_API.G_RET_STS_SUCCESS;
5440 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5441 aso_debug_pub.ADD ( 'Copy_Opp_Quote: p_qte_header_id: ' || p_qte_header_id, 1 , 'N' );
5442 aso_debug_pub.ADD ( 'Copy_Opp_Quote: p_new_qte_header_id: ' || p_new_qte_header_id, 1 , 'N' );
5443 END IF;
5444
5445 OPEN C_Get_Opp_From_Hdr (p_qte_header_id);
5446 FETCH C_Get_Opp_From_Hdr INTO l_related_obj_rec.request_id, l_related_obj_rec.program_application_id,
5447 l_related_obj_rec.program_id, l_related_obj_rec.program_update_date,
5448 l_related_obj_rec.quote_object_type_code, l_related_obj_rec.quote_object_id,
5449 l_related_obj_rec.object_type_code, l_related_obj_rec.object_id,
5450 l_related_obj_rec.relationship_type_code, l_related_obj_rec.reciprocal_flag;
5451 IF C_Get_Opp_From_Hdr%NOTFOUND THEN
5452 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5453 aso_debug_pub.ADD ( 'Copy_Opp_Quote: Not from Opportunity ', 1 , 'N' );
5454 END IF;
5455 CLOSE C_Get_Opp_From_Hdr;
5456 RETURN;
5457 END IF;
5458 CLOSE C_Get_Opp_From_Hdr;
5459
5460 l_related_obj_rec.quote_object_id := p_new_qte_header_id;
5461
5462
5463 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5464 aso_debug_pub.ADD ( 'Copy_Opp_Quote: before insert rel object ', 1 , 'N' );
5465 END IF;
5466 aso_related_obj_pvt.create_related_obj (
5467 p_api_version_number => 1.0,
5468 p_validation_level => fnd_api.g_valid_level_none,
5469 p_related_obj_rec => l_related_obj_rec,
5470 x_related_object_id => l_related_obj_id,
5471 x_return_status => x_return_status,
5472 x_msg_count => x_msg_count,
5473 x_msg_data => x_msg_data
5474 );
5475
5476 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5477 aso_debug_pub.ADD ( 'Copy_Opp_Quote: after insert_rel_object:x_return_status: ' || x_return_status, 1 , 'N' );
5478 END IF;
5479 IF x_return_status <> fnd_api.g_ret_sts_success THEN
5480 IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error) THEN
5481 fnd_message.set_name ( 'ASO', 'ASO_API_ERROR_IN_CREATING_RLTSHIPS');
5482 fnd_msg_pub.ADD;
5483 END IF;
5484
5485 END IF;
5486
5487
5488 END Copy_Opp_Quote;
5489
5490 PROCEDURE Split_Model_Line (
5491 P_Api_Version_Number IN NUMBER,
5492 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
5493 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
5494 P_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type,
5495 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
5496 P_Original_Qte_Line_Rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
5497 P_Qte_Line_Tbl IN ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
5498 X_Quote_Line_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
5499 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5500 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5501 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2 )
5502
5503 IS
5504
5505 CURSOR C_Validate_Quote (
5506 x_qte_header_id NUMBER
5507 ) IS
5508 SELECT 'X'
5509 FROM ASO_QUOTE_HEADERS_ALL
5510 WHERE quote_header_id = x_qte_header_id;
5511
5512 CURSOR C_Validate_Quote_Line (
5513 x_qte_header_id NUMBER,
5514 x_qte_line_id NUMBER
5515 ) IS
5516 SELECT 'X'
5517 FROM ASO_QUOTE_LINES_ALL
5518 WHERE quote_header_id = x_qte_header_id
5519 AND quote_line_id = x_qte_line_id;
5520
5521
5522 CURSOR C_Serviceable_Product (
5523 l_organization_id NUMBER
5524 , l_inv_item_id NUMBER
5525 ) IS
5526 SELECT serviceable_product_flag, service_item_flag
5527 FROM MTL_SYSTEM_ITEMS_VL
5528 WHERE inventory_item_id = l_inv_item_id
5529 AND organization_id = l_organization_id;
5530
5531
5532 CURSOR c_price_adj_rel (
5533 x_quote_line_id NUMBER
5534 ) IS
5535 SELECT apr.ADJ_RELATIONSHIP_ID, apr.CREATION_DATE, apr.CREATED_BY
5536 , apr.LAST_UPDATE_DATE, apr.LAST_UPDATED_BY
5537 , apr.LAST_UPDATE_LOGIN, apr.PROGRAM_APPLICATION_ID
5538 , apr.PROGRAM_ID, apr.PROGRAM_UPDATE_DATE, apr.REQUEST_ID
5539 , apr.QUOTE_LINE_ID, apr.PRICE_ADJUSTMENT_ID
5540 , apr.RLTD_PRICE_ADJ_ID, apr.OBJECT_VERSION_NUMBER
5541 FROM ASO_PRICE_ADJ_RELATIONSHIPS apr
5542 , ASO_PRICE_ADJUSTMENTS apa
5543
5544 WHERE apr.price_adjustment_id = apa.price_adjustment_id
5545 AND apr.quote_line_id = x_quote_line_id
5546 AND apa.quote_line_id = x_quote_line_id
5547 AND apa.modifier_line_type_code <> 'PRG';
5548
5549
5550 CURSOR C_Get_Ship_Id (
5551 lc_line_id NUMBER
5552 ) IS
5553 SELECT shipment_id
5554 FROM ASO_SHIPMENTS
5555 WHERE quote_line_id = lc_line_id;
5556
5557
5558 CURSOR c_line_relation (
5559 x_quote_line_id NUMBER
5560 ) IS
5561 SELECT LINE_RELATIONSHIP_ID, CREATION_DATE, CREATED_BY
5562 , LAST_UPDATED_BY, LAST_UPDATE_DATE, LAST_UPDATE_LOGIN
5563 , REQUEST_ID, PROGRAM_APPLICATION_ID, PROGRAM_ID
5564 , PROGRAM_UPDATE_DATE, QUOTE_LINE_ID, RELATED_QUOTE_LINE_ID
5565 , RELATIONSHIP_TYPE_CODE, RECIPROCAL_FLAG, OBJECT_VERSION_NUMBER
5566 FROM ASO_LINE_RELATIONSHIPS
5567 WHERE relationship_type_code <> 'SERVICE'
5568 CONNECT BY PRIOR related_quote_line_id = quote_line_id
5569 START WITH quote_line_id = x_quote_line_id;
5570
5571 CURSOR get_latest_date (
5572 c_quote_header_id NUMBER
5573 ) IS
5574 SELECT last_update_date
5575 FROM aso_quote_headers_all
5576 WHERE quote_header_id = c_quote_header_id;
5577
5578
5579 Cursor Get_Max_Line_Number ( c_QUOTE_HEADER_ID Number) IS
5580 Select Max(Line_number)
5581 From ASO_QUOTE_LINES_ALL
5582 WHERE quote_header_id = c_QUOTE_HEADER_ID;
5583
5584 x_qte_header_rec aso_quote_pub.qte_header_rec_type;
5585 x_qte_line_tbl aso_quote_pub.qte_line_tbl_type;
5586 x_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type;
5587 x_hd_price_attributes_tbl aso_quote_pub.price_attributes_tbl_type;
5588 x_hd_payment_tbl aso_quote_pub.payment_tbl_type;
5589 x_hd_shipment_tbl aso_quote_pub.shipment_tbl_type;
5590 x_hd_freight_charge_tbl aso_quote_pub.freight_charge_tbl_type;
5591 x_hd_tax_detail_tbl aso_quote_pub.tax_detail_tbl_type;
5592 x_line_attr_ext_tbl aso_quote_pub.line_attribs_ext_tbl_type;
5593 x_line_rltship_tbl aso_quote_pub.line_rltship_tbl_type;
5594 x_price_adjustment_tbl aso_quote_pub.price_adj_tbl_type;
5595 x_price_adj_attr_tbl aso_quote_pub.price_adj_attr_tbl_type;
5596 x_price_adj_rltship_tbl aso_quote_pub.price_adj_rltship_tbl_type;
5597 x_ln_price_attributes_tbl aso_quote_pub.price_attributes_tbl_type;
5598 x_ln_payment_tbl aso_quote_pub.payment_tbl_type;
5599 x_ln_shipment_tbl aso_quote_pub.shipment_tbl_type;
5600 x_ln_freight_charge_tbl aso_quote_pub.freight_charge_tbl_type;
5601 x_ln_tax_detail_tbl aso_quote_pub.tax_detail_tbl_type;
5602 l_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
5603 l_line_number NUMBER;
5604
5605 l_val VARCHAR2 ( 1 );
5606 l_qte_line_rec ASO_QUOTE_PUB.qte_line_rec_Type;
5607 l_qte_line_detail_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
5608 l_qte_shipment_dtl_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
5609 l_quantity NUMBER := 0;
5610 l_remaining_quantity NUMBER := 0;
5611 l_return_value Varchar2(1);
5612
5613 l_line_index_link_tbl ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type;
5614 l_old_config_header_id NUMBER;
5615 l_old_config_revision_num NUMBER;
5616 l_config_hdr_id NUMBER;
5617 l_config_rev_nbr NUMBER;
5618 l_return_status VARCHAR2 ( 1 );
5619 l_api_version_number CONSTANT NUMBER := 1.0;
5620 l_api_version CONSTANT NUMBER := 1.0;
5621 l_service_item_flag VARCHAR2 ( 1 );
5622 l_serviceable_product_flag VARCHAR2 ( 1 );
5623 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
5624 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
5625 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
5626 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
5627 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
5628 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
5629 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
5630 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
5631 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
5632 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
5633 lx_ln_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
5634 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
5635 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
5636 l_config_control_rec ASO_CFG_INT.Control_Rec_Type
5637 := ASO_CFG_INT.G_MISS_Control_Rec;
5638 l_Copy_Quote_Control_Rec ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type;
5639 LX_PRICE_ADJ_RLTSHIP_ID NUMBER;
5640 LX_LINE_RELATIONSHIP_ID NUMBER;
5641 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
5642 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
5643 l_ship_id NUMBER;
5644 -- l_appl_param_rec CZ_API_PUB.appl_param_rec_type;
5645 l_price_index_link_tbl ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type;
5646
5647 l_quote_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_MISS_Qte_Header_Rec;
5648 l_api_name varchar2(50) := 'Split_Model_Line';
5649 TYPE inserted_qte_line_Rec_Type IS RECORD
5650 (
5651 quote_line_id NUMBER:= FND_API.G_MISS_NUM,
5652 quantity NUMBER := FND_API.G_MISS_NUM
5653 );
5654
5655 TYPE inserted_qte_line_Tbl_Type IS TABLE OF inserted_qte_line_Rec_Type INDEX BY BINARY_INTEGER;
5656
5657 G_MISS_inserted_qte_line_Rec inserted_qte_line_Rec_Type;
5658 G_MISS_inserted_qte_line_tbl inserted_qte_line_tbl_type;
5659 l_inserted_qte_line_tbl inserted_qte_line_Tbl_Type := G_MISS_inserted_qte_line_tbl;
5660
5661 l_total_lines NUMBER := 0;
5662
5663 l_qty_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Qte_Line_Tbl;
5664 l_orig_item_id_tbl CZ_API_PUB.number_tbl_type;
5665 l_new_item_id_tbl CZ_API_PUB.number_tbl_type;
5666 -- hyang: for bug 2692785
5667 lx_status VARCHAR2(1);
5668
5669 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
5670 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
5671 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
5672 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
5673 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
5674 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
5675 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
5676 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
5677 l_qte_line_detail_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
5678 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
5679
5680 l_dup_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
5681 l_ato_model VARCHAR2(1) := FND_API.G_FALSE;
5682
5683
5684 BEGIN
5685
5686 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5687 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - Begin- ASO_COPY_QUOTE_PVT.SPLIT_MODEL_LINE ' , 1 , 'Y' );
5688 END IF;
5689 -- Standard Start of API savepoint
5690 SAVEPOINT SPLIT_MODEL_LINE_PVT;
5691
5692 -- Standard call to check for call compatibility.
5693 IF NOT FND_API.Compatible_API_Call (
5694 l_api_version_number
5695 , p_api_version_number
5696 , l_api_name
5697 , G_PKG_NAME
5698 ) THEN
5699 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5700 END IF;
5701
5702 -- Initialize message list if p_init_msg_list is set to TRUE.
5703 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
5704 FND_MSG_PUB.initialize;
5705 END IF;
5706 -- Debug Message
5707 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW ) THEN
5708 FND_MESSAGE.Set_Name ('ASO' , 'Copy Quote API: Start' );
5709 FND_MSG_PUB.ADD;
5710 END IF;
5711
5712 -- Initialize API return status to success
5713 x_return_status := FND_API.G_RET_STS_SUCCESS;
5714
5715 --
5716 -- API body
5717 --
5718 -- Validating the qte_header_id
5719
5720 -- hyang: for bug 2692785
5721 ASO_CONC_REQ_INT.Lock_Exists(
5722 p_quote_header_id => P_Qte_Header_Rec.quote_header_id,
5723 x_status => lx_status);
5724
5725 IF (lx_status = FND_API.G_TRUE) THEN
5726 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5727 FND_MESSAGE.Set_Name('ASO', 'ASO_CONC_REQUEST_RUNNING');
5728 FND_MSG_PUB.ADD;
5729 END IF;
5730 RAISE FND_API.G_EXC_ERROR;
5731 END IF;
5732
5733 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5734 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - Vaildating the quote ' , 1 , 'Y' );
5735 END IF;
5736
5737 OPEN C_Validate_Quote ( P_Qte_Header_Rec.quote_header_id);
5738 FETCH C_Validate_Quote INTO l_val;
5739
5740 IF C_Validate_Quote%NOTFOUND THEN
5741
5742 x_return_status := FND_API.G_RET_STS_ERROR;
5743 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5744 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_INVALID_ID' );
5745 FND_MESSAGE.Set_Token ('COLUMN' , 'ORIGINAL_QUOTE_ID', FALSE );
5746 FND_MESSAGE.Set_Token ( 'VALUE' , TO_CHAR ( P_Qte_Header_Rec.quote_header_id ) , FALSE );
5747 FND_MSG_PUB.ADD;
5748 END IF;
5749 CLOSE C_Validate_Quote;
5750 RAISE FND_API.G_EXC_ERROR;
5751 END IF;
5752
5753 CLOSE C_Validate_Quote;
5754
5755 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5756 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - After Validating the Quote ' , 1 , 'N' );
5757 END IF;
5758 -- Validating if the quote_line_id belongs to the qte_header_id
5759
5760 OPEN C_Validate_Quote_Line ( P_Qte_Header_Rec.quote_header_id, P_Original_Qte_Line_Rec.quote_line_id);
5761 FETCH C_Validate_Quote_Line INTO l_val;
5762 IF C_Validate_Quote_Line%NOTFOUND THEN
5763 x_return_status := FND_API.G_RET_STS_ERROR;
5764 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5765 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_INVALID_ID' );
5766 FND_MESSAGE.Set_Token ('COLUMN' , 'ORIGINAL_QUOTE_ID', FALSE );
5767 FND_MESSAGE.Set_Token ( 'VALUE' , TO_CHAR ( P_Original_Qte_Line_Rec.quote_line_id ) , FALSE );
5768 FND_MSG_PUB.ADD;
5769 END IF;
5770 CLOSE C_Validate_Quote_Line;
5771 RAISE FND_API.G_EXC_ERROR;
5772 END IF;
5773
5774 CLOSE C_Validate_Quote_Line;
5775
5776 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5777 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - After Validating the Quote Line ' , 1 , 'N' );
5778 END IF;
5779
5780 -- Getting the quote line record
5781 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row ( P_Original_Qte_Line_Rec.quote_line_id );
5782
5783 -- Getting the quote line detail record
5784 l_qte_line_detail_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows ( P_Original_Qte_Line_Rec.quote_line_id );
5785
5786 -- Getting the shipment details for the quote line
5787 l_qte_shipment_dtl_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows (P_Qte_Header_Rec.quote_header_id, P_Original_Qte_Line_Rec.quote_line_id );
5788
5789
5790 -- Copy the Qte line table to the local variable
5791 For i in 1..P_Qte_Line_Tbl.count LOOP
5792
5793 l_qty_qte_line_tbl(i).quantity := P_Qte_Line_Tbl(i).quantity;
5794
5795 END LOOP;
5796
5797
5798 -- Looping through the quantity list to get the total quantity
5799 For i in 1..l_qty_qte_line_tbl.count LOOP
5800
5801 l_quantity := l_quantity + l_qty_qte_line_tbl(i).quantity;
5802
5803 END LOOP;
5804
5805 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5806 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - Total Qty Passed = '||to_char(l_quantity) , 1 , 'N' );
5807 END IF;
5808
5809
5810 -- If quantity list total is less than quote line quantity
5811
5812 IF l_quantity < l_qte_line_rec.quantity THEN
5813
5814 -- storing the remaining quantity
5815 l_remaining_quantity := l_qte_line_rec.quantity - l_quantity;
5816
5817 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5818 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - Remaining Qty = '||to_char(l_remaining_quantity) , 1 , 'N' );
5819 END IF;
5820
5821 l_qty_qte_line_tbl( l_qty_qte_line_tbl.count + 1 ).quantity := l_remaining_quantity;
5822
5823 ELSIF l_quantity > l_qte_line_rec.quantity THEN
5824
5825 x_return_status := FND_API.G_RET_STS_ERROR;
5826
5827 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5828
5829
5830 FND_MESSAGE.Set_Name('ASO', 'ASO_ERR_SPLITLINE_QTY');
5831 FND_MESSAGE.Set_Token('TBLNAME', 'p_qte_line_tbl', FALSE);
5832 FND_MESSAGE.Set_Token('VALUE', p_qte_line_tbl(1).quantity, FALSE);
5833 FND_MSG_PUB.ADD;
5834 END IF;
5835 RAISE FND_API.G_EXC_ERROR;
5836
5837 END IF;
5838
5839 -- Check to see if the item is a component
5840 IF l_qte_line_rec.item_type_code <> 'MDL' then
5841
5842 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5843 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - Item is not a Model Item', 1 , 'N' );
5844 END IF;
5845 x_return_status := FND_API.G_RET_STS_ERROR;
5846
5847 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5848 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_CANNOT_SPLIT' );
5849 FND_MSG_PUB.ADD;
5850 END IF;
5851 RAISE FND_API.G_EXC_ERROR;
5852
5853 END IF;
5854
5855
5856 -- Check to see if the item is a service item
5857 IF l_qte_line_rec.service_item_flag = 'Y' THEN
5858
5859 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5860 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - Item is Service Item', 1 , 'N' );
5861 END IF;
5862 x_return_status := FND_API.G_RET_STS_ERROR;
5863
5864 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5865 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_CANNOT_SPLIT' );
5866 FND_MSG_PUB.ADD;
5867 END IF;
5868 RAISE FND_API.G_EXC_ERROR;
5869
5870 END IF;
5871
5872
5873
5874
5875 /*
5876 -- Validating if the item is a container item
5877 l_appl_param_rec.calling_application_id := 769;
5878
5879 cz_network_api_pub.is_container(p_api_version => 1.0
5880 ,p_inventory_item_id => l_qte_line_rec.inventory_item_id
5881 ,p_organization_id => l_qte_line_rec.organization_id
5882 ,p_appl_param_rec => l_appl_param_rec
5883 ,x_return_value => l_return_value
5884 ,x_return_status => l_return_status
5885 ,x_msg_count => x_msg_count
5886 ,x_msg_data => x_msg_data );
5887
5888 IF ( l_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
5889
5890 IF l_return_value = 'Y' THEN
5891 x_return_status := FND_API.G_RET_STS_ERROR;
5892 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5893 FND_MESSAGE.Set_Name ('ASO' , 'ASO_CON_ITM_ERR' );
5894 FND_MSG_PUB.ADD;
5895 END IF;
5896 RAISE FND_API.G_EXC_ERROR;
5897 END IF;
5898
5899 ELSE
5900 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5901 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5902 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
5903 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_CONFIG_COPY' , TRUE );
5904 FND_MSG_PUB.ADD;
5905 END IF;
5906 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5907
5908 END IF;
5909 */
5910
5911 IF l_qte_line_rec.line_category_code = 'RETURN' THEN
5912 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5913 aso_debug_pub.ADD ('l_qte_line_dtl_tbl.count' , 1, 'N' );
5914 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - Line Category Code is RETURN ', 1 , 'N' );
5915 END IF;
5916
5917 IF l_qte_line_detail_tbl.count > 0 THEN
5918
5919 IF ( l_qte_line_detail_tbl(1).RETURN_REF_TYPE = 'SALES ORDER' AND
5920 l_qte_line_detail_tbl(1).RETURN_REF_LINE_ID IS NOT NULL AND
5921 l_qte_line_detail_tbl(1).INSTANCE_ID IS NOT NULL )
5922 OR ( l_qte_line_detail_tbl(1).REF_TYPE_CODE = 'TOP_MODEL' ) THEN
5923 x_return_status := FND_API.G_RET_STS_ERROR;
5924
5925 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5926 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_CANNOT_SPLIT' );
5927 FND_MSG_PUB.ADD;
5928 END IF;
5929
5930 END IF;
5931
5932 END IF;
5933
5934 END IF;
5935
5936
5937 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5938 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - Line Tbl Count = '||to_char(l_qty_qte_line_tbl.count), 1 , 'N' );
5939 END IF;
5940 -- Copying the line
5941 For i in 1..l_qty_qte_line_tbl.count-1 LOOP
5942
5943 -- set the quantity for the line rec record
5944 --l_qte_line_rec.quantity := l_qty_qte_line_tbl(i).quantity;
5945 l_qte_line_rec.quote_header_id := P_Qte_Header_Rec.quote_header_id;
5946
5947 IF l_qte_line_rec.uom_code = 'ENR' THEN
5948 x_return_status := FND_API.G_RET_STS_ERROR;
5949 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
5950 FND_MESSAGE.Set_Name ('ASO' , 'ASO_CANNOT_COPY_EDU' );
5951 FND_MSG_PUB.ADD;
5952 END IF;
5953 RAISE FND_API.G_EXC_ERROR;
5954 END IF;
5955 -- Initializing the line index table
5956 l_line_index_link_tbl (P_Original_Qte_Line_Rec.quote_line_id ) := FND_API.G_MISS_NUM;
5957
5958 IF l_line_index_link_tbl ( P_Original_Qte_Line_Rec.quote_line_id ) = FND_API.G_MISS_NUM THEN
5959 l_qte_line_detail_tbl :=
5960 ASO_UTILITY_PVT.Query_Line_Dtl_Rows ( P_Original_Qte_Line_Rec.quote_line_id );
5961
5962 IF l_qte_line_rec.item_type_code = 'MDL' THEN
5963
5964 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5965 aso_debug_pub.ADD ( 'item_type_code = ' || l_qte_line_rec.item_type_code , 1 , 'N' );
5966 END IF;
5967
5968 IF l_qte_line_detail_tbl.COUNT > 0 THEN
5969
5970 IF l_qte_line_detail_tbl ( 1 ).config_header_id IS NOT NULL
5971 AND l_qte_line_detail_tbl ( 1 ).config_revision_num IS NOT NULL THEN
5972
5973 l_config_control_rec.new_config_flag := FND_API.G_TRUE;
5974
5975 IF (l_qte_line_detail_tbl(1).ato_line_id is not null and l_qte_line_detail_tbl(1).ato_line_id <> fnd_api.g_miss_num) then
5976 l_ato_model := fnd_api.g_true;
5977 end if;
5978
5979 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5980 aso_debug_pub.ADD ( ' Calling Copy Configuration ', 1 , 'N' );
5981 END IF;
5982
5983 ASO_CFG_INT.Copy_Configuration (
5984 P_Api_version_NUmber => 1.0
5985 , P_config_header_id => l_qte_line_detail_tbl ( 1 ).config_header_id
5986 , p_config_revision_num => l_qte_line_detail_tbl ( 1 ).config_revision_num
5987 , p_copy_mode => CZ_API_PUB.G_NEW_HEADER_COPY_MODE
5988 , x_config_header_id => l_config_hdr_id
5989 , x_config_revision_num => l_config_rev_nbr
5990 , x_orig_item_id_tbl => l_orig_item_id_tbl
5991 , x_new_item_id_tbl => l_new_item_id_tbl
5992 , x_return_status => l_return_status
5993 , x_msg_count => x_msg_count
5994 , x_msg_data => x_msg_data
5995 , p_autonomous_flag => FND_API.G_TRUE
5996 );
5997
5998 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5999 aso_debug_pub.ADD ( ' After Calling Copy Configuration ', 1 , 'N' );
6000 END IF;
6001
6002 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
6003 l_old_config_header_id :=
6004 l_qte_line_detail_tbl ( 1 ).config_header_id;
6005 l_old_config_revision_num :=
6006 l_qte_line_detail_tbl ( 1 ).config_revision_num;
6007 l_qte_line_detail_tbl ( 1 ).config_header_id :=
6008 l_config_hdr_id;
6009 l_qte_line_detail_tbl ( 1 ).config_revision_num :=
6010 l_config_rev_nbr;
6011
6012 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6013 aso_debug_pub.ADD ( ' Old Config Hdr Id = '||to_char(l_old_config_header_id) , 1 , 'N' );
6014 aso_debug_pub.ADD ( ' Old Rev Nbr = '||to_char(l_old_config_revision_num), 1 , 'N' );
6015 aso_debug_pub.ADD ( 'New Config Hdr Id = '||to_char(l_config_hdr_id), 1 , 'N' );
6016 aso_debug_pub.ADD ( ' New Rev Nbr = '||to_char(l_config_rev_nbr), 1 , 'N' );
6017 END IF;
6018
6019 ELSE
6020 x_return_status := FND_API.G_RET_STS_ERROR;
6021 RAISE FND_API.G_EXC_ERROR;
6022 END IF;
6023
6024 END IF; -- config_header_id
6025
6026 END IF; -- line_dtl_tbl.count
6027
6028 END IF; -- 'MDL'
6029
6030 OPEN C_Serviceable_Product (
6031 l_qte_line_rec.organization_id
6032 , l_qte_line_rec.inventory_item_id
6033 );
6034 FETCH C_Serviceable_Product INTO l_serviceable_product_flag
6035 , l_service_item_flag;
6036 CLOSE C_Serviceable_Product;
6037
6038 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6039 aso_debug_pub.ADD ( 'service item flag = ' || l_service_item_flag , 1 , 'N' );
6040 END IF;
6041 IF l_service_item_flag = 'Y'
6042 AND l_qte_line_detail_tbl ( 1 ).service_ref_type_code <> 'QUOTE' THEN
6043 l_service_item_flag := 'N';
6044 END IF;
6045 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6046 aso_debug_pub.ADD ( 'service item flag 2= ' || l_service_item_flag , 1 , 'N' );
6047 END IF;
6048
6049 IF l_qte_line_rec.item_type_code <> 'CFG'
6050 AND l_qte_line_rec.item_type_code <> 'OPT'
6051 AND l_service_item_flag <> 'Y' THEN
6052
6053 l_line_attr_Ext_Tbl := ASO_UTILITY_PVT.Query_Line_Attribs_Ext_Rows ( P_Original_Qte_Line_Rec.quote_line_id);
6054
6055 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_NonPRG_Rows ( P_Qte_Header_Rec.quote_header_id ,
6056 P_Original_Qte_Line_Rec.quote_line_id);
6057 l_dup_Price_Adj_Tbl := l_price_adj_tbl;
6058
6059 l_price_adj_attr_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows(p_price_adj_tbl => l_price_adj_tbl);
6060
6061 l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows( P_Qte_Header_Rec.quote_header_id,
6062 P_Original_Qte_Line_Rec.quote_line_id);
6063
6064 /* l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows ( P_Qte_Header_Rec.quote_header_id,
6065 P_Original_Qte_Line_Rec.quote_line_id); */
6066
6067 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows ( P_Qte_Header_Rec.quote_header_id,
6068 P_Original_Qte_Line_Rec.quote_line_id);
6069
6070 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row ( P_Qte_Header_Rec.quote_header_id,
6071 P_Original_Qte_Line_Rec.quote_line_id);
6072
6073 l_quote_party_tbl := ASO_UTILITY_PVT.Query_Quote_Party_Row ( P_Qte_Header_Rec.quote_header_id,
6074 P_Original_Qte_Line_Rec.quote_line_id);
6075
6076 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows ( l_shipment_tbl );
6077
6078 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows ( P_Qte_Header_Rec.quote_header_id,
6079 P_Original_Qte_Line_Rec.quote_line_id,
6080 l_shipment_tbl);
6081
6082 l_qte_line_rec.quote_line_id := NULL;
6083
6084 l_qte_line_rec.object_version_number := FND_API.G_MISS_NUM;
6085
6086 --BC4J Fix
6087
6088 FOR j IN 1 .. l_qte_line_detail_tbl.COUNT LOOP
6089 l_qte_line_detail_tbl(j).quote_line_detail_id := null;
6090 l_qte_line_detail_tbl(j).object_version_number := FND_API.G_MISS_NUM;
6091 l_qte_line_detail_tbl(j).top_model_line_id := null;
6092 l_qte_line_detail_tbl(j).ato_line_id := null;
6093 l_qte_line_detail_tbl(j).qte_line_index := i;
6094 END LOOP;
6095
6096 FOR j IN 1 .. l_price_adj_tbl.COUNT LOOP
6097 l_price_adj_tbl ( j ).QUOTE_HEADER_ID := P_Qte_Header_Rec.quote_header_id;
6098 l_price_adj_tbl ( j ).price_adjustment_id := null;
6099 l_price_adj_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
6100 END LOOP;
6101
6102 FOR j IN 1 .. l_price_adj_attr_tbl.COUNT LOOP
6103 l_price_adj_attr_tbl(j).price_adj_attrib_id := null;
6104 l_price_adj_attr_tbl(j).object_version_number := FND_API.G_MISS_NUM;
6105 END LOOP;
6106
6107 FOR j IN 1 .. l_price_attr_tbl.COUNT LOOP
6108 l_price_attr_tbl ( j ).QUOTE_HEADER_ID := P_Qte_Header_Rec.quote_header_id;
6109 l_price_attr_tbl ( j ).price_attribute_id := null;
6110 l_price_attr_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
6111 END LOOP;
6112
6113 /* FOR j IN 1 .. l_payment_tbl.COUNT LOOP
6114 l_payment_tbl ( j ).QUOTE_HEADER_ID := P_Qte_Header_Rec.quote_header_id;
6115 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
6116 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
6117 l_payment_tbl ( j ).payment_id := NULL;
6118 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
6119 END LOOP; */
6120
6121 FOR j IN 1 .. l_shipment_tbl.COUNT LOOP
6122 l_shipment_tbl ( j ).QUOTE_HEADER_ID := P_Qte_Header_Rec.quote_header_id;
6123 l_shipment_tbl ( j ).shipment_id := null;
6124 l_shipment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
6125 END LOOP;
6126
6127 FOR j IN 1 .. l_sales_credit_tbl.COUNT LOOP
6128 l_sales_credit_tbl(j).QUOTE_HEADER_ID := P_Qte_Header_Rec.quote_header_id;
6129 l_sales_credit_tbl(j).sales_credit_id := null;
6130 l_sales_credit_tbl(j).object_version_number := FND_API.G_MISS_NUM;
6131 END LOOP;
6132
6133 FOR j IN 1 .. l_quote_party_tbl.COUNT LOOP
6134 l_quote_party_tbl(j).QUOTE_HEADER_ID := P_Qte_Header_Rec.quote_header_id;
6135 l_quote_party_tbl(j).QUOTE_PARTY_ID := null;
6136 l_quote_party_tbl(j).object_version_number := FND_API.G_MISS_NUM;
6137 END LOOP;
6138
6139 FOR j IN 1 .. l_tax_detail_tbl.COUNT LOOP
6140 l_tax_detail_tbl(j).tax_detail_id := null;
6141 l_tax_detail_tbl(j).object_version_number := FND_API.G_MISS_NUM;
6142 END LOOP;
6143
6144 FOR j IN 1 .. l_line_attr_Ext_Tbl.COUNT LOOP
6145 l_line_attr_Ext_Tbl(j).line_attribute_id := null;
6146 l_line_attr_Ext_Tbl(j).object_version_number := FND_API.G_MISS_NUM;
6147 END LOOP;
6148
6149 FOR j IN 1 .. l_freight_charge_tbl.COUNT LOOP
6150 l_freight_charge_tbl(j).freight_charge_id := null;
6151 l_freight_charge_tbl(j).object_version_number := FND_API.G_MISS_NUM;
6152 END LOOP;
6153
6154
6155 --End of BC4J Fix
6156
6157 -- Setting the new line number if a quote line is being copied
6158 IF ( P_Original_Qte_Line_Rec.quote_line_id IS NOT NULL ) AND
6159 (P_Original_Qte_Line_Rec.quote_line_id <> FND_API.G_MISS_NUM) THEN
6160
6161 Open Get_Max_Line_Number(P_Qte_Header_Rec.quote_header_id);
6162 Fetch Get_Max_Line_Number into l_line_number;
6163 Close Get_Max_Line_Number;
6164
6165 l_qte_line_rec.line_number := l_line_number + 10000;
6166
6167 END IF;
6168
6169 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6170 aso_debug_pub.ADD ( 'Split_Model_Line - Before insert_quote_line_rows: ' ||
6171 P_Original_Qte_Line_Rec.quote_line_id , 1 , 'Y' );
6172 END IF;
6173
6174 ASO_QUOTE_LINES_PVT.Insert_Quote_Line_Rows (
6175 p_control_rec => l_control_rec
6176 , P_qte_Line_Rec => l_qte_line_rec
6177 , P_qte_line_dtl_tbl => l_qte_line_detail_tbl
6178 , P_Line_Attribs_Ext_Tbl => l_line_attr_ext_tbl
6179 , P_price_attributes_tbl => l_price_attr_tbl
6180 , P_Price_Adj_Tbl => l_price_adj_tbl
6181 , P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl
6182 , P_Payment_Tbl => ASO_QUOTE_PUB.g_miss_payment_tbl
6183 , P_Shipment_Tbl => l_shipment_tbl
6184 , P_Freight_Charge_Tbl => l_freight_charge_tbl
6185 , P_Tax_Detail_Tbl => l_tax_detail_tbl
6186 , P_Sales_Credit_Tbl => l_sales_credit_tbl
6187 , P_Quote_Party_Tbl => l_quote_party_tbl
6188 , x_qte_Line_Rec => lx_qte_line_rec
6189 , x_qte_line_dtl_tbl => l_qte_line_detail_tbl_out
6190 , x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out
6191 , x_price_attributes_tbl => l_price_attr_tbl_out
6192 , x_Price_Adj_Tbl => lx_ln_price_adj_tbl
6193 , x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out
6194 , x_Payment_Tbl => l_payment_tbl_out
6195 , x_Shipment_Tbl => l_shipment_tbl_out
6196 , x_Freight_Charge_Tbl => l_freight_charge_tbl_out
6197 , x_Tax_Detail_Tbl => l_tax_detail_tbl_out
6198 , x_Sales_Credit_Tbl => l_sales_credit_tbl_out
6199 , x_Quote_Party_Tbl => l_quote_party_tbl_out
6200 , x_Return_Status => l_return_status
6201 , x_Msg_Count => x_msg_count
6202 , x_Msg_Data => x_msg_data
6203 );
6204
6205 l_quote_party_tbl :=l_quote_party_tbl_out ;
6206 l_sales_credit_tbl :=l_sales_credit_tbl_out ;
6207 l_tax_detail_tbl := l_tax_detail_tbl_out ;
6208 l_freight_charge_tbl := l_freight_charge_tbl_out ;
6209 l_shipment_tbl := l_shipment_tbl_out ;
6210 l_payment_tbl := l_payment_tbl_out ;
6211 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out ;
6212 l_Price_Attr_Tbl := l_Price_Attr_Tbl_out ;
6213 l_qte_line_detail_tbl := l_qte_line_detail_tbl_out ;
6214 l_Line_Attr_Ext_Tbl := l_Line_Attr_Ext_Tbl_out;
6215
6216 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
6217 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6218 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
6219 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
6220 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_INSERT' , TRUE );
6221 FND_MSG_PUB.ADD;
6222 END IF;
6223 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6224 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
6225 x_return_status := FND_API.G_RET_STS_ERROR;
6226 RAISE FND_API.G_EXC_ERROR;
6227 END IF;
6228 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6229 aso_debug_pub.ADD ( 'Split_Model_Line - After insert_quote_line_rows - status: ' ||l_return_status ,1 , 'Y' );
6230 aso_debug_pub.ADD ( 'SPLIT_MODEL_LINE - New Qte Line ID ='||to_char(lx_qte_line_rec.quote_line_id), 1 , 'N' );
6231 aso_debug_pub.ADD ( 'Split_Model_Line - Updating the top model and ato line id for the top model line ', 1 , 'Y' );
6232 aso_debug_pub.ADD ( 'Split_Model_Line - l_ato_model: ' || l_ato_model , 1 , 'Y' );
6233 END IF;
6234 update aso_quote_line_details
6235 set top_model_line_id = lx_qte_line_rec.quote_line_id,
6236 ato_line_id = decode(l_ato_model,fnd_api.g_true,lx_qte_line_rec.quote_line_id,null)
6237 where quote_line_id = lx_qte_line_rec.quote_line_id;
6238
6239 -- Storing the new quote line id to be used later in update quote
6240 l_inserted_qte_line_tbl(i).quote_line_id := lx_qte_line_rec.quote_line_id;
6241 l_inserted_qte_line_tbl(i).quantity := l_qty_qte_line_tbl(i).quantity;
6242
6243 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6244 aso_debug_pub.ADD ( ' Qty for new line = '||to_char(l_qty_qte_line_tbl(i).quantity), 1 , 'N' );
6245 END IF;
6246
6247
6248 -- Copy the payment record
6249 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows ( P_Qte_Header_Rec.quote_header_id,
6250 P_Original_Qte_Line_Rec.quote_line_id);
6251
6252 IF l_payment_tbl.count > 0 then
6253
6254 FOR j IN 1 .. l_payment_tbl.COUNT LOOP
6255 l_payment_tbl ( j ).QUOTE_HEADER_ID := P_Qte_Header_Rec.quote_header_id;
6256 l_payment_tbl ( j ).QUOTE_LINE_ID := lx_qte_line_rec.quote_line_id;
6257 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_CODE := NULL;
6258 l_payment_tbl ( j ).CREDIT_CARD_APPROVAL_DATE := NULL;
6259 l_payment_tbl ( j ).payment_id := NULL;
6260 l_payment_tbl ( j ).object_version_number := FND_API.G_MISS_NUM;
6261 END LOOP;
6262
6263 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6264 aso_debug_pub.add('SPLIT_MODEL_LINE: Before call to copy_payment_row ', 1, 'Y');
6265 END IF;
6266
6267 aso_copy_quote_pvt.copy_payment_row(p_payment_rec => l_payment_tbl(1) ,
6268 x_return_status => l_return_status,
6269 x_msg_count => x_msg_count,
6270 x_msg_data => x_msg_data);
6271
6272 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6273 aso_debug_pub.add('SPLIT_MODEL_LINE: After call to copy_payment_row: x_return_status: '||l_return_status, 1, 'Y');
6274 END IF;
6275 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
6276 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6277 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
6278 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
6279 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_SPLITLINE AFTER_INSERT' , TRUE );
6280 FND_MSG_PUB.ADD;
6281 END IF;
6282 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6283 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
6284 x_return_status := FND_API.G_RET_STS_ERROR;
6285 RAISE FND_API.G_EXC_ERROR;
6286 END IF;
6287
6288 END IF;
6289 -- End Copy payment record
6290
6291
6292 -- Copying the sales supplement data for the line
6293 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6294 aso_debug_pub.ADD ( 'Copy_Rows - Begin- before line copy_sales_supplement ' , 1 , 'Y' );
6295 END IF;
6296
6297 ASO_COPY_QUOTE_PVT.INSERT_SALES_SUPP_DATA
6298 (
6299 P_Api_Version_Number => 1.0,
6300 P_Init_Msg_List => P_Init_Msg_List,
6301 P_Commit => P_Commit,
6302 P_OLD_QUOTE_LINE_ID => P_Original_Qte_Line_Rec.quote_line_id,
6303 P_NEW_QUOTE_LINE_ID => lx_qte_line_rec.quote_line_id,
6304 X_Return_Status => l_return_status,
6305 X_Msg_Count => X_Msg_Count,
6306 X_Msg_Data => X_Msg_Data );
6307
6308
6309 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6310 aso_debug_pub.ADD ( 'Copy_Rows -After line copy_sales_supplement ' || x_return_status , 1 , 'Y' );
6311 END IF;
6312
6313
6314 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
6315 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6316 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
6317 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
6318 FND_MESSAGE.Set_Token ('ROW' , 'ASO_QUOTE_HEADER', TRUE );
6319 FND_MSG_PUB.ADD;
6320 END IF;
6321 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6322
6323 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
6324 x_return_status := FND_API.G_RET_STS_ERROR;
6325 RAISE FND_API.G_EXC_ERROR;
6326 END IF;
6327
6328
6329 -- IF P_Copy_Quote_Control_Rec.Copy_Attachment = FND_API.G_TRUE THEN
6330 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6331 aso_debug_pub.ADD ( 'Split_Model_Line- Begin- before line copy_attch ' , 1 , 'Y' );
6332 END IF;
6333
6334 ASO_ATTACHMENT_INT.Copy_Attachments(
6335 p_api_version => l_api_version,
6336 p_old_object_code => 'ASO_QUOTE_LINES_ALL',
6337 p_new_object_code => 'ASO_QUOTE_LINES_ALL',
6338 p_old_object_id => P_Original_Qte_Line_Rec.quote_line_id,
6339 p_new_object_id => lx_qte_line_rec.quote_line_id,
6340 x_return_status => l_return_status,
6341 x_msg_count => x_msg_count,
6342 x_msg_data => x_msg_data
6343 );
6344 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6345 aso_debug_pub.ADD ( 'Split_Model_Line -After line copy_attch ' || x_return_status , 1 , 'Y' );
6346 END IF;
6347
6348 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
6349 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6350 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
6351 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
6352 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_ATTACHMENTS' , TRUE );
6353 FND_MSG_PUB.ADD;
6354 END IF;
6355 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6356 ELSIF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
6357 x_return_status := FND_API.G_RET_STS_ERROR;
6358 RAISE FND_API.G_EXC_ERROR;
6359 END IF;
6360
6361 --- END IF; -- Copy Attachments
6362
6363 FOR j IN 1 .. l_dup_Price_Adj_Tbl.COUNT LOOP
6364 l_price_index_link_tbl ( l_dup_Price_Adj_Tbl ( j ).price_adjustment_id ) :=
6365 lx_ln_price_adj_tbl ( j ).price_adjustment_id;
6366 END LOOP;
6367
6368 l_line_index_link_tbl ( P_Original_Qte_Line_Rec.quote_line_id) :=
6369 lx_qte_line_rec.quote_line_id;
6370 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6371 aso_debug_pub.ADD ( 'Split_Model_Line - l_qte_line_tbl(i).item_type_code ' ||
6372 l_qte_line_rec.item_type_code , 1 , 'Y' );
6373 aso_debug_pub.ADD ( 'Copy - l_qte_line_tbl(i).inventory_item_id ' ||
6374 l_qte_line_rec.inventory_item_id, 1 , 'Y' );
6375 aso_debug_pub.ADD ( 'Copy - l_serviceable_product_flag ' || l_serviceable_product_flag , 1 , 'Y' );
6376 END IF;
6377
6378 IF l_serviceable_product_flag = 'Y' THEN
6379
6380 l_copy_quote_control_rec.Copy_Note := FND_API.G_TRUE;
6381 l_copy_quote_control_rec.Copy_Task := FND_API.G_TRUE;
6382 l_copy_quote_control_rec.Copy_Attachment := FND_API.G_TRUE;
6383 l_copy_quote_control_rec.New_Version := FND_API.G_TRUE;
6384
6385 ASO_COPY_QUOTE_PVT.service_copy (
6386 p_qte_line_id => P_Original_Qte_Line_Rec.quote_line_id
6387 , p_copy_quote_control_rec => l_copy_quote_control_rec
6388 , p_new_qte_header_id => P_Qte_Header_Rec.quote_header_id
6389 , p_qte_header_id => P_Qte_Header_Rec.quote_header_id
6390 , lx_line_index_link_tbl => l_line_index_link_tbl
6391 , lx_price_index_link_tbl => l_price_index_link_tbl
6392 , X_Return_Status => l_return_status
6393 , X_Msg_Count => x_msg_count
6394 , X_Msg_Data => x_msg_data
6395 , p_line_quantity => FND_API.G_MISS_NUM --l_qty_qte_line_tbl(i).quantity
6396 );
6397 END IF;
6398
6399 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
6400 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6401 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
6402 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
6403 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_SERVICE' , TRUE );
6404 FND_MSG_PUB.ADD;
6405 END IF;
6406 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6407 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
6408 x_return_status := FND_API.G_RET_STS_ERROR;
6409 RAISE FND_API.G_EXC_ERROR;
6410 END IF;
6411
6412 END IF; -- If <> CFG and OPT
6413
6414 IF l_qte_line_rec.item_type_code = 'MDL' THEN
6415 IF l_qte_line_detail_tbl.COUNT > 1 THEN
6416 FOR k IN 2 .. l_qte_line_detail_tbl.COUNT LOOP
6417 l_qte_line_detail_tbl ( k ).config_header_id :=
6418 l_config_hdr_id;
6419 l_qte_line_detail_tbl ( k ).config_revision_num :=
6420 l_config_rev_nbr;
6421 END LOOP;
6422 END IF;
6423
6424 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6425 aso_debug_pub.ADD ( 'l_old_config_header_id = ' || l_old_config_header_id , 1 , 'N' );
6426 END IF;
6427
6428 l_copy_quote_control_rec.Copy_Note := FND_API.G_TRUE;
6429 l_copy_quote_control_rec.Copy_Task := FND_API.G_TRUE;
6430 l_copy_quote_control_rec.Copy_Attachment := FND_API.G_TRUE;
6431 l_copy_quote_control_rec.New_Version := FND_API.G_TRUE;
6432
6433 ASO_COPY_QUOTE_PVT.config_copy (
6434 p_old_config_header_id => l_old_config_header_id
6435 , p_old_config_revision_num => l_old_config_revision_num
6436 , p_config_header_id => l_config_hdr_id
6437 , p_config_revision_num => l_config_rev_nbr
6438 , p_copy_quote_control_rec => l_copy_quote_control_rec
6439 , p_new_qte_header_id => P_Qte_Header_Rec.quote_header_id
6440 , p_qte_header_id => P_Qte_Header_Rec.quote_header_id
6441 , lx_line_index_link_tbl => l_line_index_link_tbl
6442 , lx_price_index_link_tbl => l_price_index_link_tbl
6443 , X_Return_Status => l_return_status
6444 , X_Msg_Count => x_msg_count
6445 , X_Msg_Data => x_msg_data
6446 , p_line_quantity => FND_API.G_MISS_NUM --l_qte_line_rec.quantity
6447 );
6448
6449 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
6450 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6451 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
6452 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
6453 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_CONFIG_COPY' , TRUE );
6454 FND_MSG_PUB.ADD;
6455 END IF;
6456 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6457 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
6458 x_return_status := FND_API.G_RET_STS_ERROR;
6459 RAISE FND_API.G_EXC_ERROR;
6460 END IF;
6461
6462 -- bug 1903605
6463 l_old_config_header_id := NULL;
6464 l_old_config_revision_num := NULL;
6465 -- bug 1903605
6466
6467 IF (l_orig_item_id_tbl IS NOT NULL) AND (l_new_item_id_tbl IS NOT NULL) THEN
6468
6469 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6470 aso_debug_pub.ADD ( 'item_id_count > 0 ', 1 , 'N' );
6471 aso_debug_pub.ADD ( 'Orig Tbl Count ' ||l_orig_item_id_tbl.count, 1 , 'N' );
6472 aso_debug_pub.ADD ( 'New Tbl Count '||l_new_item_id_tbl.count, 1 , 'N' );
6473 END IF;
6474
6475 IF l_orig_item_id_tbl.count > 0 AND l_new_item_id_tbl.count > 0 THEN
6476
6477 FORALL i IN l_orig_item_id_tbl.FIRST..l_orig_item_id_tbl.LAST
6478 UPDATE aso_quote_line_details
6479 SET config_item_id = l_new_item_id_tbl(i)
6480 ,last_update_date = SYSDATE
6481 ,last_updated_by = G_USER_ID
6482 ,last_update_login = G_LOGIN_ID
6483
6484 WHERE config_header_id = l_config_hdr_id
6485 AND config_revision_num = l_config_rev_nbr
6486 AND config_item_id = l_orig_item_id_tbl(i);
6487 END IF;
6488
6489 END IF;
6490
6491
6492
6493 END IF; -- 'MDL'
6494
6495
6496 END IF; -- Checking the index line table
6497
6498 --Insert rows for line relationships and line price relationships for that quote line---
6499 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6500 aso_debug_pub.ADD ( ' Copying the line relationship and price relation records for the new qte line' , 1 , 'N' );
6501 END IF;
6502
6503
6504 FOR price_adj_rltship_rec IN c_price_adj_rel ( P_Original_Qte_Line_Rec.quote_line_id ) LOOP
6505 lx_price_adj_rltship_id := FND_API.G_MISS_NUM;
6506
6507 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6508 aso_debug_pub.ADD ( 'l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id ) = ' ||
6509 l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id ) , 1 , 'N' );
6510 aso_debug_pub.ADD ( 'l_price_index_link_tbl ( price_adj_rltship_rec.rltd_price_adj_id ) = ' ||
6511 l_price_index_link_tbl ( price_adj_rltship_rec.rltd_price_adj_id ) , 1 , 'N' );
6512 aso_debug_pub.ADD ( 'price_adj_rltship_rec.rltd_price_adj_id = ' ||
6513 price_adj_rltship_rec.rltd_price_adj_id , 1 , 'N' );
6514 END IF;
6515
6516 OPEN C_Get_Ship_Id (
6517 l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id )
6518 );
6519 FETCH C_Get_Ship_Id INTO l_ship_id;
6520 CLOSE C_Get_Ship_Id;
6521
6522 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6523 aso_debug_pub.ADD ( 'l_ship_id from line_id = ' || l_ship_id , 1 , 'N' );
6524 END IF;
6525
6526 ASO_PRICE_RLTSHIPS_PKG.Insert_Row (
6527 px_ADJ_RELATIONSHIP_ID => lx_price_adj_rltship_id
6528 , p_creation_date => SYSDATE
6529 , p_CREATED_BY => G_USER_ID
6530 , p_LAST_UPDATE_DATE => SYSDATE
6531 , p_LAST_UPDATED_BY => G_USER_ID
6532 , p_LAST_UPDATE_LOGIN => G_LOGIN_ID
6533 , p_PROGRAM_APPLICATION_ID => price_adj_rltship_rec.PROGRAM_APPLICATION_ID
6534 , p_PROGRAM_ID => price_adj_rltship_rec.PROGRAM_ID
6535 , p_PROGRAM_UPDATE_DATE => price_adj_rltship_rec.PROGRAM_UPDATE_DATE
6536 , p_REQUEST_ID => price_adj_rltship_rec.REQUEST_ID
6537 , p_QUOTE_LINE_ID => l_line_index_link_tbl ( price_adj_rltship_rec.quote_line_id )
6538 , p_PRICE_ADJUSTMENT_ID => l_price_index_link_tbl ( price_adj_rltship_rec.price_adjustment_id )
6539 , p_RLTD_PRICE_ADJ_ID => l_price_index_link_tbl ( price_adj_rltship_rec.rltd_price_adj_id )
6540 , p_QUOTE_SHIPMENT_ID => l_ship_id
6541 , p_OBJECT_VERSION_NUMBER => price_adj_rltship_rec.OBJECT_VERSION_NUMBER
6542 );
6543 END LOOP;
6544
6545 -- copy line relationships
6546
6547 FOR line_rel_rec IN c_line_relation ( P_Original_Qte_Line_Rec.quote_line_id ) LOOP
6548
6549 lx_LINE_RELATIONSHIP_ID := FND_API.G_MISS_NUM;
6550 ASO_LINE_RELATIONSHIPS_PKG.Insert_Row (
6551 px_LINE_RELATIONSHIP_ID => lx_LINE_RELATIONSHIP_ID
6552 , p_CREATION_DATE => SYSDATE
6553 , p_CREATED_BY => G_USER_ID
6554 , p_LAST_UPDATED_BY => G_USER_ID
6555 , p_LAST_UPDATE_DATE => SYSDATE
6556 , p_LAST_UPDATE_LOGIN => G_LOGIN_ID
6557 , p_REQUEST_ID => line_rel_rec.REQUEST_ID
6558 , p_PROGRAM_APPLICATION_ID => line_rel_rec.PROGRAM_APPLICATION_ID
6559 , p_PROGRAM_ID => line_rel_rec.PROGRAM_ID
6560 , p_PROGRAM_UPDATE_DATE => line_rel_rec.PROGRAM_UPDATE_DATE
6561 , p_QUOTE_LINE_ID => l_line_index_link_tbl ( line_rel_rec.quote_line_id )
6562 , p_RELATED_QUOTE_LINE_ID => l_line_index_link_tbl ( line_rel_rec.related_quote_line_id )
6563 , p_RECIPROCAL_FLAG => line_rel_rec.RECIPROCAL_FLAG
6564 , P_RELATIONSHIP_TYPE_CODE => line_rel_rec.RELATIONSHIP_TYPE_CODE
6565 , p_OBJECT_VERSION_NUMBER => line_rel_rec.OBJECT_VERSION_NUMBER
6566 );
6567
6568 END LOOP;
6569
6570
6571 END LOOP;
6572 -- End Copying the Line Loop
6573 -- Calling Update Quote to update the quantities
6574
6575 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6576 aso_debug_pub.ADD ( ' Getting the last update date of the quote before updating the quote ', 1 , 'N' );
6577 END IF;
6578
6579 l_quote_header_rec := ASO_UTILITY_PVT.Query_Header_Row(P_Qte_Header_Rec.quote_header_id);
6580
6581 OPEN get_latest_date (
6582 P_Qte_Header_Rec.quote_header_id
6583 );
6584 FETCH get_latest_date INTO l_quote_header_rec.last_update_date;
6585 CLOSE get_latest_date;
6586
6587 l_quote_header_rec.quote_header_id := P_Qte_Header_Rec.quote_header_id;
6588 l_quote_header_rec.pricing_status_indicator := P_Qte_Header_Rec.pricing_status_indicator;
6589 l_quote_header_rec.tax_status_indicator := P_Qte_Header_Rec.tax_status_indicator;
6590
6591 /*
6592 P_Control_Rec is going to be passed by the calling API
6593 l_control_rec.last_update_date := l_quote_header_rec.last_update_date;
6594 l_control_rec.pricing_request_type := 'ASO';
6595 l_control_rec.header_pricing_event := 'BATCH';
6596 l_control_rec.calculate_tax_flag := 'Y';
6597 l_control_rec.calculate_freight_charge_flag := 'Y';
6598 */
6599
6600
6601 l_qte_line_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL;
6602
6603 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6604 aso_debug_pub.ADD ( 'No Of Qte Lines 1 = '|| to_char(l_qte_line_tbl.count), 1 , 'N' );
6605 aso_debug_pub.ADD ( ' Setting the qty and op code for new line created ', 1 , 'N' );
6606 END IF;
6607
6608 FOR i in 1..l_inserted_qte_line_tbl.count LOOP
6609 l_qte_line_tbl(i).quote_header_id := P_Qte_Header_Rec.quote_header_id;
6610 l_qte_line_tbl(i).quantity := l_inserted_qte_line_tbl(i).quantity;
6611 l_qte_line_tbl(i).quote_line_id := l_inserted_qte_line_tbl(i).quote_line_id;
6612 l_qte_line_tbl(i).operation_code := 'UPDATE';
6613
6614
6615 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6616 aso_debug_pub.ADD ( 'New Qte Line '|| to_char(l_inserted_qte_line_tbl(i).quote_line_id), 1 , 'N' );
6617 aso_debug_pub.ADD ( 'New Qty '|| to_char(l_inserted_qte_line_tbl(i).quantity), 1 , 'N' );
6618 END IF;
6619
6620 END LOOP;
6621
6622 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6623 aso_debug_pub.ADD ( 'No Of Qte Lines 2 = '|| to_char(l_qte_line_tbl.count), 1 , 'N' );
6624 aso_debug_pub.ADD ( ' Setting the qty and op code for orig line to be updated ', 1 , 'N' );
6625 END IF;
6626
6627 l_total_lines := l_qte_line_tbl.count;
6628
6629 l_qte_line_tbl(l_total_lines + 1).quantity := l_qty_qte_line_tbl(l_qty_qte_line_tbl.count).quantity;
6630
6631 l_qte_line_tbl(l_total_lines + 1).quote_header_id := P_Qte_Header_Rec.quote_header_id;
6632 l_qte_line_tbl(l_total_lines + 1).operation_code := 'UPDATE';
6633 l_qte_line_tbl(l_total_lines + 1).quote_line_id := P_Original_Qte_Line_Rec.quote_line_id;
6634
6635 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6636 aso_debug_pub.ADD ( 'No Of Qte Lines before update qty = '|| to_char(l_qte_line_tbl.count), 1 , 'N' );
6637 aso_debug_pub.ADD ( ' Calling Update Quote to update all lines ', 1 , 'N' );
6638 END IF;
6639
6640 aso_quote_pub.update_quote (
6641 p_api_version_number => 1.0,
6642 p_init_msg_list => fnd_api.g_false,
6643 p_commit => fnd_api.g_false,
6644 p_control_rec => p_control_rec,
6645 p_qte_header_rec => l_quote_header_rec,
6646 p_hd_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
6647 p_hd_payment_tbl => aso_quote_pub.g_miss_payment_tbl,
6648 p_hd_shipment_tbl => aso_quote_pub.g_miss_shipment_tbl,
6649 p_hd_freight_charge_tbl => aso_quote_pub.g_miss_freight_charge_tbl,
6650 p_hd_tax_detail_tbl => aso_quote_pub.g_miss_tax_detail_tbl,
6651 p_qte_line_tbl => l_qte_line_tbl,
6652 p_qte_line_dtl_tbl => aso_quote_pub.g_miss_qte_line_dtl_tbl,
6653 p_line_attr_ext_tbl => aso_quote_pub.G_MISS_Line_Attribs_Ext_TBL,
6654 p_line_rltship_tbl => aso_quote_pub.g_miss_line_rltship_tbl,
6655 p_price_adjustment_tbl => aso_quote_pub.g_miss_price_adj_tbl,
6656 p_price_adj_attr_tbl => aso_quote_pub.g_miss_price_adj_attr_tbl,
6657 p_price_adj_rltship_tbl => aso_quote_pub.g_miss_price_adj_rltship_tbl,
6658 p_ln_price_attributes_tbl => aso_quote_pub.g_miss_price_attributes_tbl,
6659 p_ln_payment_tbl => aso_quote_pub.g_miss_payment_tbl,
6660 p_ln_shipment_tbl => aso_quote_pub.g_miss_shipment_tbl,
6661 p_ln_freight_charge_tbl => aso_quote_pub.g_miss_freight_charge_tbl,
6662 p_ln_tax_detail_tbl => aso_quote_pub.g_miss_tax_detail_tbl,
6663 x_qte_header_rec => x_qte_header_rec,
6664 x_qte_line_tbl => x_qte_line_tbl,
6665 x_qte_line_dtl_tbl => x_qte_line_dtl_tbl,
6666 x_hd_price_attributes_tbl => x_hd_price_attributes_tbl,
6667 x_hd_payment_tbl => x_hd_payment_tbl,
6668 x_hd_shipment_tbl => x_hd_shipment_tbl,
6669 x_hd_freight_charge_tbl => x_hd_freight_charge_tbl,
6670 x_hd_tax_detail_tbl => x_hd_tax_detail_tbl,
6671 x_line_attr_ext_tbl => x_line_attr_ext_tbl,
6672 x_line_rltship_tbl => x_line_rltship_tbl,
6673 x_price_adjustment_tbl => x_price_adjustment_tbl,
6674 x_price_adj_attr_tbl => x_price_adj_attr_tbl,
6675 x_price_adj_rltship_tbl => x_price_adj_rltship_tbl,
6676 x_ln_price_attributes_tbl => x_ln_price_attributes_tbl,
6677 x_ln_payment_tbl => x_ln_payment_tbl,
6678 x_ln_shipment_tbl => x_ln_shipment_tbl,
6679 x_ln_freight_charge_tbl => x_ln_freight_charge_tbl,
6680 x_ln_tax_detail_tbl => x_ln_tax_detail_tbl,
6681 x_return_status => l_return_status,
6682 x_msg_count => x_msg_count,
6683 x_msg_data => x_msg_data
6684 );
6685
6686 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6687 aso_debug_pub.ADD ( ' Return Status from Update Quote = '||l_return_status, 1 , 'N' );
6688 END IF;
6689
6690
6691 IF ( l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
6692 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6693 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
6694 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
6695 FND_MSG_PUB.ADD;
6696 END IF;
6697 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6698 ELSIF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
6699 x_return_status := FND_API.G_RET_STS_ERROR;
6700 RAISE FND_API.G_EXC_ERROR;
6701 END IF;
6702
6703 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6704 aso_debug_pub.ADD ( ' After Calling Update Quote to update all lines ', 1 , 'N' );
6705 END IF;
6706
6707
6708 X_Quote_Line_Tbl := x_qte_line_tbl;
6709 --
6710 -- End of API body
6711 --
6712 -- Standard check for p_commit
6713 IF FND_API.to_Boolean ( p_commit ) THEN
6714 COMMIT WORK;
6715 END IF;
6716 -- Standard call to get message count and if count is 1, get message info.
6717 FND_MSG_PUB.Count_And_Get (
6718 p_count => x_msg_count
6719 , p_data => x_msg_data
6720 );
6721
6722 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6723 aso_debug_pub.ADD ( ' End of Split_Model_Line ', 1 , 'N' );
6724 END IF;
6725 EXCEPTION
6726 WHEN FND_API.G_EXC_ERROR THEN
6727 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
6728 P_API_NAME => L_API_NAME
6729 , P_PKG_NAME => G_PKG_NAME
6730 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
6731 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6732 , X_MSG_COUNT => X_MSG_COUNT
6733 , X_MSG_DATA => X_MSG_DATA
6734 , X_RETURN_STATUS => X_RETURN_STATUS
6735 );
6736
6737 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6738 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
6739 P_API_NAME => L_API_NAME
6740 , P_PKG_NAME => G_PKG_NAME
6741 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
6742 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6743 , X_MSG_COUNT => X_MSG_COUNT
6744 , X_MSG_DATA => X_MSG_DATA
6745 , X_RETURN_STATUS => X_RETURN_STATUS
6746 );
6747
6748
6749 WHEN OTHERS THEN
6750 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
6751 P_API_NAME => L_API_NAME
6752 , P_PKG_NAME => G_PKG_NAME
6753 , P_SQLCODE => SQLCODE
6754 , P_SQLERRM => SQLERRM
6755 , P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
6756 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6757 , X_MSG_COUNT => X_MSG_COUNT
6758 , X_MSG_DATA => X_MSG_DATA
6759 , X_RETURN_STATUS => X_RETURN_STATUS
6760 );
6761
6762 END Split_Model_Line;
6763
6764
6765 PROCEDURE INSERT_SALES_SUPP_DATA
6766 (
6767 P_Api_Version_Number IN NUMBER,
6768 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
6769 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
6770 P_OLD_QUOTE_LINE_ID IN NUMBER,
6771 P_NEW_QUOTE_LINE_ID IN NUMBER,
6772 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
6773 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
6774 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2 ) IS
6775
6776
6777 CURSOR get_template_id (
6778 qte_line_id NUMBER
6779 ) IS
6780 SELECT template_instance_id, template_id
6781 FROM aso_sup_tmpl_instance
6782 WHERE owner_table_name = 'ASO_QUOTE_LINES'
6783 AND owner_table_id = qte_line_id;
6784
6785 CURSOR get_values (
6786 temp_instance_id NUMBER
6787 ) IS
6788 SELECT sect_comp_map_id, VALUE, value_type_qualifier, response_id
6789 FROM aso_sup_instance_value
6790 WHERE template_instance_id = temp_instance_id;
6791
6792 l_old_template_instance_id NUMBER;
6793 l_new_template_instance_id NUMBER;
6794 l_sup_instance_rowid ROWID;
6795 l_template_instance_rowid ROWID;
6796 l_instance_value_id NUMBER;
6797 l_old_instance_value_id NUMBER;
6798 l_api_name VARCHAR2 ( 150 ) := 'INSERT_SALES_SUPP_DATA';
6799 l_api_version_number CONSTANT NUMBER := 1.0;
6800
6801 BEGIN
6802
6803 -- Establish a standard save point
6804 SAVEPOINT INSERT_SALES_SUPP_DATA_PVT;
6805
6806 -- Standard call to check for call compatability
6807 IF NOT FND_API.Compatible_API_Call (
6808 l_api_version_number
6809 , p_api_version_number
6810 , l_api_name
6811 , G_PKG_NAME
6812 ) THEN
6813 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6814 END IF;
6815
6816 -- Initialize message list if p_init_msg_list is set to TRUE.
6817 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
6818 FND_MSG_PUB.initialize;
6819 END IF;
6820
6821 -- API BODY
6822 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6823 aso_debug_pub.ADD ('INSERT_SALES_SUPP_DATA: Begin' , 1, 'N' );
6824 aso_debug_pub.ADD ( 'Old QTE Line Id : ' || TO_CHAR ( P_OLD_QUOTE_LINE_ID ) , 1 , 'N' );
6825 aso_debug_pub.ADD ( 'New QTE Line Id : ' || TO_CHAR ( P_NEW_QUOTE_LINE_ID ) , 1 , 'N' );
6826 END IF;
6827
6828 -- Get the template id and template_instance_id based upon the
6829 -- quote line id
6830
6831 FOR template_val IN get_template_id ( P_OLD_QUOTE_LINE_ID ) LOOP
6832 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6833 aso_debug_pub.ADD ( 'Template Id : ' || TO_CHAR ( template_val.template_id ) , 1 , 'N' );
6834 aso_debug_pub.ADD ( ' Old Template Instance Id : ' || TO_CHAR ( template_val.template_instance_id ) , 1 , 'N
6835 ' );
6836
6837 -- Create a new row in the ASO_SUP_TMPL_INSTANCE Table with the template id
6838
6839 aso_debug_pub.ADD ( 'Inserting a row into tmpl_instance table' , 1 , 'N' );
6840 END IF;
6841
6842 -- Initiate the variable to null,
6843 -- so that each time they contain new value for every pass of loop
6844
6845 l_new_template_instance_id := NULL;
6846 ASO_SUP_TMPL_INSTANCE_PKG.INSERT_ROW (
6847 PX_ROWID => l_template_instance_rowid
6848 , PX_TEMPLATE_INSTANCE_ID => l_new_template_instance_id
6849 , P_created_by => FND_GLOBAL.USER_ID
6850 , P_creation_date => SYSDATE
6851 , P_last_updated_by => FND_GLOBAL.USER_ID
6852 , P_last_update_date => SYSDATE
6853 , P_last_update_login => FND_GLOBAL.CONC_LOGIN_ID
6854 , P_TEMPLATE_ID => template_val.template_id
6855 , P_Owner_Table_Name => 'ASO_QUOTE_LINES'
6856 , P_Owner_Table_Id => P_NEW_QUOTE_LINE_ID
6857 , P_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM
6858 );
6859
6860 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6861 aso_debug_pub.ADD ( ' New Template Instance Id : ' || TO_CHAR ( l_new_template_instance_id ) , 1 , 'N' );
6862 END IF;
6863
6864 -- Get the values for that instance
6865 FOR inst_val IN get_values ( template_val.template_instance_id ) LOOP
6866 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6867 aso_debug_pub.ADD ( 'Value : ' || inst_val.VALUE, 1, 'N' );
6868 aso_debug_pub.ADD ( 'Value Type Qualifier : ' || inst_val.value_type_qualifier , 1 , 'N' );
6869 aso_debug_pub.ADD ( 'Response Id : ' || TO_CHAR ( inst_val.response_id ) , 1 , 'N' );
6870 END IF;
6871
6872 -- If values are fetched then insert rows
6873 IF inst_val.sect_comp_map_id IS NOT NULL THEN
6874 -- Initiate the variables to null,
6875 -- so that each time they contain new value for every pass of loop
6876
6877 l_instance_value_id := NULL;
6878 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6879 aso_debug_pub.ADD ( 'Inserting a row into instance_value table' , 1 , 'N' );
6880 END IF;
6881
6882 -- Create a new row in the ASO_SUP_INSTANCE_VALUE table
6883 ASO_SUP_INSTANCE_VALUE_PKG.INSERT_ROW (
6884 PX_ROWID => l_sup_instance_rowid
6885 , PX_INSTANCE_VALUE_ID => l_instance_value_id
6886 , P_SECT_COMP_MAP_ID => inst_val.sect_comp_map_id
6887 , P_Template_Instance_ID => l_new_template_instance_id
6888 , p_value => inst_val.VALUE
6889 , p_value_type_qualifier => inst_val.value_type_qualifier
6890 , p_response_id => inst_val.response_id
6891 , P_created_by => FND_GLOBAL.USER_ID
6892 , P_last_updated_by => FND_GLOBAL.USER_ID
6893 , P_last_update_login => FND_GLOBAL.CONC_LOGIN_ID
6894 , P_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM
6895 );
6896 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6897 aso_debug_pub.ADD ( 'New Instance Value Id : ' || TO_CHAR ( l_instance_value_id ) , 1 , 'N' );
6898 END IF;
6899 END IF;
6900
6901 END LOOP; -- instance value loop
6902
6903 END LOOP; -- template loop
6904
6905 -- Standard check for p_commit
6906 IF FND_API.to_Boolean ( p_commit ) THEN
6907 COMMIT WORK;
6908 END IF;
6909
6910 -- Initialize API return status to success
6911 x_return_status := FND_API.G_RET_STS_SUCCESS;
6912
6913 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6914 aso_debug_pub.ADD ( 'INSERT_SALES_SUPP_DATA: ' || l_api_name || 'end' , 1 , 'N' );
6915 END IF;
6916
6917
6918
6919 EXCEPTION
6920
6921 WHEN FND_API.G_EXC_ERROR THEN
6922 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
6923 P_API_NAME => L_API_NAME
6924 , P_PKG_NAME => G_PKG_NAME
6925 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
6926 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6927 , X_MSG_COUNT => X_MSG_COUNT
6928 , X_MSG_DATA => X_MSG_DATA
6929 , X_RETURN_STATUS => X_RETURN_STATUS
6930 );
6931
6932 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6933 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
6934 P_API_NAME => L_API_NAME
6935 , P_PKG_NAME => G_PKG_NAME
6936 , P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
6937 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6938 , X_MSG_COUNT => X_MSG_COUNT
6939 , X_MSG_DATA => X_MSG_DATA
6940 , X_RETURN_STATUS => X_RETURN_STATUS
6941 );
6942
6943 WHEN OTHERS THEN
6944 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS (
6945 P_API_NAME => L_API_NAME
6946 , P_PKG_NAME => G_PKG_NAME
6947 , P_SQLCODE => SQLCODE
6948 , P_SQLERRM => SQLERRM
6949 , P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
6950 , P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6951 , X_MSG_COUNT => X_MSG_COUNT
6952 , X_MSG_DATA => X_MSG_DATA
6953 , X_RETURN_STATUS => X_RETURN_STATUS
6954 );
6955
6956
6957 END INSERT_SALES_SUPP_DATA;
6958
6959 PROCEDURE copy_payment_row(p_payment_rec IN aso_quote_pub.payment_rec_type,
6960 x_return_status OUT NOCOPY varchar2,
6961 x_msg_count OUT NOCOPY number,
6962 x_msg_data OUT NOCOPY varchar2) is
6963
6964 l_api_name varchar2(1000) := 'copy_payment_row';
6965 l_payment_rec aso_quote_pub.payment_rec_type := p_payment_rec;
6966 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
6967 l_payer IBY_FNDCPT_COMMON_PUB.PayerContext_rec_type;
6968 lx_response IBY_FNDCPT_COMMON_PUB.Result_rec_type;
6969 lx_assign_id number;
6970 lx_entity_id number;
6971 l_trxn_attribs IBY_FNDCPT_TRXN_PUB.TrxnExtension_rec_type;
6972 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
6973 l_entities IBY_FNDCPT_COMMON_PUB.Id_tbl_type;
6974 l_payment_ref_number varchar2(240);
6975 lx_channel_attrib_uses IBY_FNDCPT_SETUP_PUB.PmtChannel_AttribUses_rec_type;
6976
6977 Cursor c_get_payer_from_trxn(p_trxn_extension_id number) is
6978 select a.party_id, a.instr_assignment_id
6979 from iby_fndcpt_payer_assgn_instr_v a, IBY_TRXN_EXTENSIONS_V b
6980 where a.instr_assignment_id = b.instr_assignment_id
6981 and b.trxn_extension_id = p_trxn_extension_id;
6982
6983 Cursor c_get_payment_id is
6984 SELECT ASO_PAYMENTS_S.nextval FROM sys.dual;
6985
6986 begin
6987 SAVEPOINT COPY_PAYMENT_ROW_PVT;
6988 aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
6989
6990 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6991 aso_debug_pub.add('Begin copy_payment_row ', 1, 'Y');
6992 aso_debug_pub.add('l_payment_rec.Quote_Header_Id: ' || l_payment_rec.Quote_Header_Id, 1, 'Y');
6993 aso_debug_pub.add('l_payment_rec.Quote_Line_Id: ' || l_payment_rec.Quote_Line_Id, 1, 'Y');
6994 aso_debug_pub.add('l_payment_rec.trxn_extension_id:' || l_payment_rec.trxn_extension_id, 1, 'Y');
6995 aso_debug_pub.add('l_payment_rec.PAYMENT_REF_NUMBER:'|| l_payment_rec.PAYMENT_REF_NUMBER , 1, 'Y');
6996 aso_debug_pub.add('l_payment_rec.PAYMENT_TERM_ID: ' || l_payment_rec.PAYMENT_TERM_ID, 1, 'Y');
6997 END IF;
6998
6999 x_return_status := FND_API.G_RET_STS_SUCCESS;
7000
7001 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row (l_payment_rec.Quote_Header_Id );
7002 IF ( l_payment_rec.Quote_Line_Id IS NOT NULL and l_payment_rec.Quote_Line_Id <> fnd_api.g_miss_num) then
7003 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row ( l_payment_rec.Quote_Line_Id );
7004 END IF;
7005
7006 if (l_payment_rec.trxn_extension_id is not null or l_payment_rec.trxn_extension_id <> fnd_api.g_miss_num) then
7007
7008 -- Check to see if cvv2 is mandatory or not
7009 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7010 aso_debug_pub.add('Before calling IBY_FNDCPT_TRXN_PUB.Get_Payment_Channel_Attribs ', 1, 'Y');
7011 END IF;
7012
7013 IBY_FNDCPT_SETUP_PUB.Get_Payment_Channel_Attribs
7014 (
7015 p_api_version => 1.0,
7016 p_init_msg_list => FND_API.G_FALSE,
7017 x_return_status => x_return_status,
7018 x_msg_count => x_msg_count,
7019 x_msg_data => x_msg_data,
7020 p_channel_code => 'CREDIT_CARD',
7021 x_channel_attrib_uses => lx_channel_attrib_uses,
7022 x_response => lx_response);
7023
7024 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7025 aso_debug_pub.add('after calling IBY_FNDCPT_TRXN_PUB.Get_Payment_Channel_Attribs ', 1, 'Y');
7026 aso_debug_pub.add('Return Status: '||x_return_status, 1, 'Y');
7027 aso_debug_pub.add('cvv2 use: '||lx_channel_attrib_uses.Instr_SecCode_Use, 1, 'Y');
7028 aso_debug_pub.add('x_response.result_code: '|| to_char(lx_response.result_code), 1, 'Y');
7029 aso_debug_pub.add('x_response.result_category:'|| to_char(lx_response.result_category), 1, 'Y');
7030 aso_debug_pub.add('x_response.result_message: '|| to_char(lx_response.result_message), 1, 'Y');
7031 END IF;
7032
7033 -- if cvv2 is not mandatory then call IBY API to create the new trxn extension
7034 -- if cvv2 is mandatory then do not call IBY API, make payment ref as null and insert row
7035
7036 IF (nvl(lx_channel_attrib_uses.Instr_SecCode_Use,'null') <> 'REQUIRED') THEN
7037
7038 l_payer.cust_account_id := null;
7039 l_payer.account_site_id := null;
7040 l_payer.payment_function := 'CUSTOMER_PAYMENT';
7041
7042
7043 open c_get_payer_from_trxn(l_payment_rec.trxn_extension_id);
7044 fetch c_get_payer_from_trxn into l_payer.party_id,l_payment_rec.instr_assignment_id;
7045 close c_get_payer_from_trxn;
7046
7047 if (l_payment_rec.payment_id is null or l_payment_rec.payment_id = fnd_api.g_miss_num) then
7048 open c_get_payment_id;
7049 fetch c_get_payment_id into l_payment_rec.payment_id;
7050 close c_get_payment_id;
7051 end if;
7052
7053 l_trxn_attribs.Originating_Application_Id := 697;
7054
7055 l_trxn_attribs.Order_Id := to_char(l_payment_rec.payment_id)||'-'||l_qte_header_rec.quote_number;
7056 l_trxn_attribs.PO_Number := null;
7057 l_trxn_attribs.PO_Line_Number := null;
7058 l_trxn_attribs.Trxn_Ref_Number1 := l_payment_rec.quote_header_id;
7059 IF l_payment_rec.quote_line_id = fnd_api.g_miss_num then
7060 l_trxn_attribs.Trxn_Ref_Number2 := null;
7061 Else
7062 l_trxn_attribs.Trxn_Ref_Number2 := l_payment_rec.quote_line_id;
7063 End if;
7064 -- Do NOT copy the cvv2 info if the cvv2 is OPTIONAL see bug 4777120
7065 -- l_trxn_attribs.Instrument_Security_Code := l_payment_rec.cvv2;
7066
7067 l_trxn_attribs.VoiceAuth_Flag := null;
7068 l_trxn_attribs.VoiceAuth_Date := null;
7069 l_trxn_attribs.VoiceAuth_Code := null;
7070 l_trxn_attribs.Additional_Info := null;
7071
7072 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7073 aso_debug_pub.add('Before calling IBY_FNDCPT_TRXN_PUB.Create_Transaction_Extension ', 1, 'Y');
7074 aso_debug_pub.add('Instrument Assignment id: '|| l_payment_rec.instr_assignment_id, 1, 'Y');
7075 aso_debug_pub.add('payment id is : '|| l_payment_rec.payment_id,1,'Y');
7076 aso_debug_pub.add('quote line id is : '|| l_payment_rec.quote_line_id,1,'Y');
7077 aso_debug_pub.add('party_id is : '|| l_payer.party_id,1,'Y');
7078 END IF;
7079
7080 IBY_FNDCPT_TRXN_PUB.Create_Transaction_Extension
7081 (
7082 p_api_version => 1.0,
7083 p_init_msg_list => FND_API.G_FALSE,
7084 p_commit => FND_API.G_FALSE,
7085 x_return_status => x_return_status,
7086 x_msg_count => x_msg_count,
7087 x_msg_data => x_msg_data,
7088 p_payer => l_payer,
7089 p_payer_equivalency => IBY_FNDCPT_COMMON_PUB.G_PAYER_EQUIV_UPWARD,
7090 p_pmt_channel => l_payment_rec.payment_type_code,
7091 p_instr_assignment => l_payment_rec.instr_assignment_id,
7092 p_trxn_attribs => l_trxn_attribs,
7093 x_entity_id => lx_entity_id,
7094 x_response => lx_response);
7095
7096 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7097 aso_debug_pub.add('after calling IBY_FNDCPT_TRXN_PUB.Create_Transaction_Extension ', 1, 'Y');
7098 aso_debug_pub.add('Return Status: '||x_return_status, 1, 'Y');
7099 aso_debug_pub.add('lx_entity_id: '||lx_entity_id, 1, 'Y');
7100 aso_debug_pub.add('x_response.result_code: '|| to_char(lx_response.result_code), 1, 'Y');
7101 aso_debug_pub.add('x_response.result_category:'|| to_char(lx_response.result_category), 1, 'Y');
7102 aso_debug_pub.add('x_response.result_message: '|| to_char(lx_response.result_message), 1, 'Y');
7103 END IF;
7104
7105 if x_return_status <> fnd_api.g_ret_sts_success then
7106 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7107 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
7108 FND_MESSAGE.Set_Token('API', 'IBY_FNDCPT_TRXN_PUB.Create_Transaction_Extension ', FALSE);
7109 FND_MSG_PUB.ADD;
7110 END IF;
7111 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
7112 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7113 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
7114 RAISE FND_API.G_EXC_ERROR;
7115 END IF;
7116 end if;
7117
7118 -- setting the trxn extn id
7119 l_payment_rec.trxn_extension_id := lx_entity_id;
7120
7121 ELSE
7122
7123 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7124 aso_debug_pub.add('Instr Sec Code cvv2 is mandatory hence setting the payment ref number and trxn ext id to null ', 1, 'Y');
7125 END IF;
7126
7127 l_payment_rec.PAYMENT_REF_NUMBER := null;
7128 l_payment_rec.trxn_extension_id := null;
7129 l_payment_rec.payment_type_code := null;
7130
7131 END IF; -- end if for the cvv2 check
7132
7133 end if; -- end if for trxn ext id check
7134
7135 IF l_payment_rec.PAYMENT_TYPE_CODE = 'CREDIT_CARD' then
7136 l_payment_ref_number := null;
7137 else
7138 l_payment_ref_number := l_payment_rec.PAYMENT_REF_NUMBER;
7139 END IF;
7140
7141 ASO_PAYMENTS_PKG.Insert_Row(
7142 px_PAYMENT_ID => l_payment_rec.PAYMENT_ID,
7143 p_CREATION_DATE => SYSDATE,
7144 p_CREATED_BY => fnd_global.USER_ID,
7145 p_LAST_UPDATE_DATE => SYSDATE,
7146 p_LAST_UPDATED_BY => fnd_global.USER_ID,
7147 p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
7148 p_REQUEST_ID => l_payment_rec.REQUEST_ID,
7149 p_PROGRAM_APPLICATION_ID => l_payment_rec.PROGRAM_APPLICATION_ID,
7150 p_PROGRAM_ID => l_payment_rec.PROGRAM_ID,
7151 p_PROGRAM_UPDATE_DATE => l_payment_rec.PROGRAM_UPDATE_DATE,
7152 p_QUOTE_HEADER_ID => l_payment_rec.QUOTE_HEADER_ID,
7153 p_QUOTE_LINE_ID => l_payment_rec.QUOTE_LINE_ID,
7154 p_QUOTE_SHIPMENT_ID => l_payment_rec.QUOTE_SHIPMENT_ID ,
7155 p_PAYMENT_TYPE_CODE => l_payment_rec.PAYMENT_TYPE_CODE,
7156 p_PAYMENT_REF_NUMBER => l_payment_ref_number,
7157 p_PAYMENT_OPTION => l_payment_rec.PAYMENT_OPTION,
7158 p_PAYMENT_TERM_ID => l_payment_rec.PAYMENT_TERM_ID,
7159 p_CREDIT_CARD_CODE => null,
7160 p_CREDIT_CARD_HOLDER_NAME => null,
7161 p_CREDIT_CARD_EXPIRATION_DATE => null,
7162 p_CREDIT_CARD_APPROVAL_CODE => null,
7163 p_CREDIT_CARD_APPROVAL_DATE => null,
7164 p_PAYMENT_AMOUNT => l_payment_rec.PAYMENT_AMOUNT,
7165 p_ATTRIBUTE_CATEGORY => l_payment_rec.ATTRIBUTE_CATEGORY,
7166 p_ATTRIBUTE1 => l_payment_rec.ATTRIBUTE1,
7167 p_ATTRIBUTE2 => l_payment_rec.ATTRIBUTE2,
7168 p_ATTRIBUTE3 => l_payment_rec.ATTRIBUTE3,
7169 p_ATTRIBUTE4 => l_payment_rec.ATTRIBUTE4,
7170 p_ATTRIBUTE5 => l_payment_rec.ATTRIBUTE5,
7171 p_ATTRIBUTE6 => l_payment_rec.ATTRIBUTE6,
7172 p_ATTRIBUTE7 => l_payment_rec.ATTRIBUTE7,
7173 p_ATTRIBUTE8 => l_payment_rec.ATTRIBUTE8,
7174 p_ATTRIBUTE9 => l_payment_rec.ATTRIBUTE9,
7175 p_ATTRIBUTE10 => l_payment_rec.ATTRIBUTE10,
7176 p_ATTRIBUTE11 => l_payment_rec.ATTRIBUTE11,
7177 p_ATTRIBUTE12 => l_payment_rec.ATTRIBUTE12,
7178 p_ATTRIBUTE13 => l_payment_rec.ATTRIBUTE13,
7179 p_ATTRIBUTE14 => l_payment_rec.ATTRIBUTE14,
7180 p_ATTRIBUTE15 => l_payment_rec.ATTRIBUTE15,
7181 p_ATTRIBUTE16 => l_payment_rec.ATTRIBUTE16,
7182 p_ATTRIBUTE17 => l_payment_rec.ATTRIBUTE17,
7183 p_ATTRIBUTE18 => l_payment_rec.ATTRIBUTE18,
7184 p_ATTRIBUTE19 => l_payment_rec.ATTRIBUTE19,
7185 p_ATTRIBUTE20 => l_payment_rec.ATTRIBUTE20,
7186 p_CUST_PO_NUMBER => l_payment_rec.CUST_PO_NUMBER,
7187 p_PAYMENT_TERM_ID_FROM => l_payment_rec.PAYMENT_TERM_ID_FROM,
7188 p_OBJECT_VERSION_NUMBER => l_payment_rec.OBJECT_VERSION_NUMBER,
7189 p_CUST_PO_LINE_NUMBER => l_payment_rec.CUST_PO_LINE_NUMBER,
7190 p_trxn_extension_id => l_payment_rec.trxn_extension_id
7191 );
7192 -- Standard call to get message count and if count is 1, get message info.
7193 FND_MSG_PUB.Count_And_Get
7194 ( p_count => x_msg_count,
7195 p_data => x_msg_data
7196 );
7197
7198 IF ASO_DEBUG_PUB.G_Debug_Flag = 'Y' THEN
7199 aso_debug_pub.ADD ('END copy_payment_row',1,'N');
7200 END IF;
7201
7202 EXCEPTION
7203 WHEN FND_API.G_EXC_ERROR THEN
7204 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
7205 P_API_NAME => L_API_NAME
7206 ,P_PKG_NAME => G_PKG_NAME
7207 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
7208 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
7209 ,X_MSG_COUNT => X_MSG_COUNT
7210 ,X_MSG_DATA => X_MSG_DATA
7211 ,X_RETURN_STATUS => X_RETURN_STATUS);
7212
7213 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7214 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
7215 P_API_NAME => L_API_NAME
7216 ,P_PKG_NAME => G_PKG_NAME
7217 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
7218 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
7219 ,X_MSG_COUNT => X_MSG_COUNT
7220 ,X_MSG_DATA => X_MSG_DATA
7221 ,X_RETURN_STATUS => X_RETURN_STATUS);
7222
7223 WHEN OTHERS THEN
7224 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
7225 P_API_NAME => L_API_NAME
7226 ,P_PKG_NAME => G_PKG_NAME
7227 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
7228 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
7229 ,X_MSG_COUNT => X_MSG_COUNT
7230 ,X_MSG_DATA => X_MSG_DATA
7231 ,X_RETURN_STATUS => X_RETURN_STATUS);
7232
7233 end copy_payment_row;
7234
7235 END ASO_COPY_QUOTE_PVT;