[Home] [Help]
PACKAGE BODY: APPS.ASO_QUOTE_HEADERS_PVT
Source
1 PACKAGE BODY ASO_QUOTE_HEADERS_PVT as
2 /* $Header: asovqhdb.pls 120.66.12020000.3 2012/07/19 14:41:12 akushwah ship $ */
3 -- Start of Comments
4 -- Package name : ASO_QUOTE_HEADERS_PVT
5 -- Purpose :
6 -- History :
7 -- 10/18/2002 hyang - 2633507, performance fix
8 -- 12/06/2002 hyang - 2686076, changed definition of lx_contract_number
9 -- to VARCHAR2(120)
10 -- 08/19/04 skulkarn - In new BC4J implementation, the primary key for
11 -- for all input parameters in Create_Quote, Update_Quote APIs
12 -- will be passed. In order to honor the primary key passed
13 -- the primary key will not be set to null before calling the
14 -- table handler. Hence, commented OUT the code where
15 -- primary key is being set to null before calling table handler.
16 -- NOTE :
17 -- End of Comments
18
19
20 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ASO_QUOTE_HEADERS_PVT';
21 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asovqhdb.pls';
22
23 G_QUOTE_DURATION CONSTANT NUMBER := 30;
24
25
26 FUNCTION Shipment_Rec_Exists( p_shipment_rec IN ASO_QUOTE_PUB.Shipment_Rec_Type ) RETURN BOOLEAN
27 IS
28
29 BEGIN
30 IF aso_debug_pub.g_debug_flag = 'Y' THEN
31 aso_debug_pub.add('Begin Shipment_Rec_Exists function.', 1, 'Y');
32 END IF;
33
34 IF ( p_shipment_rec.SHIPMENT_ID <> FND_API.G_MISS_NUM OR
35 p_shipment_rec.PROMISE_DATE <> FND_API.G_MISS_DATE OR
36 p_shipment_rec.REQUEST_DATE <> FND_API.G_MISS_DATE OR
37 p_shipment_rec.SCHEDULE_SHIP_DATE <> FND_API.G_MISS_DATE OR
38 p_shipment_rec.SHIP_TO_PARTY_SITE_ID <> FND_API.G_MISS_NUM OR
39 p_shipment_rec.SHIP_TO_PARTY_ID <> FND_API.G_MISS_NUM OR
40 p_shipment_rec.SHIP_PARTIAL_FLAG <> FND_API.G_MISS_CHAR OR
41 p_shipment_rec.SHIP_SET_ID <> FND_API.G_MISS_NUM OR
42 p_shipment_rec.SHIP_METHOD_CODE <> FND_API.G_MISS_CHAR OR
43 p_shipment_rec.FREIGHT_TERMS_CODE <> FND_API.G_MISS_CHAR OR
44 p_shipment_rec.FREIGHT_CARRIER_CODE <> FND_API.G_MISS_CHAR OR
45 p_shipment_rec.FOB_CODE <> FND_API.G_MISS_CHAR OR
46 p_shipment_rec.SHIPPING_INSTRUCTIONS <> FND_API.G_MISS_CHAR OR
47 p_shipment_rec.PACKING_INSTRUCTIONS <> FND_API.G_MISS_CHAR OR
48 p_shipment_rec.QUANTITY <> FND_API.G_MISS_NUM OR
49 p_shipment_rec.RESERVED_QUANTITY <> FND_API.G_MISS_CHAR OR
50 p_shipment_rec.RESERVATION_ID <> FND_API.G_MISS_NUM OR
51 p_shipment_rec.ORDER_LINE_ID <> FND_API.G_MISS_NUM OR
52 p_shipment_rec.ATTRIBUTE_CATEGORY <> FND_API.G_MISS_CHAR OR
53 p_shipment_rec.ATTRIBUTE1 <> FND_API.G_MISS_CHAR OR
54 p_shipment_rec.ATTRIBUTE2 <> FND_API.G_MISS_CHAR OR
55 p_shipment_rec.ATTRIBUTE3 <> FND_API.G_MISS_CHAR OR
56 p_shipment_rec.ATTRIBUTE4 <> FND_API.G_MISS_CHAR OR
57 p_shipment_rec.ATTRIBUTE5 <> FND_API.G_MISS_CHAR OR
58 p_shipment_rec.ATTRIBUTE6 <> FND_API.G_MISS_CHAR OR
59 p_shipment_rec.ATTRIBUTE7 <> FND_API.G_MISS_CHAR OR
60 p_shipment_rec.ATTRIBUTE8 <> FND_API.G_MISS_CHAR OR
61 p_shipment_rec.ATTRIBUTE9 <> FND_API.G_MISS_CHAR OR
62 p_shipment_rec.ATTRIBUTE10 <> FND_API.G_MISS_CHAR OR
63 p_shipment_rec.ATTRIBUTE11 <> FND_API.G_MISS_CHAR OR
64 p_shipment_rec.ATTRIBUTE12 <> FND_API.G_MISS_CHAR OR
65 p_shipment_rec.ATTRIBUTE13 <> FND_API.G_MISS_CHAR OR
66 p_shipment_rec.ATTRIBUTE14 <> FND_API.G_MISS_CHAR OR
67 p_shipment_rec.ATTRIBUTE15 <> FND_API.G_MISS_CHAR OR
68 p_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM OR
69 p_shipment_rec.SHIP_FROM_ORG_ID <> FND_API.G_MISS_NUM OR
70 p_shipment_rec.ship_to_cust_party_id <> FND_API.G_MISS_NUM) THEN
71
72 IF aso_debug_pub.g_debug_flag = 'Y' THEN
73 aso_debug_pub.add('Shipment_Rec_Exists function returning TRUE');
74 END IF;
75
76 return TRUE;
77
78 ELSE
79
80 IF aso_debug_pub.g_debug_flag = 'Y' THEN
81 aso_debug_pub.add('Shipment_Rec_Exists function returning FALSE');
82 END IF;
83
84 return FALSE;
85
86 END IF;
87
88 END Shipment_Rec_Exists;
89
90 -- hyang defaulting framework
91 FUNCTION Shipment_Null_Rec_Exists(
92 p_shipment_rec IN ASO_QUOTE_PUB.Shipment_Rec_Type,
93 p_database_object_name IN VARCHAR2
94 ) RETURN BOOLEAN
95 IS
96
97 BEGIN
98 IF aso_debug_pub.g_debug_flag = 'Y' THEN
99 aso_debug_pub.add('Begin Shipment_Null_Rec_Exists function.', 1, 'Y');
100 END IF;
101
102 IF (
103 (
104 p_database_object_name = 'ASO_AK_QUOTE_HEADER_V'
105 AND (
106 p_shipment_rec.SHIP_TO_PARTY_SITE_ID IS NOT NULL OR
107 p_shipment_rec.SHIP_TO_PARTY_ID IS NOT NULL OR
108 p_shipment_rec.SHIP_TO_CUST_PARTY_ID IS NOT NULL OR
109 p_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID IS NOT NULL OR
110 p_shipment_rec.REQUEST_DATE_TYPE IS NOT NULL OR
111 p_shipment_rec.REQUEST_DATE IS NOT NULL OR
112 p_shipment_rec.SHIP_METHOD_CODE IS NOT NULL OR
113 p_shipment_rec.SHIPMENT_PRIORITY_CODE IS NOT NULL OR
114 p_shipment_rec.FREIGHT_TERMS_CODE IS NOT NULL OR
115 p_shipment_rec.FOB_CODE IS NOT NULL OR
116 p_shipment_rec.SHIPPING_INSTRUCTIONS IS NOT NULL OR
117 p_shipment_rec.PACKING_INSTRUCTIONS IS NOT NULL OR
118 p_shipment_rec.DEMAND_CLASS_CODE IS NOT NULL
119 )
120 ) OR (
121 p_database_object_name = 'ASO_AK_QUOTE_OPPTY_V'
122 AND (
123 p_shipment_rec.SHIP_TO_PARTY_SITE_ID IS NOT NULL OR
124 p_shipment_rec.SHIP_TO_PARTY_ID IS NOT NULL OR
125 p_shipment_rec.SHIP_TO_CUST_PARTY_ID IS NOT NULL OR
126 p_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID IS NOT NULL OR
127 p_shipment_rec.REQUEST_DATE_TYPE IS NOT NULL OR
128 p_shipment_rec.REQUEST_DATE IS NOT NULL OR
129 p_shipment_rec.SHIP_METHOD_CODE IS NOT NULL OR
130 p_shipment_rec.SHIPMENT_PRIORITY_CODE IS NOT NULL OR
131 p_shipment_rec.FREIGHT_TERMS_CODE IS NOT NULL OR
132 p_shipment_rec.FOB_CODE IS NOT NULL OR
133 p_shipment_rec.SHIPPING_INSTRUCTIONS IS NOT NULL OR
134 p_shipment_rec.PACKING_INSTRUCTIONS IS NOT NULL OR
135 p_shipment_rec.DEMAND_CLASS_CODE IS NOT NULL
136 )
137 ) OR (
138 p_database_object_name = 'ASO_AK_QUOTE_LINE_V'
139 AND (
140 p_shipment_rec.SHIP_TO_PARTY_SITE_ID IS NOT NULL OR
141 p_shipment_rec.SHIP_TO_PARTY_ID IS NOT NULL OR
142 p_shipment_rec.SHIP_TO_CUST_PARTY_ID IS NOT NULL OR
143 p_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID IS NOT NULL OR
144 p_shipment_rec.REQUEST_DATE IS NOT NULL OR
145 p_shipment_rec.SHIP_METHOD_CODE IS NOT NULL OR
146 p_shipment_rec.SHIPMENT_PRIORITY_CODE IS NOT NULL OR
147 p_shipment_rec.FREIGHT_TERMS_CODE IS NOT NULL OR
148 p_shipment_rec.FOB_CODE IS NOT NULL OR
149 p_shipment_rec.SHIPPING_INSTRUCTIONS IS NOT NULL OR
150 p_shipment_rec.PACKING_INSTRUCTIONS IS NOT NULL OR
151 p_shipment_rec.DEMAND_CLASS_CODE IS NOT NULL OR
152 p_shipment_rec.SHIP_FROM_ORG_ID IS NOT NULL -- Added for Bug 10112949
153 )
154 ) OR (
155 p_database_object_name = 'ASO_AK_STORE_CART_HEADER_V'
156 AND (
157 p_shipment_rec.SHIP_TO_PARTY_SITE_ID IS NOT NULL OR
158 p_shipment_rec.SHIP_TO_PARTY_ID IS NOT NULL OR
159 p_shipment_rec.SHIP_TO_CUST_PARTY_ID IS NOT NULL OR
160 p_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID IS NOT NULL OR
161 p_shipment_rec.REQUEST_DATE_TYPE IS NOT NULL OR
162 p_shipment_rec.REQUEST_DATE IS NOT NULL OR
163 p_shipment_rec.SHIP_METHOD_CODE IS NOT NULL OR
164 p_shipment_rec.SHIPMENT_PRIORITY_CODE IS NOT NULL OR
165 p_shipment_rec.FREIGHT_TERMS_CODE IS NOT NULL OR
166 p_shipment_rec.FOB_CODE IS NOT NULL OR
167 p_shipment_rec.SHIPPING_INSTRUCTIONS IS NOT NULL OR
168 p_shipment_rec.PACKING_INSTRUCTIONS IS NOT NULL OR
169 p_shipment_rec.DEMAND_CLASS_CODE IS NOT NULL
170 )
171 ) OR (
172 p_database_object_name = 'ASO_AK_STORE_CART_LINES_V'
173 AND (
174 p_shipment_rec.SHIP_TO_PARTY_SITE_ID IS NOT NULL OR
175 p_shipment_rec.SHIP_TO_PARTY_ID IS NOT NULL OR
176 p_shipment_rec.SHIP_TO_CUST_PARTY_ID IS NOT NULL OR
177 p_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID IS NOT NULL OR
178 p_shipment_rec.REQUEST_DATE IS NOT NULL OR
179 p_shipment_rec.SHIP_METHOD_CODE IS NOT NULL OR
180 p_shipment_rec.SHIPMENT_PRIORITY_CODE IS NOT NULL OR
181 p_shipment_rec.FREIGHT_TERMS_CODE IS NOT NULL OR
182 p_shipment_rec.FOB_CODE IS NOT NULL OR
183 p_shipment_rec.SHIPPING_INSTRUCTIONS IS NOT NULL OR
184 p_shipment_rec.PACKING_INSTRUCTIONS IS NOT NULL OR
185 p_shipment_rec.DEMAND_CLASS_CODE IS NOT NULL
186 )
187 )
188
189 ) THEN
190
191 IF aso_debug_pub.g_debug_flag = 'Y' THEN
192 aso_debug_pub.add('Defaulting Engine returns values in shipment_rec.');
193 END IF;
194
195 return TRUE;
196
197 ELSE
198
199 IF aso_debug_pub.g_debug_flag = 'Y' THEN
200 aso_debug_pub.add('Defaulting Engine doesn''t default any attribute in shipment_rec.');
201 END IF;
202
203 return FALSE;
204
205 END IF;
206
207 END Shipment_Null_Rec_Exists;
208
209
210 FUNCTION Payment_NULL_Rec_Exists(
211 p_payment_rec IN ASO_QUOTE_PUB.Payment_Rec_Type,
212 p_database_object_name IN VARCHAR2
213 ) RETURN BOOLEAN
214 IS
215
216 BEGIN
217 IF aso_debug_pub.g_debug_flag = 'Y' THEN
218 aso_debug_pub.add('Begin Payment_Rec_Exists function.', 1, 'Y');
219 END IF;
220
221 IF (
222 (
223 p_database_object_name = 'ASO_AK_QUOTE_HEADER_V'
224 AND (
225 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
226 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
227 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
228 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
229 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
230 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
231 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
232 )
233 ) OR (
234 p_database_object_name = 'ASO_AK_QUOTE_OPPTY_V'
235 AND (
236 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
237 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
238 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
239 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
240 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
241 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
242 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
243 )
244 ) OR (
245 p_database_object_name = 'ASO_AK_QUOTE_LINE_V'
246 AND (
247 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
248 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
249 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
250 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
251 p_payment_rec.CUST_PO_LINE_NUMBER IS NOT NULL OR
252 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
253 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
254 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
255 )
256 ) OR (
257 p_database_object_name = 'ASO_AK_STORE_CART_HEADER_V'
258 AND (
259 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
260 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
261 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
262 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
263 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
264 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
265 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
266 )
267 ) OR (
268 p_database_object_name = 'ASO_AK_STORE_CART_LINES_V'
269 AND (
270 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
271 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
272 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
273 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
274 p_payment_rec.CUST_PO_LINE_NUMBER IS NOT NULL OR
275 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
276 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
277 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
278 )
279 )
280 ) THEN
281
282 IF aso_debug_pub.g_debug_flag = 'Y' THEN
283 aso_debug_pub.add('Defaulting Engine returns values in payment_rec.');
284 END IF;
285
286 return TRUE;
287
288 ELSE
289
290 IF aso_debug_pub.g_debug_flag = 'Y' THEN
291 aso_debug_pub.add('Defaulting Engine doesn''t default any attribute in payment_rec.');
292 END IF;
293
294 RETURN FALSE;
295
296 END IF;
297
298 END Payment_NULL_Rec_Exists;
299
300
301 FUNCTION Tax_Detail_Null_Rec_Exists(
302 p_tax_detail_rec IN ASO_QUOTE_PUB.Tax_Detail_Rec_Type,
303 p_database_object_name IN VARCHAR2
304 ) RETURN BOOLEAN
305 IS
306
307 BEGIN
308 IF aso_debug_pub.g_debug_flag = 'Y' THEN
309 aso_debug_pub.add('Begin Tax_Detail_Null_Rec_Exists function.', 1, 'Y');
310 END IF;
311
312 IF aso_debug_pub.g_debug_flag = 'Y' THEN
313 aso_debug_pub.add('Defaulting Engine doesn''t default any attribute in tax_detail_rec.');
314 END IF;
315
316 RETURN FALSE;
317
318 END Tax_Detail_Null_Rec_Exists;
319
320 -- hyang defaulting framework end
321
322
323 PROCEDURE Populate_Qte_Header (
324 p_qte_header_rec IN ASO_QUOTE_PUB.qte_header_rec_Type,
325 p_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type,
326 x_qte_header_rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.qte_header_rec_Type
327 )
328 IS
329
330 l_valid_org_id number; --New variable to store org_id Yogeshwar (MOAC)
331
332 CURSOR C_Qte_Number IS
333 SELECT ASO_QUOTE_NUMBER_S.nextval
334 FROM dual;
335
336 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
337 SELECT quote_version
338 FROM ASO_QUOTE_HEADERS_ALL
339 WHERE quote_number = X_qte_number;
340
341 CURSOR C_Qte_Status_Id (c_status_code VARCHAR2) IS
342 SELECT quote_status_id
343 FROM ASO_QUOTE_STATUSES_VL
344 WHERE status_code = c_status_code;
345
346 CURSOR c_price_list (c_order_type_id NUMBEr) IS
347 SELECT price_list_id
348 FROM OE_ORDER_TYPES_V
349 WHERE order_type_id = c_order_type_id;
350
351 CURSOR c_currency_code (c_price_list_id NUMBER) IS
352 SELECT currency_code
353 FROM qp_price_lists_v
354 WHERE price_list_id = c_price_list_id;
355
356
357 CURSOR c_resource IS
358 SELECT resource_id FROM JTF_RS_SRP_VL
359 WHERE person_id = p_qte_header_rec.employee_person_id;
360
361 -- Change START
362 -- Release 12 MOAC Changes : Bug 4500739
363 -- Changes Done by : Girish
364 -- Comments : Using HR EIT in place of org striped profile
365
366 --l_order_type_id NUMBER := to_number(fnd_profile.value('ASO_ORDER_TYPE_ID'));
367 l_order_type_id NUMBER := to_number(ASO_UTILITY_PVT.GET_OU_ATTRIBUTE_VALUE(ASO_UTILITY_PVT.G_DEFAULT_ORDER_TYPE));
368
369 -- Change END
370
371 l_price_list_id NUMBER;
372 l_currency_code VARCHAR2(15);
373 l_resource_id NUMBER;
374 l_default_status_profile VARCHAR2(30);
375
376 l_defaulting_fwk_flag VARCHAR2(1) := p_control_rec.defaulting_fwk_flag;
377
378 x_return_status VARCHAR2(1);
379 l_org_id NUMBER; --Yogeshwar (MOAC)
380
381 BEGIN
382
383 IF aso_debug_pub.g_debug_flag = 'Y' THEN
384 aso_debug_pub.add('Begin Populate_Qte_Header procedure', 1, 'Y');
385 aso_debug_pub.add('Defaulting Framework Flag - '||l_defaulting_fwk_flag, 1, 'Y');
386 END IF;
387
388
389 x_qte_header_rec := p_qte_header_rec;
390
391 IF aso_debug_pub.g_debug_flag = 'Y' THEN
392 aso_debug_pub.add('Populate_Qte_Header: x_qte_header_rec.quote_number: '||x_qte_header_rec.quote_number, 1, 'N');
393 END IF;
394
395 IF (x_qte_header_rec.quote_number IS NULL OR
396 x_qte_header_rec.quote_number = FND_API.G_MISS_NUM) THEN
397
398 IF nvl( FND_PROFILE.Value('ASO_AUTO_NUMBERING'), 'Y') = 'Y' THEN
399
400 IF aso_debug_pub.g_debug_flag = 'Y' THEN
401 aso_debug_pub.add('Populate_Qte_Header: Inside IF cond ASO_AUTO_NUMBERING = Y', 1, 'N');
402 END IF;
403
404 OPEN C_Qte_Number;
405 FETCH C_Qte_Number INTO x_qte_header_rec.quote_number;
406 CLOSE C_Qte_Number;
407
408 x_qte_header_rec.quote_version := 1;
409
410 IF aso_debug_pub.g_debug_flag = 'Y' THEN
411 aso_debug_pub.add('x_qte_header_rec.quote_number : '||x_qte_header_rec.quote_number);
412 aso_debug_pub.add('x_qte_header_rec.quote_version: '||x_qte_header_rec.quote_version);
413 END IF;
414
415 ELSIF x_qte_header_rec.quote_type = 'T' then
416
417 IF aso_debug_pub.g_debug_flag = 'Y' THEN
418 aso_debug_pub.add('Populate_Qte_Header: ELSIF cond quote_type = T');
419 END IF;
420
421 OPEN C_Qte_Number;
422 FETCH C_Qte_Number INTO x_qte_header_rec.quote_number;
423 CLOSE C_Qte_Number;
424
425 x_qte_header_rec.quote_version := 1;
426
427 IF aso_debug_pub.g_debug_flag = 'Y' THEN
428 aso_debug_pub.add('x_qte_header_rec.quote_number : '||x_qte_header_rec.quote_number);
429 aso_debug_pub.add('x_qte_header_rec.quote_version: '||x_qte_header_rec.quote_version);
430 END IF;
431
432 ELSE
433
434 IF aso_debug_pub.g_debug_flag = 'Y' THEN
435 aso_debug_pub.add('Populate_Qte_Header: ASO_AUTO_NUMBERING is off and quote_number is passed as G_MISS_NUM or NULL', 1, 'N');
436
437 END IF;
438
439 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
440 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
441 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_NUMBER', FALSE);
442 FND_MSG_PUB.ADD;
443 END IF;
444
445 RAISE FND_API.G_EXC_ERROR;
446
447 END IF;
448
449 ELSE
450
451 IF aso_debug_pub.g_debug_flag = 'Y' THEN
452 aso_debug_pub.add('Populate_Qte_Header: Inside ELSE cond quote_number is not null and not G_MISS_NUM',1, 'N');
453 END IF;
454
455 OPEN C_Qte_Version(x_qte_header_rec.quote_number);
456 FETCH C_Qte_Version into x_qte_header_rec.quote_version;
457
458 --Changed for Bug # 2365955
459 --IF x_qte_header_rec.quote_version IS NOT NULL AND x_qte_header_rec.quote_version <> FND_API.G_MISS_NUM THEN
460
461 IF C_Qte_Version%FOUND THEN
462
463 IF aso_debug_pub.g_debug_flag = 'Y' THEN
464 aso_debug_pub.add('Inside else: C_Qte_Version%FOUND', 1, 'N');
465 END IF;
466
467 CLOSE C_Qte_Version;
468
469 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
470 FND_MESSAGE.Set_Name('ASO', 'ASO_API_DUPLICATE_QTE_NUM');
471 FND_MESSAGE.Set_Token('QTE_NUM', x_qte_header_rec.quote_number, FALSE);
472 FND_MSG_PUB.ADD;
473 END IF;
474 RAISE FND_API.G_EXC_ERROR;
475 ELSE
476 IF aso_debug_pub.g_debug_flag = 'Y' THEN
477 aso_debug_pub.add('Inside else: C_Qte_Version%NOTFOUND', 1, 'N');
478 END IF;
479 x_qte_header_rec.quote_version := 1;
480 CLOSE C_Qte_Version;
481 END IF;
482 -- x_qte_header_rec.quote_version := nvl(x_qte_header_rec.quote_version, 0) + 1;
483 END IF;
484
485 IF aso_debug_pub.g_debug_flag = 'Y' THEN
486 aso_debug_pub.add('Populate_Qte_Header: x_qte_header_rec.quote_number : '||x_qte_header_rec.quote_number, 1, 'N');
487 aso_debug_pub.add('Populate_Qte_Header: x_qte_header_rec.quote_version: '||x_qte_header_rec.quote_version,1, 'N');
488 END IF;
489
490 IF (x_qte_header_rec.quote_status_id IS NULL OR
491 x_qte_header_rec.quote_status_id = FND_API.G_MISS_NUM) THEN
492 --OPEN c_qte_status_id ('DRAFT');
493 -- hyang 2269617
494 l_default_status_profile := fnd_profile.value( 'ASO_DEFAULT_STATUS_CODE');
495 IF aso_debug_pub.g_debug_flag = 'Y' THEN
496 aso_debug_pub.add('Populate_Qte_Header: Profile ASO_DEFAULT_STATUS_CODE is ' || l_default_status_profile, 1, 'Y');
497 END IF;
498 OPEN c_qte_status_id ( l_default_status_profile );
499 FETCH c_qte_status_id INTO x_qte_header_rec.quote_status_id;
500 CLOSE c_qte_status_id;
501 END IF;
502
503 IF (l_defaulting_fwk_flag = 'N')
504 THEN
505
506 --Commented Code Yogeshwar (MOAC)
507 /* IF (x_qte_header_rec.org_id IS NULL OR
508 x_qte_header_rec.org_id = FND_API.G_MISS_NUM) THEN
509 IF SUBSTRB(USERENV('CLIENT_INFO'),1,1) <> ' ' THEN
510 x_qte_header_rec.org_id := TO_NUMBER(SUBSTRB(USERENV('CLIENT_INFO'),1,10));
511 END IF;
512 END IF;
513 */
514 --Commented Code End Yogeshwar (MOAC)
515
516 --New Code Start Yogeshwar (MOAC)
517 If x_qte_header_rec.org_id IS NULL THEN
518 l_org_id := FND_API.G_MISS_NUM;
519 Else
520 l_org_id := x_qte_header_rec.org_id;
521 End if;
522 l_valid_org_id:= MO_GLOBAL.get_valid_org(l_org_id);
523 if l_valid_org_id is NULL then
524 x_return_status := FND_API.G_RET_STS_ERROR;
525 RAISE FND_API.G_EXC_ERROR;
526 else
527 x_qte_header_rec.org_id := l_valid_org_id;
528 End if;
529 --New Code End Yogeshwar (MOAC)
530
531 IF aso_debug_pub.g_debug_flag = 'Y' THEN
532 aso_debug_pub.add('Before OM Defaulting - Populate Qte header', 1, 'N');
533 aso_debug_pub.add('Before OM Defaulting Value of ASO_OM_DEFAULTING '||FND_PROFILE.Value('ASO_OM_DEFAULTING'), 1, 'N');
534 END IF;
535 -- IF (NVL(FND_PROFILE.Value('ASO_OM_DEFAULTING'), 'N') = 'N') THEN
536 IF (x_qte_header_rec.order_type_id IS NULL OR
537 x_qte_header_rec.order_type_id = FND_API.G_MISS_NUM) THEN
538 x_qte_header_rec.order_type_id := l_order_type_id;
539 END IF;
540 --END IF;
541
542 -- New code for Bug # 2317961
543
544 IF aso_debug_pub.g_debug_flag = 'Y' THEN
545 aso_debug_pub.add('Populate_qte_header: order_type_id: ||x_qte_header_rec.order_type_id ',1,'N');
546 aso_debug_pub.add('Populate_qte_header: price_list_id: ||x_qte_header_rec.price_list_id ',1,'N');
547 END IF;
548
549 IF x_qte_header_rec.price_list_id = FND_API.G_MISS_NUM THEN
550
551 OPEN c_price_list(x_qte_header_rec.order_type_id);
552 FETCH c_price_list INTO x_qte_header_rec.price_list_id;
553 CLOSE c_price_list;
554
555 IF aso_debug_pub.g_debug_flag = 'Y' THEN
556 aso_debug_pub.add('Populate_qte_header: After c_price_list cursor: price_list_id: ||x_qte_header_rec.price_list_id ',1,'N');
557 END IF;
558
559 ELSIF (x_qte_header_rec.price_list_id IS NULL) AND
560 (x_qte_header_rec.currency_code IS NULL OR
561 x_qte_header_rec.currency_code = FND_API.G_MISS_CHAR) THEN
562
563 IF aso_debug_pub.g_debug_flag = 'Y' THEN
564 aso_debug_pub.add('Populate_qte_header: Currency_code can not be passed as NULL or G_MISS_CHAR when price_list_id is NULL',1,'N');
565 END IF;
566
567 FND_MESSAGE.Set_Name('ASO', 'ASO_PRICE_LIST_CURRENCY_CODE');
568 FND_MSG_PUB.ADD;
569 RAISE FND_API.G_EXC_ERROR;
570
571 END IF;
572
573 -- End new code for Bug # 2317961
574
575 IF aso_debug_pub.g_debug_flag = 'Y' THEN
576 aso_debug_pub.add('After price_list_id - Populate Qte header', 1, 'N');
577 END IF;
578
579 IF (x_qte_header_rec.currency_code IS NULL OR
580 x_qte_header_rec.currency_code = FND_API.G_MISS_CHAR) THEN
581 OPEN c_currency_code(x_qte_header_rec.price_list_id);
582 FETCH c_currency_code INTO x_qte_header_rec.currency_code;
583 CLOSE c_currency_code;
584 END IF;
585
586 IF (--x_qte_header_rec.quote_expiration_date IS NULL OR
587 x_qte_header_rec.quote_expiration_date = FND_API.G_MISS_DATE) THEN
588 x_qte_header_rec.quote_expiration_date := sysdate +
589 NVL(FND_PROFILE.value('ASO_QUOTE_DURATION'), G_QUOTE_DURATION);
590 END IF;
591
592 IF (x_qte_header_rec.resource_id IS NULL OR
593 x_qte_header_rec.resource_id = FND_API.G_MISS_NUM)
594 AND (x_qte_header_rec.EMPLOYEE_PERSON_ID IS NOT NULL AND
595 x_qte_header_rec.EMPLOYEE_PERSON_ID <> FND_API.G_MISS_NUM) THEN
596
597 OPEN c_resource;
598 FETCH c_resource INTO l_resource_id;
599 IF c_resource%NOTFOUND OR l_resource_id IS NULL OR l_resource_id= FND_API.G_MISS_NUM THEN
600 CLOSE c_resource;
601 x_return_status := FND_API.G_RET_STS_ERROR;
602 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
603 FND_MESSAGE.Set_Token('COLUMN', 'RESOURCE ID', FALSE);
604 FND_MSG_PUB.ADD;
605 RAISE FND_API.G_EXC_ERROR;
606 END IF;
607
608 CLOSE c_resource;
609 x_qte_header_rec.resource_id := l_resource_id;
610 IF aso_debug_pub.g_debug_flag = 'Y' THEN
611 aso_debug_pub.add('Inside Populate Qte header resource Id'||l_resource_id, 1, 'N');
612 END IF;
613
614 END IF;
615
616 END IF; -- defaulting_fwk_flag
617
618
619 IF x_qte_header_rec.max_version_flag is NULL OR x_qte_header_rec.max_version_flag = FND_API.G_MISS_CHAR THEN
620 x_qte_header_rec.max_version_flag := 'Y';
621 END IF;
622
623 IF aso_debug_pub.g_debug_flag = 'Y' THEN
624 aso_debug_pub.add('Inside Populate Qte header x_qte_header_rec.max_version_flag'||x_qte_header_rec.max_version_flag,1,'N');
625 aso_debug_pub.add('End Populate Qte header', 1, 'Y');
626 END IF;
627
628 END Populate_Qte_Header;
629
630 PROCEDURE Insert_Rows (
631 P_qte_Header_Rec IN ASO_QUOTE_PUB.qte_header_rec_Type,
632 p_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
633 P_Price_Adjustment_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
634 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
635 P_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type,
636 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type,
637 P_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
638 P_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
639 P_hd_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
640 P_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
641 P_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
642 P_Qte_Access_Tbl IN ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
643 X_qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.qte_header_rec_Type,
644 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
645 X_Price_Adjustment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
646 x_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
647 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
648 X_Shipment_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Rec_Type,
649 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
650 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
651 X_hd_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
652 X_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
653 X_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
654 X_Qte_Access_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
655 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
656 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
657 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
658 )
659 IS
660 l_price_adj_rec ASO_QUOTE_PUB.Price_Adj_Rec_Type;
661 l_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
662 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
663 l_freight_charge_rec ASO_QUOTE_PUB.Freight_Charge_Rec_Type;
664 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
665 lx_qte_header_id NUMBER;
666 lx_shipment_id NUMBER;
667 l_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type ;
668 l_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
669 l_Sales_Credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type ;
670 l_Quote_Party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
671 l_line_attribs_rec ASO_QUOTE_PUB.Line_Attribs_Ext_REC_type;
672 l_sysdate DATE;
673 l_price_adj_attr_tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
674 l_price_attributes_rec ASO_QUOTE_PUB.Price_Attributes_Rec_Type;
675
676 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
677 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
678
679 l_org_id NUMBER;
680 l_valid_org_id number; --New variable to store ORG_ID Yogeshwar (MOAC)
681
682 l_qte_access_tbl ASO_QUOTE_PUB.Qte_Access_Tbl_Type := p_qte_access_tbl;
683 --l_qte_access_tbl ASO_SECURITY_INT.Qte_Access_Tbl_Type := p_qte_access_tbl;
684 --lx_qte_access_tbl ASO_SECURITY_INT.Qte_Access_Tbl_Type;
685 lx_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
686
687 BEGIN
688 x_qte_header_rec := p_qte_header_rec;
689 l_sysdate := sysdate;
690
691 --Commented Code Start Yogeshwar (MOAC)
692 /* IF p_qte_header_rec.ORG_ID IS NULL OR p_qte_header_rec.ORG_ID = FND_API.G_MISS_NUM THEN
693
694 IF SUBSTRB(USERENV('CLIENT_INFO'),1 ,1) = ' ' THEN
695 l_org_id := NULL;
696 ELSE
697 l_org_id := TO_NUMBER(SUBSTRB(USERENV('CLIENT_INFO'), 1,10));
698 END IF;
699
700 ELSIF p_qte_header_rec.ORG_ID IS NOT NULL AND p_qte_header_rec.ORG_ID <> FND_API.G_MISS_NUM THEN
701 l_org_id := p_qte_header_rec.ORG_ID;
702 END IF;
703 */ --Commented Code End Yogeshwar (MOAC)
704
705 --New Code Start Yogeshwar (MOAC)
706 If p_qte_header_rec.org_id IS NULL THEN
707 l_org_id := FND_API.G_MISS_NUM;
708 Else
709 l_org_id := p_qte_header_rec.org_id;
710 End if;
711 l_valid_org_id:= MO_GLOBAL.get_valid_org(l_org_id);
712 if l_valid_org_id is NULL then
713 x_return_status := FND_API.G_RET_STS_ERROR;
714 RAISE FND_API.G_EXC_ERROR;
715 else
716 l_org_id := l_valid_org_id ;
717 End if;
718 --New Code End Yogeshwar (MOAC)
719
720 lx_qte_header_id := p_qte_header_rec.quote_header_id;
721
722 IF aso_debug_pub.g_debug_flag = 'Y' THEN
723 aso_debug_pub.add('Begin Insert Rows', 1, 'Y');
724 END IF;
725
726 ASO_QUOTE_HEADERS_PKG.Insert_Row(
727 px_QUOTE_HEADER_ID => lx_qte_header_id,
728 p_CREATION_DATE => l_SYSDATE,
729 p_CREATED_BY => G_USER_ID,
730 p_LAST_UPDATE_DATE => l_sysdate,
731 p_LAST_UPDATED_BY => G_USER_ID,
732 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
733 p_REQUEST_ID => p_qte_header_rec.REQUEST_ID,
734 p_PROGRAM_APPLICATION_ID => p_qte_header_rec.PROGRAM_APPLICATION_ID,
735 p_PROGRAM_ID => p_qte_header_rec.PROGRAM_ID,
736 p_PROGRAM_UPDATE_DATE => p_qte_header_rec.PROGRAM_UPDATE_DATE,
737 p_ORG_ID => l_org_id,
738 p_QUOTE_NAME => p_qte_header_rec.QUOTE_NAME,
739 p_QUOTE_NUMBER => p_qte_header_rec.QUOTE_NUMBER,
740 p_QUOTE_VERSION => p_qte_header_rec.QUOTE_VERSION,
741 p_QUOTE_STATUS_ID => p_qte_header_rec.QUOTE_STATUS_ID,
742 p_QUOTE_SOURCE_CODE => p_qte_header_rec.QUOTE_SOURCE_CODE,
743 p_QUOTE_EXPIRATION_DATE => trunc(p_qte_header_rec.QUOTE_EXPIRATION_DATE),
744 p_PRICE_FROZEN_DATE => p_qte_header_rec.PRICE_FROZEN_DATE,
745 p_QUOTE_PASSWORD => p_qte_header_rec.QUOTE_PASSWORD,
746 p_ORIGINAL_SYSTEM_REFERENCE => p_qte_header_rec.ORIGINAL_SYSTEM_REFERENCE,
747 p_PARTY_ID => p_qte_header_rec.PARTY_ID,
748 p_CUST_ACCOUNT_ID => p_qte_header_rec.CUST_ACCOUNT_ID,
749 p_ORG_CONTACT_ID => p_qte_header_rec.ORG_CONTACT_ID,
750 p_PHONE_ID => p_QTE_header_rec.PHONE_ID,
751 p_INVOICE_TO_PARTY_SITE_ID => p_qte_header_rec.INVOICE_TO_PARTY_SITE_ID,
752 p_INVOICE_TO_PARTY_ID => p_qte_header_rec.INVOICE_TO_PARTY_ID,
753 p_Invoice_to_CUST_ACCOUNT_ID => p_qte_header_rec.Invoice_to_CUST_ACCOUNT_ID,
754 p_ORIG_MKTG_SOURCE_CODE_ID => p_qte_header_rec.ORIG_MKTG_SOURCE_CODE_ID,
755 p_MARKETING_SOURCE_CODE_ID => p_qte_header_rec.MARKETING_SOURCE_CODE_ID,
756 p_ORDER_TYPE_ID => p_qte_header_rec.ORDER_TYPE_ID,
757 p_QUOTE_CATEGORY_CODE => p_qte_header_rec.QUOTE_CATEGORY_CODE,
758 p_ORDERED_DATE => p_qte_header_rec.ORDERED_DATE,
759 p_ACCOUNTING_RULE_ID => p_qte_header_rec.ACCOUNTING_RULE_ID,
760 p_INVOICING_RULE_ID => p_qte_header_rec.INVOICING_RULE_ID,
761 p_EMPLOYEE_PERSON_ID => p_qte_header_rec.EMPLOYEE_PERSON_ID,
762 p_PRICE_LIST_ID => p_qte_header_rec.PRICE_LIST_ID,
763 p_CURRENCY_CODE => p_qte_header_rec.CURRENCY_CODE,
764 p_TOTAL_LIST_PRICE => p_qte_header_rec.TOTAL_LIST_PRICE,
765 p_TOTAL_ADJUSTED_AMOUNT => p_qte_header_rec.TOTAL_ADJUSTED_AMOUNT,
766 p_TOTAL_ADJUSTED_PERCENT => p_qte_header_rec.TOTAL_ADJUSTED_PERCENT,
767 p_TOTAL_TAX => p_qte_header_rec.TOTAL_TAX,
768 p_TOTAL_SHIPPING_CHARGE => p_qte_header_rec.TOTAL_SHIPPING_CHARGE,
769 p_SURCHARGE => p_qte_header_rec.SURCHARGE,
770 p_TOTAL_QUOTE_PRICE => p_qte_header_rec.TOTAL_QUOTE_PRICE,
771 p_PAYMENT_AMOUNT => p_qte_header_rec.PAYMENT_AMOUNT,
772 p_EXCHANGE_RATE => p_qte_header_rec.EXCHANGE_RATE,
773 p_EXCHANGE_TYPE_CODE => p_qte_header_rec.EXCHANGE_TYPE_CODE,
774 p_EXCHANGE_RATE_DATE => p_qte_header_rec.EXCHANGE_RATE_DATE,
775 p_CONTRACT_ID => p_qte_header_rec.CONTRACT_ID,
776 p_SALES_CHANNEL_CODE => p_qte_header_rec.SALES_CHANNEL_CODE,
777 p_ORDER_ID => p_QTE_header_rec.ORDER_ID,
778 p_RESOURCE_ID => p_qte_header_rec.RESOURCE_ID,
779 p_ATTRIBUTE_CATEGORY => p_qte_header_rec.ATTRIBUTE_CATEGORY,
780 p_ATTRIBUTE1 => p_qte_header_rec.ATTRIBUTE1,
781 p_ATTRIBUTE2 => p_qte_header_rec.ATTRIBUTE2,
782 p_ATTRIBUTE3 => p_qte_header_rec.ATTRIBUTE3,
783 p_ATTRIBUTE4 => p_qte_header_rec.ATTRIBUTE4,
784 p_ATTRIBUTE5 => p_qte_header_rec.ATTRIBUTE5,
785 p_ATTRIBUTE6 => p_qte_header_rec.ATTRIBUTE6,
786 p_ATTRIBUTE7 => p_qte_header_rec.ATTRIBUTE7,
787 p_ATTRIBUTE8 => p_qte_header_rec.ATTRIBUTE8,
788 p_ATTRIBUTE9 => p_qte_header_rec.ATTRIBUTE9,
789 p_ATTRIBUTE10 => p_qte_header_rec.ATTRIBUTE10,
790 p_ATTRIBUTE11 => p_qte_header_rec.ATTRIBUTE11,
791 p_ATTRIBUTE12 => p_qte_header_rec.ATTRIBUTE12,
792 p_ATTRIBUTE13 => p_qte_header_rec.ATTRIBUTE13,
793 p_ATTRIBUTE14 => p_qte_header_rec.ATTRIBUTE14,
794 p_ATTRIBUTE15 => p_qte_header_rec.ATTRIBUTE15,
795 p_ATTRIBUTE16 => p_qte_header_rec.ATTRIBUTE16,
796 p_ATTRIBUTE17 => p_qte_header_rec.ATTRIBUTE17,
797 p_ATTRIBUTE18 => p_qte_header_rec.ATTRIBUTE18,
798 p_ATTRIBUTE19 => p_qte_header_rec.ATTRIBUTE19,
799 p_ATTRIBUTE20 => p_qte_header_rec.ATTRIBUTE20,
800 -- hyang new okc
801 p_CONTRACT_TEMPLATE_ID => FND_API.G_MISS_NUM,
802 p_CONTRACT_TEMPLATE_MAJOR_VER => FND_API.G_MISS_NUM,
803 p_CONTRACT_REQUESTER_ID => FND_API.G_MISS_NUM,
804 p_CONTRACT_APPROVAL_LEVEL => FND_API.G_MISS_CHAR,
805 -- end of hyang new okc
806 p_PUBLISH_FLAG => p_qte_header_rec.PUBLISH_FLAG,
807 p_RESOURCE_GRP_ID => p_qte_header_rec.RESOURCE_GRP_ID,
808 p_SOLD_TO_PARTY_SITE_ID => p_qte_header_rec.SOLD_TO_PARTY_SITE_ID,
809 p_DISPLAY_ARITHMETIC_OPERATOR => p_qte_header_rec.DISPLAY_ARITHMETIC_OPERATOR,
810 p_MAX_VERSION_FLAG => p_qte_header_rec.max_version_flag,
811 p_QUOTE_TYPE => p_qte_header_rec.QUOTE_TYPE,
812 p_QUOTE_DESCRIPTION => p_qte_header_rec.QUOTE_DESCRIPTION,
813 p_MINISITE_ID => p_qte_header_rec.MINISITE_ID,
814 p_CUST_PARTY_ID => p_qte_header_rec.CUST_PARTY_ID,
815 p_INVOICE_TO_CUST_PARTY_ID => p_qte_header_rec.INVOICE_TO_CUST_PARTY_ID,
816 p_Pricing_Status_indicator => p_qte_header_rec.Pricing_Status_indicator,
817 p_Tax_status_Indicator => p_qte_header_rec.Tax_status_Indicator,
818 p_Price_updated_date => p_qte_header_rec.Price_updated_date,
819 p_Tax_updated_date => p_qte_header_rec.Tax_updated_date,
820 p_Recalculate_flag => p_qte_header_rec.Recalculate_flag,
821 p_price_request_id => p_qte_header_rec.price_request_id,
822 p_credit_update_date => p_qte_header_rec.credit_update_date,
823 -- hyang new okc
824 P_Customer_Name_And_Title => p_qte_header_rec.Customer_Name_And_Title,
825 P_Customer_Signature_Date => p_qte_header_rec.Customer_Signature_Date,
826 P_Supplier_Name_And_Title => p_qte_header_rec.Supplier_Name_And_Title,
827 P_Supplier_Signature_Date => p_qte_header_rec.Supplier_Signature_Date,
828 -- end of hyang new okc
829 p_END_CUSTOMER_PARTY_ID => p_qte_header_rec.END_CUSTOMER_PARTY_ID,
830 p_END_CUSTOMER_CUST_PARTY_ID => p_qte_header_rec.END_CUSTOMER_CUST_PARTY_ID,
831 p_END_CUSTOMER_PARTY_SITE_ID => p_qte_header_rec.END_CUSTOMER_PARTY_SITE_ID,
832 p_END_CUSTOMER_CUST_ACCOUNT_ID => p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
833 P_OBJECT_VERSION_NUMBER => p_qte_header_rec.OBJECT_VERSION_NUMBER,
834 p_assistance_requested => p_qte_header_rec.assistance_requested,
835 p_assistance_reason_code => p_qte_header_rec.assistance_reason_code,
836 p_automatic_price_flag => p_qte_header_rec.automatic_price_flag,
837 p_automatic_tax_flag => p_qte_header_rec.automatic_tax_flag,
838 p_header_paynow_charges => p_qte_header_rec.header_paynow_charges
839 -- ER 12879412
840 /* P_PRODUCT_FISC_CLASSIFICATION => p_qte_header_rec.PRODUCT_FISC_CLASSIFICATION,
841 P_TRX_BUSINESS_CATEGORY => p_qte_header_rec.TRX_BUSINESS_CATEGORY*/
842 );
843
844 x_qte_header_rec.QUOTE_HEADER_ID := lx_qte_header_id;
845 x_qte_header_rec.LAST_UPDATE_DATE := l_sysdate;
846 x_qte_header_rec.CREATION_DATE := l_sysdate;
847 x_qte_header_rec.max_version_flag := 'Y';
848 IF aso_debug_pub.g_debug_flag = 'Y' THEN
849 aso_debug_pub.add('After quote headers.insert rows - Insert Rows', 1, 'Y');
850 END IF;
851
852 x_price_adjustment_tbl := p_price_adjustment_tbl;
853 l_price_adj_attr_tbl := p_price_adj_attr_tbl;
854 FOR i IN 1..P_Price_Adjustment_Tbl.count LOOP
855 l_price_adj_rec := p_price_adjustment_tbl(i);
856 -- BC4J Fix
857 --x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID := NULL;
858 l_sysdate := sysdate;
859 ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row(
860 px_PRICE_ADJUSTMENT_ID => x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID,
861 p_CREATION_DATE => SYSDATE,
862 p_CREATED_BY => G_USER_ID,
863 p_LAST_UPDATE_DATE => l_sysdate,
864 p_LAST_UPDATED_BY => G_USER_ID,
865 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
866 p_PROGRAM_APPLICATION_ID => l_price_adj_rec.PROGRAM_APPLICATION_ID,
867 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
868 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
869 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
870 p_QUOTE_HEADER_ID => lx_QTE_HEADER_ID,
871 p_QUOTE_LINE_ID => NULL,
872 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
873 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
874 p_MODIFIER_LINE_TYPE_CODE => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
875 p_MODIFIER_MECHANISM_TYPE_CODE => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
876 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
877 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
878 p_OPERAND => l_price_adj_rec.OPERAND,
879 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
880 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
881 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
882 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
883 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
884 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
885 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
886 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
887 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
888 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
889 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
890 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
891 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
892 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
893 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
894 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
895 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
896 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
897 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
898 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
899 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
900 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
901 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
902 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
903 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
904 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
905 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
906 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
907 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
908 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
909 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
910 -- p_LIST_LINE_ID => l_price_adj_rec. ,
911 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
912 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
913 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
914 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
915 p_COST_ID => l_price_adj_rec.COST_ID ,
916 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
917 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
918 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
919 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
920 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
921 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
922 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
923 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
924 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
925 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
926 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
927 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
928 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
929 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
930 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
931 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
932 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
933 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
934 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
935 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
936 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
937 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
938 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
939 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
940 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
941 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
942 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
943 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
944 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
945 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
946 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
947 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
948 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
949 p_quote_shipment_id => l_price_adj_rec.quote_shipment_id,
950 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
951 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
952 P_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
953 );
954 x_price_adjustment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
955 FOR j in 1..l_price_adj_attr_tbl.count LOOP
956 IF l_price_adj_attr_tbl(j).price_adj_index = i THEN
957 l_price_adj_attr_tbl(j).price_adjustment_id := x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID;
958 END IF;
959 END LOOP;
960 END LOOP;
961
962 x_price_adj_attr_tbl := l_price_adj_attr_tbl;
963 FOR i in 1..l_price_adj_attr_tbl.count LOOP
964 -- BC4J Fix
965 --x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID := NULL;
966 l_sysdate := sysdate;
967 ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row(
968 px_PRICE_ADJ_ATTRIB_ID => x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
969 p_CREATION_DATE => SYSDATE,
970 p_CREATED_BY => G_USER_ID,
971 p_LAST_UPDATE_DATE => l_sysdate,
972 p_LAST_UPDATED_BY => G_USER_ID,
973 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
974 p_PROGRAM_APPLICATION_ID =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
975 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
976 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
977 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
978 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
979 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
980 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
981 p_PRICING_ATTR_VALUE_FROM => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
982 p_PRICING_ATTR_VALUE_TO => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
983 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
984 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE,
985 P_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER);
986 x_price_adj_attr_tbl(i).LAST_UPDATE_DATE := l_sysdate;
987 END LOOP;
988
989 IF aso_debug_pub.g_debug_flag = 'Y' THEN
990 aso_debug_pub.add('After Price_adj.insert_rows - Insert Rows', 1, 'Y');
991 END IF;
992
993 x_payment_tbl := p_payment_tbl;
994
995 FOR i IN 1..P_Payment_Tbl.count LOOP
996
997 l_payment_rec := p_payment_tbl(i);
998 l_payment_rec.payment_term_id_from := p_payment_tbl(i).payment_term_id;
999
1000 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1001 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Insert Rows p_payment_tbl(i).payment_term_id'||p_payment_tbl(i).payment_term_id, 1, 'Y');
1002 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Insert Rows l_payment_rec.PAYMENT_TERM_ID_FROM'||l_payment_rec.PAYMENT_TERM_ID_FROM, 1, 'Y');
1003 END IF;
1004
1005 -- BC4J Fix
1006 --x_payment_tbl(i).payment_id := null;
1007 x_payment_tbl(i).payment_term_id_from := l_payment_rec.payment_term_id_from;
1008 l_sysdate := sysdate;
1009
1010
1011 -- Payments Changes
1012
1013 l_payment_rec.quote_header_id := lx_qte_header_id;
1014
1015 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1016 aso_debug_pub.add('Insert_Rows: Before call to create_payment_row ', 1, 'Y');
1017 END IF;
1018
1019 aso_payment_int.create_payment_row(p_payment_rec => l_payment_rec ,
1020 x_payment_rec => x_payment_tbl(i),
1021 x_return_status => x_return_status,
1022 x_msg_count => x_msg_count,
1023 x_msg_data => x_msg_data);
1024
1025 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1026 aso_debug_pub.add('Insert_Rows: After call to create_payment_row: x_return_status: '||x_return_status, 1, 'Y');
1027 END IF;
1028
1029 if x_return_status <> fnd_api.g_ret_sts_success then
1030 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1031 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1032 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1033 RAISE FND_API.G_EXC_ERROR;
1034 ELSE
1035 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1036 END IF;
1037 end if;
1038
1039 x_payment_tbl(i).payment_term_id_from := l_payment_rec.payment_term_id_from;
1040
1041 -- End Payment Changes
1042 x_payment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
1043
1044 END LOOP;
1045
1046 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1047 aso_debug_pub.add('After Payments.insert_rows - Insert Rows', 1, 'Y');
1048 END IF;
1049
1050 x_shipment_rec := ASO_QUOTE_PUB.G_Miss_Shipment_Rec;
1051
1052 IF p_shipment_tbl.count > 0 THEN
1053
1054 x_shipment_rec := p_shipment_tbl(1);
1055 x_shipment_rec.ship_method_code_from := p_shipment_tbl(1).ship_method_code;
1056 x_shipment_rec.freight_terms_code_from := p_shipment_tbl(1).freight_terms_code;
1057
1058 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1059 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.insert_rows - p_shipment_tbl(1).ship_method_code'||p_shipment_tbl(1).ship_method_code, 1, 'Y');
1060 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.insert_rows - p_shipment_tbl(1).freight_terms_code'||p_shipment_tbl(1).freight_terms_code, 1, 'Y');
1061 END IF;
1062
1063 l_sysdate := sysdate;
1064 -- BC4J Fix
1065 lx_shipment_id := p_shipment_tbl(1).shipment_id;
1066
1067 ASO_SHIPMENTS_PKG.Insert_Row(
1068 px_SHIPMENT_ID => lx_shipment_id,
1069 p_CREATION_DATE => SYSDATE,
1070 p_CREATED_BY => G_USER_ID,
1071 p_LAST_UPDATE_DATE => l_sysdate,
1072 p_LAST_UPDATED_BY => G_USER_ID,
1073 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1074 p_REQUEST_ID => x_shipment_rec.REQUEST_ID,
1075 p_PROGRAM_APPLICATION_ID => x_shipment_rec.PROGRAM_APPLICATION_ID,
1076 p_PROGRAM_ID => x_shipment_rec.PROGRAM_ID,
1077 p_PROGRAM_UPDATE_DATE => x_shipment_rec.PROGRAM_UPDATE_DATE,
1078 p_QUOTE_HEADER_ID => lx_Qte_HEADER_ID,
1079 p_QUOTE_LINE_ID => NULL,
1080 p_PROMISE_DATE => x_shipment_rec.PROMISE_DATE,
1081 p_REQUEST_DATE => x_shipment_rec.REQUEST_DATE,
1082 p_SCHEDULE_SHIP_DATE => x_shipment_rec.SCHEDULE_SHIP_DATE,
1083 p_SHIP_TO_PARTY_SITE_ID => x_shipment_rec.SHIP_TO_PARTY_SITE_ID,
1084 p_SHIP_TO_PARTY_ID => x_shipment_rec.SHIP_TO_PARTY_ID,
1085 p_SHIP_TO_CUST_ACCOUNT_ID => x_Shipment_rec.SHIP_TO_CUST_ACCOUNT_ID,
1086 p_SHIP_PARTIAL_FLAG => x_shipment_rec.SHIP_PARTIAL_FLAG,
1087 p_SHIP_SET_ID => x_shipment_rec.SHIP_SET_ID,
1088 p_SHIP_METHOD_CODE => x_shipment_rec.SHIP_METHOD_CODE,
1089 p_FREIGHT_TERMS_CODE => x_shipment_rec.FREIGHT_TERMS_CODE,
1090 p_FREIGHT_CARRIER_CODE => x_shipment_rec.FREIGHT_CARRIER_CODE,
1091 p_FOB_CODE => x_shipment_rec.FOB_CODE,
1092 p_SHIPPING_INSTRUCTIONS => x_shipment_rec.SHIPPING_INSTRUCTIONS,
1093 p_PACKING_INSTRUCTIONS => x_shipment_rec.PACKING_INSTRUCTIONS,
1094 p_QUANTITY => x_shipment_rec.QUANTITY,
1095 p_RESERVED_QUANTITY => x_shipment_rec.RESERVED_QUANTITY,
1096 p_RESERVATION_ID => x_shipment_rec.RESERVATION_ID,
1097 p_ORDER_LINE_ID => x_shipment_rec.ORDER_LINE_ID,
1098 p_ATTRIBUTE_CATEGORY => x_SHIPMENT_rec.ATTRIBUTE_CATEGORY,
1099 p_ATTRIBUTE1 => x_shipment_rec.ATTRIBUTE1,
1100 p_ATTRIBUTE2 => x_shipment_rec.ATTRIBUTE2,
1101 p_ATTRIBUTE3 => x_shipment_rec.ATTRIBUTE3,
1102 p_ATTRIBUTE4 => x_shipment_rec.ATTRIBUTE4,
1103 p_ATTRIBUTE5 => x_shipment_rec.ATTRIBUTE5,
1104 p_ATTRIBUTE6 => x_shipment_rec.ATTRIBUTE6,
1105 p_ATTRIBUTE7 => x_shipment_rec.ATTRIBUTE7,
1106 p_ATTRIBUTE8 => x_shipment_rec.ATTRIBUTE8,
1107 p_ATTRIBUTE9 => x_shipment_rec.ATTRIBUTE9,
1108 p_ATTRIBUTE10 => x_shipment_rec.ATTRIBUTE10,
1109 p_ATTRIBUTE11 => x_shipment_rec.ATTRIBUTE11,
1110 p_ATTRIBUTE12 => x_shipment_rec.ATTRIBUTE12,
1111 p_ATTRIBUTE13 => x_shipment_rec.ATTRIBUTE13,
1112 p_ATTRIBUTE14 => x_shipment_rec.ATTRIBUTE14,
1113 p_ATTRIBUTE15 => x_shipment_rec.ATTRIBUTE15,
1114 p_ATTRIBUTE16 => x_shipment_rec.ATTRIBUTE16,
1115 p_ATTRIBUTE17 => x_shipment_rec.ATTRIBUTE17,
1116 p_ATTRIBUTE18 => x_shipment_rec.ATTRIBUTE18,
1117 p_ATTRIBUTE19 => x_shipment_rec.ATTRIBUTE19,
1118 p_ATTRIBUTE20 => x_shipment_rec.ATTRIBUTE20,
1119 p_SHIPMENT_PRIORITY_CODE => x_shipment_rec.SHIPMENT_PRIORITY_CODE,
1120 p_SHIP_QUOTE_PRICE => x_shipment_rec.SHIP_QUOTE_PRICE,
1121 p_SHIP_FROM_ORG_ID => x_shipment_rec.SHIP_FROM_ORG_ID,
1122 p_SHIP_TO_CUST_PARTY_ID => x_shipment_rec.SHIP_TO_CUST_PARTY_ID,
1123 p_SHIP_METHOD_CODE_FROM => x_shipment_rec.SHIP_METHOD_CODE_FROM,
1124 p_FREIGHT_TERMS_CODE_FROM => x_shipment_rec.FREIGHT_TERMS_CODE_FROM,
1125 P_OBJECT_VERSION_NUMBER => x_shipment_rec.OBJECT_VERSION_NUMBER,
1126 p_REQUEST_DATE_TYPE => x_shipment_rec.REQUEST_DATE_TYPE,
1127 p_demand_class_code => x_shipment_rec.demand_class_code
1128 );
1129 x_shipment_rec.SHIPMENT_ID := lx_shipment_id;
1130 x_shipment_rec.LAST_UPDATE_DATE := l_sysdate;
1131
1132 END IF;
1133 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1134 aso_debug_pub.add('After shipments.insert_rows - Insert Rows', 1, 'Y');
1135 END IF;
1136
1137 IF lx_shipment_id IS NOT NULL and lx_shipment_id <> FND_API.G_MISS_NUM THEN
1138 x_freight_charge_tbl := p_freight_charge_tbl;
1139 FOR i IN 1..P_Freight_Charge_Tbl.count LOOP
1140 l_freight_charge_rec := p_freight_charge_tbl(i);
1141 -- BC4J Fix
1142 --x_FREIGHT_CHARGE_tbl(i).freight_charge_id := NULL;
1143 l_sysdate := sysdate;
1144 ASO_FREIGHT_CHARGES_PKG.Insert_Row(
1145 px_FREIGHT_CHARGE_ID => x_FREIGHT_CHARGE_tbl(i).freight_charge_id,
1146 p_CREATION_DATE => SYSDATE,
1147 p_CREATED_BY => G_USER_ID,
1148 p_LAST_UPDATE_DATE => l_sysdate,
1149 p_LAST_UPDATED_BY => G_USER_ID,
1150 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1151 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
1152 p_PROGRAM_APPLICATION_ID => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
1153 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
1154 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
1155 p_QUOTE_SHIPMENT_ID => lx_SHIPMENT_ID,
1156 p_FREIGHT_CHARGE_TYPE_ID => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
1157 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
1158 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
1159 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
1160 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
1161 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
1162 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
1163 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
1164 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
1165 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
1166 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
1167 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
1168 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
1169 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
1170 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
1171 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
1172 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
1173 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
1174 x_freight_charge_tbl(i).quote_shipment_id := lx_shipment_id;
1175 x_FREIGHT_CHARGE_tbl(i).LAST_UPDATE_DATE := l_sysdate;
1176 END LOOP;
1177 END IF;
1178
1179 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1180 aso_debug_pub.add('After Freight_charges.insert_rows - Insert Rows', 1, 'Y');
1181 END IF;
1182
1183 x_tax_detail_tbl := p_tax_detail_tbl;
1184 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1185 aso_debug_pub.add('Insert Rows - tax.count: '||to_char(P_tax_detail_Tbl.count), 1, 'N');
1186 END IF;
1187
1188 FOR i IN 1..P_tax_detail_Tbl.count LOOP
1189 l_tax_detail_rec := x_tax_detail_tbl(i);
1190 -- BC4J Fix
1191 --x_tax_detail_tbl(i).TAX_DETAIL_ID := NULL;
1192 l_sysdate := sysdate;
1193 ASO_TAX_DETAILS_PKG.Insert_Row(
1194 px_TAX_DETAIL_ID => x_tax_detail_tbl(i).TAX_DETAIL_ID,
1195 p_CREATION_DATE => SYSDATE,
1196 p_CREATED_BY => G_USER_ID,
1197 p_LAST_UPDATE_DATE => l_sysdate,
1198 p_LAST_UPDATED_BY => G_USER_ID,
1199 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1200 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
1201 p_PROGRAM_APPLICATION_ID => l_tax_detail_rec.PROGRAM_APPLICATION_ID,
1202 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
1203 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
1204 p_QUOTE_HEADER_ID => lx_Qte_HEADER_ID,
1205 p_QUOTE_LINE_ID => NULL,
1206 p_QUOTE_SHIPMENT_ID => lx_SHIPMENT_ID,
1207 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
1208 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
1209 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
1210 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
1211 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
1212 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
1213 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
1214 p_TAX_EXEMPT_REASON_CODE => l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
1215 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
1216 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
1217 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
1218 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
1219 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
1220 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
1221 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
1222 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
1223 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
1224 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
1225 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
1226 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
1227 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
1228 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
1229 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
1230 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
1231 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
1232 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
1233 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
1234 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
1235 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
1236 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
1237 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
1238 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
1239 );
1240 x_tax_detail_tbl(i).LAST_UPDATE_DATE := l_sysdate;
1241 END LOOP;
1242 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1243 aso_debug_pub.add('After tax_details.insert_rows - Insert Rows', 1, 'Y');
1244 END IF;
1245
1246 FOR i in 1..p_Sales_Credit_Tbl.count LOOP
1247
1248 l_Sales_Credit_rec := p_sales_credit_tbl(i);
1249 l_sales_credit_rec.quote_header_id := x_qte_header_rec.quote_header_id;
1250 x_sales_credit_tbl(i) := l_sales_credit_rec;
1251 -- BC4J Fix
1252 --x_sales_credit_tbl(i).sales_credit_id := NULL;
1253 ASO_SALES_CREDITS_PKG.Insert_Row(
1254 p_CREATION_DATE => SYSDATE,
1255 p_CREATED_BY => G_USER_ID,
1256 p_LAST_UPDATED_BY => G_USER_ID,
1257 p_LAST_UPDATE_DATE => SYSDATE,
1258 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1259 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
1260 p_PROGRAM_APPLICATION_ID => l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
1261 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
1262 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
1263 px_SALES_CREDIT_ID => x_SALES_CREDIT_tbl(i).SALES_CREDIT_ID,
1264 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
1265 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
1266 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
1267 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
1268 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
1269 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
1270 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
1271 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
1272 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
1273 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
1274 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
1275 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
1276 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
1277 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
1278 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
1279 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
1280 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
1281 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
1282 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
1283 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
1284 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
1285 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
1286 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
1287 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
1288 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
1289 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
1290 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
1291 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
1292 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
1293 p_SYSTEM_ASSIGNED_FLAG => 'N',
1294 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
1295 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
1296
1297 END LOOP;
1298
1299
1300 -- insert into quote party table
1301 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1302 aso_debug_pub.add('Insert Rows - Quote_party.count: ' || p_quote_party_Tbl.count, 1, 'N');
1303 aso_debug_pub.add('Insert Rows - Quote_party header: '|| x_qte_header_rec.quote_header_id, 1, 'N');
1304 END IF;
1305
1306 FOR i IN 1..p_quote_party_Tbl.count LOOP
1307 l_quote_party_rec := p_quote_party_tbl(i);
1308 -- l_quote_party_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
1309 l_quote_party_rec.quote_header_id := x_qte_header_rec.quote_header_id;
1310 x_quote_party_tbl(i) := l_quote_party_rec;
1311 -- BC4J Fix
1312 --x_quote_party_tbl(i).QUOTE_PARTY_ID := NULL;
1313
1314 ASO_QUOTE_PARTIES_PKG.Insert_Row(
1315 px_QUOTE_PARTY_ID => x_quote_party_tbl(i).QUOTE_PARTY_ID,
1316 p_CREATION_DATE => SYSDATE,
1317 p_CREATED_BY => G_USER_ID,
1318 p_LAST_UPDATE_DATE => SYSDATE,
1319 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1320 p_LAST_UPDATED_BY => G_USER_ID,
1321 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
1322 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
1323 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
1324 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
1325 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
1326 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
1327 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
1328 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
1329 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
1330 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
1331 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
1332 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
1333 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
1334 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
1335 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
1336 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
1337 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
1338 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
1339 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
1340 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
1341 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
1342 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
1343 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
1344 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
1345 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
1346 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
1347 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
1348 -- p_SECURITY_GROUP_ID => p_QUOTE_PARTY_rec.SECURITY_GROUP_ID);
1349 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
1350
1351 END LOOP;
1352
1353
1354 FOR i IN 1..P_hd_Attr_Ext_tbl.count LOOP
1355 l_line_attribs_rec := P_hd_Attr_Ext_Tbl(i);
1356 l_line_attribs_rec.quote_header_id := x_qte_header_rec.QUOTE_HEADER_ID;
1357 X_hd_Attr_Ext_Tbl(i) := l_line_attribs_rec;
1358 -- BC4J Fix
1359 --X_hd_Attr_Ext_Tbl(i).LINE_ATTRIBUTE_ID := NULL;
1360
1361 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row(
1362 px_LINE_ATTRIBUTE_ID => x_hd_Attr_Ext_Tbl(i).LINE_ATTRIBUTE_ID,
1363 p_CREATION_DATE => SYSDATE,
1364 p_CREATED_BY => G_USER_ID,
1365 p_LAST_UPDATE_DATE => SYSDATE,
1366 p_LAST_UPDATED_BY => G_USER_ID,
1367 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1368 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
1369 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
1370 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
1371 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
1372 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
1373 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
1374 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
1375 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
1376 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
1377 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
1378 p_NAME => l_LINE_ATTRIBS_rec.NAME,
1379 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
1380 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
1381 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
1382 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
1383 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
1384 END LOOP;
1385
1386
1387
1388 -- check for duplicate promotions, see bug 4521799
1389 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1390 aso_debug_pub.add('Before calling Validate_Promotion price_attr_tbl.count: '|| p_price_attributes_tbl.count, 1, 'Y');
1391 END IF;
1392
1393 ASO_VALIDATE_PVT.Validate_Promotion (
1394 P_Api_Version_Number => 1.0,
1395 P_Init_Msg_List => FND_API.G_FALSE,
1396 P_Commit => FND_API.G_FALSE,
1397 p_price_attr_tbl => p_price_attributes_tbl,
1398 x_price_attr_tbl => lx_price_attr_tbl,
1399 x_return_status => x_return_status,
1400 x_msg_count => x_msg_count,
1401 x_msg_data => x_msg_data);
1402
1403 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1404 aso_debug_pub.add('after calling Validate_Promotion ', 1, 'Y');
1405 aso_debug_pub.add('Validate_Promotion Return Status: '||x_return_status, 1, 'Y');
1406 END IF;
1407
1408 if x_return_status <> fnd_api.g_ret_sts_success then
1409 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1410 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1411 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1412 RAISE FND_API.G_EXC_ERROR;
1413 ELSE
1414 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1415 END IF;
1416 end if;
1417
1418
1419 -- end of check for duplicate promotions
1420
1421
1422
1423 -- added by hagrawal
1424
1425 FOR i in 1..p_price_attributes_tbl.count LOOP
1426
1427 l_price_attributes_rec := p_price_attributes_tbl(i);
1428 l_price_attributes_rec.quote_header_id := x_qte_header_rec.quote_header_id;
1429 x_price_attributes_tbl(i) := l_price_attributes_rec;
1430 -- BC4J Fix
1431 --x_price_attributes_tbl(i).price_attribute_id := NULL;
1432 ASO_PRICE_ATTRIBUTES_PKG.Insert_Row(
1433 px_PRICE_ATTRIBUTE_ID => x_price_attributes_tbl(i).price_attribute_id,
1434 p_CREATION_DATE => SYSDATE,
1435 p_CREATED_BY => G_USER_ID,
1436 p_LAST_UPDATE_DATE => SYSDATE,
1437 p_LAST_UPDATED_BY => G_USER_ID,
1438 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1439 p_REQUEST_ID => l_price_attributes_rec.REQUEST_ID,
1440 p_PROGRAM_APPLICATION_ID => l_price_attributes_rec.PROGRAM_APPLICATION_ID,
1441 p_PROGRAM_ID => l_price_attributes_rec.PROGRAM_ID,
1442 p_PROGRAM_UPDATE_DATE => l_price_attributes_rec.PROGRAM_UPDATE_DATE,
1443 p_QUOTE_HEADER_ID => l_price_attributes_rec.QUOTE_HEADER_ID,
1444 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
1445 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
1446 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
1447 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
1448 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
1449 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
1450 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
1451 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
1452 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
1453 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
1454 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
1455 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
1456 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
1457 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
1458 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
1459 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
1460 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
1461 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
1462 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
1463 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
1464 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
1465 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
1466 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
1467 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
1468 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
1469 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
1470 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
1471 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
1472 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
1473 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
1474 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
1475 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
1476 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
1477 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
1478 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
1479 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
1480 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
1481 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
1482 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
1483 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
1484 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
1485 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
1486 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
1487 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
1488 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
1489 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
1490 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
1491 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
1492 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
1493 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
1494 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
1495 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
1496 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
1497 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
1498 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
1499 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
1500 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
1501 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
1502 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
1503 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
1504 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
1505 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
1506 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
1507 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
1508 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
1509 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
1510 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
1511 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
1512 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
1513 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
1514 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
1515 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
1516 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
1517 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
1518 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
1519 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
1520 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
1521 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
1522 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
1523 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
1524 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
1525 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
1526 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
1527 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
1528 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
1529 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
1530 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
1531 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
1532 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
1533 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
1534 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
1535 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
1536 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
1537 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
1538 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
1539 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
1540 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
1541 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
1542 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
1543 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
1544 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
1545 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
1546 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
1547 p_CONTEXT => l_price_attributes_rec.CONTEXT,
1548 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
1549 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
1550 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
1551 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
1552 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
1553 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
1554 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
1555 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
1556 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
1557 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
1558 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
1559 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
1560 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
1561 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
1562 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
1563 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
1564 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
1565 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
1566 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
1567 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
1568 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
1569 );
1570
1571 END LOOP;
1572
1573 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1574 aso_debug_pub.add('Insert_Rows: l_qte_access_tbl.count: '||l_qte_access_tbl.count, 1, 'Y');
1575 END IF;
1576
1577 for i in 1 .. l_qte_access_tbl.count loop
1578 l_qte_access_tbl(i).quote_number := p_qte_header_rec.quote_number;
1579 l_qte_access_tbl(i).batch_price_flag := fnd_api.g_false;
1580 end loop;
1581
1582 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1583 aso_debug_pub.add('Insert_Rows: Before call to Add_Resource', 1, 'Y');
1584 END IF;
1585
1586 if l_qte_access_tbl.count > 0 then
1587
1588 ASO_SECURITY_INT.Add_Resource(
1589 P_INIT_MSG_LIST => FND_API.G_FALSE,
1590 P_COMMIT => FND_API.G_FALSE,
1591 P_Qte_Access_tbl => l_qte_access_tbl,
1592 p_call_from_oafwk_flag => FND_API.G_TRUE,
1593 X_Qte_Access_tbl => x_qte_access_tbl,
1594 X_RETURN_STATUS => x_return_status,
1595 X_msg_count => X_msg_count,
1596 X_msg_data => X_msg_data );
1597
1598 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1599 aso_debug_pub.add('Insert_Rows: After call to Add_Resource: x_return_status: '||x_return_status, 1, 'Y');
1600 END IF;
1601
1602 end if;
1603
1604 END Insert_Rows;
1605
1606
1607 PROCEDURE Update_Rows (
1608 P_qte_Header_Rec IN ASO_QUOTE_PUB.qte_header_rec_Type,
1609 p_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
1610 P_Price_Adjustment_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
1611 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
1612 P_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type,
1613 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type,
1614 P_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
1615 P_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
1616 P_hd_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
1617 P_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
1618 P_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
1619 P_Qte_Access_Tbl IN ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
1620 X_qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.qte_header_rec_Type,
1621 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
1622 X_Price_Adjustment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
1623 x_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
1624 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
1625 X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
1626 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
1627 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
1628 X_hd_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
1629 X_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
1630 X_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
1631 X_Qte_Access_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
1632 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1633 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1634 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1635 )
1636 IS
1637 l_price_adj_rec ASO_QUOTE_PUB.Price_Adj_Rec_Type;
1638 l_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
1639 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
1640 l_freight_charge_rec ASO_QUOTE_PUB.Freight_Charge_Rec_Type;
1641 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
1642 l_price_adj_attr_rec ASO_QUOTE_PUB.Price_Adj_Attr_Rec_Type;
1643 l_price_adj_attr_tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
1644 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
1645 l_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type ;
1646 l_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
1647 l_Sales_Credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type ;
1648 l_Quote_Party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
1649 l_price_attributes_rec ASO_QUOTE_PUB.Price_Attributes_Rec_Type;
1650 l_line_attribs_rec ASO_QUOTE_PUB.Line_Attribs_Ext_rec_Type;
1651 l_qte_access_tbl ASO_QUOTE_PUB.Qte_Access_Tbl_Type;
1652 lx_qte_access_tbl ASO_QUOTE_PUB.Qte_Access_Tbl_Type;
1653
1654 l_sysdate DATE ;
1655 l_qte_header_id NUMBER := p_qte_header_rec.quote_header_id;
1656 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
1657 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
1658 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
1659 l_qte_hdr_rec ASO_QUOTE_PUB.qte_header_rec_Type;
1660 lx_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
1661
1662
1663 -- The following cursor is needed for Payment From column Maintenance.
1664 CURSOR c_db_payment_terms(p_payment_id NUMBER) IS
1665 SELECT payment_term_id_from,payment_term_id
1666 FROM ASO_PAYMENTS
1667 WHERE payment_id = p_payment_id;
1668
1669 -- The following cursors is needed for ship_method_code and Freight Terms Code From column Maintenance.
1670 CURSOR c_db_ship_freight_terms(p_shipment_id NUMBER) IS
1671 SELECT ship_method_code_from,ship_method_code,
1672 Freight_terms_code_from,Freight_terms_code
1673 FROM ASO_SHIPMENTS
1674 WHERE shipment_id = p_shipment_id;
1675
1676 cursor c_quote_number is
1677 select quote_number from aso_quote_headers_all
1678 where quote_header_id = p_qte_header_rec.quote_header_id;
1679
1680 cursor get_payment_type_code( l_payment_id Number) is
1681 select payment_type_code
1682 from aso_payments
1683 where payment_id = l_payment_id;
1684
1685 cursor get_bill_to_party( l_qte_hdr_id Number) is
1686 select invoice_to_cust_party_id
1687 from aso_quote_headers_all
1688 where quote_header_id = l_qte_hdr_id;
1689
1690 -- Refer bug 10217258
1691 ct NUMBER;
1692 p_price_req_code VARCHAR2(100);
1693
1694 BEGIN
1695 x_return_status := fnd_api.g_ret_sts_success;
1696 x_qte_header_rec := p_qte_header_rec;
1697 l_sysdate := sysdate;
1698 x_qte_header_rec.last_update_date := l_sysdate;
1699 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1700 aso_debug_pub.add('Begin Update Rows', 1, 'Y');
1701 END IF;
1702
1703 -- Validate the invoice to cust party id and payment info, if any
1704 IF p_payment_tbl.count = 0 then
1705 l_payment_tbl := aso_utility_pvt.Query_Payment_Rows( p_qte_header_rec.QUOTE_HEADER_ID,null);
1706 Else
1707 l_payment_tbl := p_payment_tbl;
1708 -- check to see if the value has been changed, if not get orig value from db
1709 if l_payment_tbl(1).payment_type_code = fnd_api.g_miss_char then
1710 open get_payment_type_code(l_payment_tbl(1).payment_id);
1711 fetch get_payment_type_code into l_payment_tbl(1).payment_type_code;
1712 close get_payment_type_code;
1713 end if;
1714 End if;
1715 -- bill to customer may not have been changed, if so get orig value from db
1716 l_qte_hdr_rec := p_qte_header_rec;
1717 if l_qte_hdr_rec.invoice_to_cust_party_id = fnd_api.g_miss_num then
1718 open get_bill_to_party(l_qte_hdr_rec.quote_header_id);
1719 fetch get_bill_to_party into l_qte_hdr_rec.invoice_to_cust_party_id;
1720 close get_bill_to_party;
1721 end if;
1722
1723 IF l_payment_tbl.count > 0 then
1724 l_payment_rec := l_payment_tbl(1);
1725 IF l_payment_rec.payment_type_code = 'CREDIT_CARD' THEN
1726 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1727 aso_debug_pub.add('Before calling Validate_cc_info ', 1, 'Y');
1728 END IF;
1729 aso_validate_pvt.Validate_cc_info
1730 (
1731 p_init_msg_list => fnd_api.g_false,
1732 p_payment_rec => l_payment_rec,
1733 p_qte_header_rec => l_qte_hdr_rec,
1734 P_Qte_Line_rec => ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC,
1735 x_return_status => x_return_status,
1736 x_msg_count => x_msg_count,
1737 x_msg_data => x_msg_data);
1738
1739 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1740 aso_debug_pub.add('after calling Validate_cc_info ', 1, 'Y');
1741 aso_debug_pub.add('Validate_cc_info Return Status: '||x_return_status, 1, 'Y');
1742 END IF;
1743
1744 if x_return_status <> fnd_api.g_ret_sts_success then
1745 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1746 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1747 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1748 RAISE FND_API.G_EXC_ERROR;
1749 ELSE
1750 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1751 END IF;
1752 end if;
1753 END IF;
1754
1755 End if;
1756
1757
1758 ASO_QUOTE_HEADERS_PKG.Update_Row(
1759 p_QUOTE_HEADER_ID => p_qte_header_rec.QUOTE_HEADER_ID,
1760 p_CREATION_DATE => p_qte_header_rec.creation_date,
1761 p_CREATED_BY => G_USER_ID,
1762 p_LAST_UPDATE_DATE => l_sysdate,
1763 p_LAST_UPDATED_BY => G_USER_ID,
1764 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1765 p_REQUEST_ID => p_qte_header_rec.REQUEST_ID,
1766 p_PROGRAM_APPLICATION_ID => p_qte_header_rec.PROGRAM_APPLICATION_ID,
1767 p_PROGRAM_ID => p_qte_header_rec.PROGRAM_ID,
1768 p_PROGRAM_UPDATE_DATE => p_qte_header_rec.PROGRAM_UPDATE_DATE,
1769 p_ORG_ID => p_qte_header_rec.ORG_ID,
1770 p_QUOTE_NAME => p_qte_header_rec.QUOTE_NAME,
1771 p_QUOTE_NUMBER => p_qte_header_rec.QUOTE_NUMBER,
1772 p_QUOTE_VERSION => p_qte_header_rec.QUOTE_VERSION,
1773 p_QUOTE_STATUS_ID => p_qte_header_rec.QUOTE_STATUS_ID,
1774 p_QUOTE_SOURCE_CODE => p_qte_header_rec.QUOTE_SOURCE_CODE,
1775 p_QUOTE_EXPIRATION_DATE => trunc(p_qte_header_rec.QUOTE_EXPIRATION_DATE),
1776 p_PRICE_FROZEN_DATE => p_qte_header_rec.PRICE_FROZEN_DATE,
1777 p_QUOTE_PASSWORD => p_qte_header_rec.QUOTE_PASSWORD,
1778 p_ORIGINAL_SYSTEM_REFERENCE => p_qte_header_rec.ORIGINAL_SYSTEM_REFERENCE,
1779 p_PARTY_ID => p_qte_header_rec.PARTY_ID,
1780 p_CUST_ACCOUNT_ID => p_qte_header_rec.CUST_ACCOUNT_ID,
1781 p_ORG_CONTACT_ID => p_qte_header_rec.ORG_CONTACT_ID,
1782 p_PHONE_ID => p_QTE_header_rec.PHONE_ID,
1783 p_INVOICE_TO_PARTY_SITE_ID => p_qte_header_rec.INVOICE_TO_PARTY_SITE_ID,
1784 p_INVOICE_TO_PARTY_ID => p_qte_header_rec.INVOICE_TO_PARTY_ID,
1785 p_Invoice_to_CUST_ACCOUNT_ID => p_qte_header_rec.Invoice_to_CUST_ACCOUNT_ID,
1786 p_ORIG_MKTG_SOURCE_CODE_ID => p_qte_header_rec.ORIG_MKTG_SOURCE_CODE_ID,
1787 p_MARKETING_SOURCE_CODE_ID => p_qte_header_rec.MARKETING_SOURCE_CODE_ID,
1788 p_ORDER_TYPE_ID => p_qte_header_rec.ORDER_TYPE_ID,
1789 p_QUOTE_CATEGORY_CODE => p_qte_header_rec.QUOTE_CATEGORY_CODE,
1790 p_ORDERED_DATE => p_qte_header_rec.ORDERED_DATE,
1791 p_ACCOUNTING_RULE_ID => p_qte_header_rec.ACCOUNTING_RULE_ID,
1792 p_INVOICING_RULE_ID => p_qte_header_rec.INVOICING_RULE_ID,
1793 p_EMPLOYEE_PERSON_ID => p_qte_header_rec.EMPLOYEE_PERSON_ID,
1794 p_PRICE_LIST_ID => p_qte_header_rec.PRICE_LIST_ID,
1795 p_CURRENCY_CODE => p_qte_header_rec.CURRENCY_CODE,
1796 p_TOTAL_LIST_PRICE => p_qte_header_rec.TOTAL_LIST_PRICE,
1797 p_TOTAL_ADJUSTED_AMOUNT => p_qte_header_rec.TOTAL_ADJUSTED_AMOUNT,
1798 p_TOTAL_ADJUSTED_PERCENT => p_qte_header_rec.TOTAL_ADJUSTED_PERCENT,
1799 p_TOTAL_TAX => p_qte_header_rec.TOTAL_TAX,
1800 p_TOTAL_SHIPPING_CHARGE => p_qte_header_rec.TOTAL_SHIPPING_CHARGE,
1801 p_SURCHARGE => p_qte_header_rec.SURCHARGE,
1802 p_TOTAL_QUOTE_PRICE => p_qte_header_rec.TOTAL_QUOTE_PRICE,
1803 p_PAYMENT_AMOUNT => p_qte_header_rec.PAYMENT_AMOUNT,
1804 p_EXCHANGE_RATE => p_qte_header_rec.EXCHANGE_RATE,
1805 p_EXCHANGE_TYPE_CODE => p_qte_header_rec.EXCHANGE_TYPE_CODE,
1806 p_EXCHANGE_RATE_DATE => p_qte_header_rec.EXCHANGE_RATE_DATE,
1807 p_CONTRACT_ID => p_qte_header_rec.CONTRACT_ID,
1808 p_SALES_CHANNEL_CODE => p_qte_header_rec.SALES_CHANNEL_CODE,
1809 p_ORDER_ID => p_QTE_header_rec.ORDER_ID,
1810 p_RESOURCE_ID => p_qte_header_rec.RESOURCE_ID,
1811 p_ATTRIBUTE_CATEGORY => p_qte_header_rec.ATTRIBUTE_CATEGORY,
1812 p_ATTRIBUTE1 => p_qte_header_rec.ATTRIBUTE1,
1813 p_ATTRIBUTE2 => p_qte_header_rec.ATTRIBUTE2,
1814 p_ATTRIBUTE3 => p_qte_header_rec.ATTRIBUTE3,
1815 p_ATTRIBUTE4 => p_qte_header_rec.ATTRIBUTE4,
1816 p_ATTRIBUTE5 => p_qte_header_rec.ATTRIBUTE5,
1817 p_ATTRIBUTE6 => p_qte_header_rec.ATTRIBUTE6,
1818 p_ATTRIBUTE7 => p_qte_header_rec.ATTRIBUTE7,
1819 p_ATTRIBUTE8 => p_qte_header_rec.ATTRIBUTE8,
1820 p_ATTRIBUTE9 => p_qte_header_rec.ATTRIBUTE9,
1821 p_ATTRIBUTE10 => p_qte_header_rec.ATTRIBUTE10,
1822 p_ATTRIBUTE11 => p_qte_header_rec.ATTRIBUTE11,
1823 p_ATTRIBUTE12 => p_qte_header_rec.ATTRIBUTE12,
1824 p_ATTRIBUTE13 => p_qte_header_rec.ATTRIBUTE13,
1825 p_ATTRIBUTE14 => p_qte_header_rec.ATTRIBUTE14,
1826 p_ATTRIBUTE15 => p_qte_header_rec.ATTRIBUTE15,
1827 p_ATTRIBUTE16 => p_qte_header_rec.ATTRIBUTE16,
1828 p_ATTRIBUTE17 => p_qte_header_rec.ATTRIBUTE17,
1829 p_ATTRIBUTE18 => p_qte_header_rec.ATTRIBUTE18,
1830 p_ATTRIBUTE19 => p_qte_header_rec.ATTRIBUTE19,
1831 p_ATTRIBUTE20 => p_qte_header_rec.ATTRIBUTE20,
1832 -- hyang new okc
1833 p_CONTRACT_TEMPLATE_ID => FND_API.G_MISS_NUM,
1834 p_CONTRACT_TEMPLATE_MAJOR_VER => FND_API.G_MISS_NUM,
1835 p_CONTRACT_REQUESTER_ID => FND_API.G_MISS_NUM,
1836 p_CONTRACT_APPROVAL_LEVEL => FND_API.G_MISS_CHAR,
1837 -- end of hyang new okc
1838 p_PUBLISH_FLAG => p_qte_header_rec.PUBLISH_FLAG,
1839 p_RESOURCE_GRP_ID => p_qte_header_rec.RESOURCE_GRP_ID,
1840 p_SOLD_TO_PARTY_SITE_ID => p_qte_header_rec.SOLD_TO_PARTY_SITE_ID,
1841 p_DISPLAY_ARITHMETIC_OPERATOR => p_qte_header_rec.DISPLAY_ARITHMETIC_OPERATOR,
1842 p_MAX_VERSION_FLAG => p_qte_header_rec.MAX_VERSION_FLAG,
1843 p_QUOTE_TYPE => p_qte_header_rec.QUOTE_TYPE,
1844 p_QUOTE_DESCRIPTION => p_qte_header_rec.QUOTE_DESCRIPTION,
1845 p_MINISITE_ID => p_qte_header_rec.MINISITE_ID,
1846 p_CUST_PARTY_ID => p_qte_header_rec.CUST_PARTY_ID,
1847 p_INVOICE_TO_CUST_PARTY_ID => p_qte_header_rec.INVOICE_TO_CUST_PARTY_ID,
1848 p_Pricing_Status_indicator => p_qte_header_rec.Pricing_Status_indicator,
1849 p_Tax_status_Indicator => p_qte_header_rec.Tax_status_Indicator,
1850 p_Price_updated_date => p_qte_header_rec.Price_updated_date,
1851 p_Tax_updated_date => p_qte_header_rec.Tax_updated_date,
1852 p_Recalculate_flag => p_qte_header_rec.Recalculate_flag,
1853 p_price_request_id => p_qte_header_rec.price_request_id,
1854 p_credit_update_date => p_qte_header_rec.credit_update_date,
1855 -- hyang new okc
1856 P_Customer_Name_And_Title => p_qte_header_rec.Customer_Name_And_Title,
1857 P_Customer_Signature_Date => p_qte_header_rec.Customer_Signature_Date,
1858 P_Supplier_Name_And_Title => p_qte_header_rec.Supplier_Name_And_Title,
1859 P_Supplier_Signature_Date => p_qte_header_rec.Supplier_Signature_Date,
1860 -- end of hyang new okc
1861 p_END_CUSTOMER_PARTY_ID => p_qte_header_rec.END_CUSTOMER_PARTY_ID,
1862 p_END_CUSTOMER_CUST_PARTY_ID => p_qte_header_rec.END_CUSTOMER_CUST_PARTY_ID,
1863 p_END_CUSTOMER_PARTY_SITE_ID => p_qte_header_rec.END_CUSTOMER_PARTY_SITE_ID,
1864 p_END_CUSTOMER_CUST_ACCOUNT_ID => p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
1865 p_OBJECT_VERSION_NUMBER => p_qte_header_rec.OBJECT_VERSION_NUMBER,
1866 p_assistance_requested => p_qte_header_rec.assistance_requested,
1867 p_assistance_reason_code => p_qte_header_rec.assistance_reason_code,
1868 p_automatic_price_flag => p_qte_header_rec.automatic_price_flag,
1869 p_automatic_tax_flag => p_qte_header_rec.automatic_tax_flag,
1870 p_header_paynow_charges => p_qte_header_rec.header_paynow_charges
1871 -- ER 12879412
1872 /* P_PRODUCT_FISC_CLASSIFICATION => p_qte_header_rec.PRODUCT_FISC_CLASSIFICATION,
1873 P_TRX_BUSINESS_CATEGORY => p_qte_header_rec.TRX_BUSINESS_CATEGORY*/
1874
1875 );
1876
1877
1878 --Refer bug 10217258
1879
1880
1881
1882 -- Start bug fix 10217258 For limits reversal
1883 IF NVL(FND_PROFILE.VALUE('QP_LIMITS_INSTALLED'),'N') = 'Y' THEN
1884 select count(*) into ct
1885 from aso_quote_statuses_vl
1886 where status_code = 'INACTIVE'
1887 and quote_status_id = p_qte_header_rec.QUOTE_STATUS_ID;
1888
1889 if ct >0 then
1890 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1891 aso_debug_pub.add('Begin Update Rows limit count '||ct, 1, 'Y');
1892 END IF;
1893
1894 p_price_req_code:='ASO-'||p_qte_header_rec.QUOTE_HEADER_ID||'%';
1895 for c_limit in
1896 (SELECT price_request_code, amount
1897 FROM qp_limit_transactions
1898 WHERE price_request_code like p_price_req_code
1899 and price_request_type_code='ASO')
1900 loop
1901 if c_limit.amount>0 then
1902 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1903 aso_debug_pub.add('Begin Update Rows limit price_request_code '||c_limit.price_request_code, 1, 'Y');
1904 END IF;
1905 QP_UTIL_PUB.Reverse_Limits (p_action_code => 'CANCEL',
1906 p_cons_price_request_code => c_limit.price_request_code,
1907 p_orig_ordered_qty => c_limit.amount,
1908 p_amended_qty => NULL,
1909 p_ret_price_request_code => NULL,
1910 p_returned_qty => NULL,
1911 x_return_status => x_return_status,
1912 x_return_message => x_msg_data
1913 );
1914
1915
1916 end if;
1917 end loop;
1918
1919 end if;
1920 end if;
1921 -- end bug fix 10217258
1922
1923 x_price_adjustment_tbl := p_price_adjustment_tbl;
1924 l_price_adj_attr_tbl := p_price_adj_attr_tbl;
1925 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1926 aso_debug_pub.add('Update Rows - price_adj.count: '||x_price_adjustment_tbl.counT, 1, 'N');
1927 END IF;
1928
1929 FOR i IN 1..P_Price_Adjustment_Tbl.count LOOP
1930 IF P_Price_Adjustment_Tbl(i).operation_code = 'CREATE' THEN
1931 l_price_adj_rec := p_price_adjustment_tbl(i);
1932 l_sysdate := sysdate;
1933 x_price_adjustment_tbl(i).last_update_date := l_sysdate;
1934 -- BC4J Fix
1935 --x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID := NULL;
1936 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1937 aso_debug_pub.add('Before price_adj.update_rows - Update Rows', 1, 'Y');
1938 END IF;
1939
1940 ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row(
1941 px_PRICE_ADJUSTMENT_ID => x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID,
1942 p_CREATION_DATE => SYSDATE,
1943 p_CREATED_BY => G_USER_ID,
1944 p_LAST_UPDATE_DATE => l_sysdate,
1945 p_LAST_UPDATED_BY => G_USER_ID,
1946 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1947 p_PROGRAM_APPLICATION_ID => l_price_adj_rec.PROGRAM_APPLICATION_ID,
1948 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
1949 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
1950 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
1951 p_QUOTE_HEADER_ID => l_qte_header_id,
1952 p_QUOTE_LINE_ID => NULL,
1953 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
1954 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
1955 p_MODIFIER_LINE_TYPE_CODE => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
1956 p_MODIFIER_MECHANISM_TYPE_CODE => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
1957 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
1958 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
1959 p_OPERAND => l_price_adj_rec.OPERAND,
1960 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
1961 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
1962 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
1963 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
1964 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
1965 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
1966 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
1967 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
1968 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
1969 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
1970 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
1971 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
1972 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
1973 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
1974 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
1975 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
1976 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
1977 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
1978 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
1979 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
1980 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
1981 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
1982 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
1983 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
1984 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
1985 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
1986 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
1987 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
1988 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
1989 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
1990 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
1991 -- p_LIST_LINE_ID => l_price_adj_rec. ,
1992 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
1993 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
1994 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
1995 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
1996 p_COST_ID => l_price_adj_rec.COST_ID ,
1997 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
1998 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
1999 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
2000 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
2001 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
2002 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
2003 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
2004 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
2005 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
2006 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
2007 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
2008 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
2009 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
2010 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
2011 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
2012 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
2013 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
2014 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
2015 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
2016 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
2017 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
2018 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
2019 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
2020 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
2021 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
2022 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
2023 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
2024 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
2025 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
2026 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
2027 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
2028 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
2029 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
2030 p_quote_shipment_id => l_price_adj_rec.quote_shipment_id,
2031 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
2032 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
2033 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
2034 );
2035 FOR j in 1..l_price_adj_attr_tbl.count LOOP
2036 IF l_price_adj_attr_tbl(j).price_adj_index = i THEN
2037 l_price_adj_attr_tbl(j).price_adjustment_id := x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID;
2038 END IF;
2039 END LOOP;
2040 ELSIF P_Price_Adjustment_Tbl(i).operation_code = 'UPDATE' THEN
2041
2042 l_price_adj_rec := p_price_adjustment_tbl(i);
2043 l_sysdate := sysdate;
2044 x_price_adjustment_tbl(i).last_update_date := l_sysdate;
2045 ASO_PRICE_ADJUSTMENTS_PKG.Update_Row(
2046 p_PRICE_ADJUSTMENT_ID => l_price_adj_rec.PRICE_ADJUSTMENT_ID,
2047 p_CREATION_DATE => l_price_adj_rec.creation_date,
2048 p_CREATED_BY => G_USER_ID,
2049 p_LAST_UPDATE_DATE => l_sysdate,
2050 p_LAST_UPDATED_BY => G_USER_ID,
2051 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2052 p_PROGRAM_APPLICATION_ID => l_price_adj_rec.PROGRAM_APPLICATION_ID,
2053 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
2054 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
2055 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
2056 p_QUOTE_HEADER_ID => l_qte_header_id,
2057 p_QUOTE_LINE_ID => NULL,
2058 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
2059 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
2060 p_MODIFIER_LINE_TYPE_CODE => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
2061 p_MODIFIER_MECHANISM_TYPE_CODE => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
2062 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
2063 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
2064 p_OPERAND => l_price_adj_rec.OPERAND,
2065 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
2066 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
2067 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
2068 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
2069 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
2070 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
2071 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
2072 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
2073 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
2074 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
2075 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
2076 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
2077 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
2078 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
2079 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
2080 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
2081 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
2082 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
2083 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
2084 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
2085 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
2086 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
2087 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
2088 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
2089 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
2090 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
2091 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
2092 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
2093 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
2094 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
2095 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
2096 -- p_LIST_LINE_ID => l_price_adj_rec. ,
2097 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
2098 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
2099 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
2100 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
2101 p_COST_ID => l_price_adj_rec.COST_ID ,
2102 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
2103 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
2104 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
2105 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
2106 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
2107 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
2108 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
2109 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
2110 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
2111 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
2112 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
2113 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
2114 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
2115 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
2116 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
2117 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
2118 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
2119 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
2120 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
2121 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
2122 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
2123 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
2124 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
2125 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
2126 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
2127 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
2128 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
2129 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
2130 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
2131 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
2132 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
2133 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
2134 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
2135 p_quote_shipment_id => l_price_adj_rec.quote_shipment_id,
2136 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
2137 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
2138 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
2139 );
2140 ELSIF P_Price_Adjustment_Tbl(i).operation_code = 'DELETE' THEN
2141 ASO_PRICE_ADJUSTMENTS_PKG.Delete_Row(
2142 p_PRICE_ADJUSTMENT_ID => p_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID);
2143 END IF;
2144 END LOOP;
2145
2146 FOR i IN 1..l_Price_Adj_Attr_Tbl.count LOOP
2147
2148 l_sysdate := sysdate;
2149
2150 IF l_price_adj_attr_tbl(i).operation_code = 'CREATE' and
2151 l_price_adj_attr_tbl(i).price_adjustment_id is not null and
2152 l_price_adj_attr_tbl(i).price_adjustment_id <> fnd_api.g_miss_num THEN
2153
2154
2155 x_price_adj_attr_tbl(i) := l_price_adj_attr_tbl(i);
2156
2157 --l_price_adj_attr_rec := l_price_adj_attr_tbl(i);
2158 -- BC4J Fix
2159 --x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID := NULL;
2160 x_price_adj_attr_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2161
2162 ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row(
2163 px_PRICE_ADJ_ATTRIB_ID => x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
2164 p_CREATION_DATE => SYSDATE,
2165 p_CREATED_BY => G_USER_ID,
2166 p_LAST_UPDATE_DATE => l_sysdate,
2167 p_LAST_UPDATED_BY => G_USER_ID,
2168 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2169 p_PROGRAM_APPLICATION_ID =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
2170 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
2171 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
2172 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
2173 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
2174 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
2175 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
2176 p_PRICING_ATTR_VALUE_FROM => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
2177 p_PRICING_ATTR_VALUE_TO => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
2178 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
2179 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE,
2180 p_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER
2181 );
2182
2183 ELSIF l_Price_Adj_Attr_Tbl(i).operation_code = 'UPDATE' THEN
2184
2185 x_price_adj_attr_tbl(i) := l_price_adj_attr_tbl(i);
2186 --l_price_adj_attr_rec := l_price_adj_attr_tbl(i);
2187 x_price_adj_attr_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2188
2189 ASO_PRICE_ADJ_ATTRIBS_PKG.Update_Row(
2190 p_PRICE_ADJ_ATTRIB_ID => x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
2191 p_CREATION_DATE => l_price_adj_attr_tbl(i).creation_date,
2192 p_CREATED_BY => G_USER_ID,
2193 p_LAST_UPDATE_DATE => l_sysdate,
2194 p_LAST_UPDATED_BY => G_USER_ID,
2195 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2196 p_PROGRAM_APPLICATION_ID =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
2197 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
2198 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
2199 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
2200 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
2201 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
2202 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
2203 p_PRICING_ATTR_VALUE_FROM => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
2204 p_PRICING_ATTR_VALUE_TO => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
2205 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
2206 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE,
2207 p_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER);
2208 ELSIF l_Price_Adj_Attr_Tbl(i).operation_code = 'DELETE' THEN
2209 ASO_PRICE_ADJ_ATTRIBS_PKG.Delete_Row(
2210 p_PRICE_ADJ_ATTRIB_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID);
2211 END IF;
2212 END LOOP;
2213
2214 x_payment_tbl := p_payment_tbl;
2215
2216 FOR i IN 1..P_Payment_Tbl.count LOOP
2217 IF P_Payment_Tbl(i).operation_code = 'CREATE' THEN
2218
2219 l_sysdate := sysdate;
2220 l_payment_rec := p_payment_tbl(i);
2221 l_payment_rec.PAYMENT_TERM_ID_FROM := p_payment_tbl(i).payment_term_id;
2222
2223 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2224 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Insert Rows p_payment_tbl(i).payment_term_id'||p_payment_tbl(i).payment_term_id, 1, 'Y');
2225 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Insert Rows l_payment_rec.PAYMENT_TERM_ID_FROM'||l_payment_rec.PAYMENT_TERM_ID_FROM, 1, 'Y');
2226 END IF;
2227 -- BC4J Fix
2228 --x_payment_tbl(i).PAYMENT_ID := NULL;
2229 x_payment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2230 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
2231
2232
2233 -- Payments Changes
2234
2235 l_payment_rec.quote_header_id := l_qte_header_id;
2236
2237 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2238 aso_debug_pub.add('Update_Rows: Before call to create_payment_row ', 1, 'Y');
2239 END IF;
2240
2241 aso_payment_int.create_payment_row(p_payment_rec => l_payment_rec ,
2242 x_payment_rec => x_payment_tbl(i),
2243 x_return_status => x_return_status,
2244 x_msg_count => x_msg_count,
2245 x_msg_data => x_msg_data);
2246
2247 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2248 aso_debug_pub.add('Update_Rows: After call to create_payment_row: x_return_status: '||x_return_status, 1, 'Y');
2249 END IF;
2250
2251 if x_return_status <> fnd_api.g_ret_sts_success then
2252 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2253 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2254 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2255 RAISE FND_API.G_EXC_ERROR;
2256 ELSE
2257 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2258 END IF;
2259 end if;
2260
2261 x_payment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2262 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
2263
2264 -- End Payment Changes
2265
2266 ELSIF P_Payment_Tbl(i).operation_code = 'UPDATE' THEN
2267
2268 l_payment_rec := p_payment_tbl(i);
2269 l_sysdate := sysdate;
2270
2271 IF l_payment_rec.payment_term_id = FND_API.G_MISS_NUM THEN
2272
2273 FOR l_payment_db_rec IN c_db_payment_terms(p_payment_tbl(i).PAYMENT_ID) LOOP
2274
2275 IF l_payment_db_rec.payment_term_id_from IS NULL THEN
2276 l_payment_rec.payment_term_id_from := l_payment_db_rec.payment_term_id;
2277 END IF;
2278
2279 END LOOP;
2280
2281 ELSE
2282 l_payment_rec.payment_term_id_from := l_payment_rec.payment_term_id;
2283
2284 END IF;
2285
2286 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2287 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Update Rows l_payment_rec.payment_term_id'||l_payment_rec.payment_term_id, 1, 'Y');
2288 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Update Rows l_payment_rec.PAYMENT_TERM_ID_FROM'||l_payment_rec.PAYMENT_TERM_ID_FROM, 1, 'Y');
2289 END IF;
2290
2291 x_payment_tbl(i).last_update_date := l_sysdate;
2292 x_payment_tbl(i).payment_term_id_from := l_payment_rec.payment_term_id_from;
2293
2294 -- Payments Changes
2295
2296 l_payment_rec.quote_header_id := l_qte_header_id;
2297
2298 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2299 aso_debug_pub.add('Update_Rows: Before call to update_payment_row ', 1, 'Y');
2300 END IF;
2301
2302 aso_payment_int.update_payment_row(p_payment_rec => l_payment_rec ,
2303 x_payment_rec => x_payment_tbl(i),
2304 x_return_status => x_return_status,
2305 x_msg_count => x_msg_count,
2306 x_msg_data => x_msg_data);
2307
2308 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2309 aso_debug_pub.add('Update_Rows: After call to update_payment_row: x_return_status: '||x_return_status, 1, 'Y');
2310 END IF;
2311
2312 if x_return_status <> fnd_api.g_ret_sts_success then
2313 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2314 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2315 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2316 RAISE FND_API.G_EXC_ERROR;
2317 ELSE
2318 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2319 END IF;
2320 end if;
2321
2322 x_payment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2323 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
2324
2325 -- End Payment Changes
2326
2327 ELSIF P_Payment_Tbl(i).operation_code = 'DELETE' THEN
2328
2329 -- Payments Changes
2330 l_payment_rec := P_Payment_Tbl(i);
2331 l_payment_rec.quote_header_id := l_qte_header_id;
2332
2333 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2334 aso_debug_pub.add('Update_Rows: Before call to delete_payment_row ', 1, 'Y');
2335 END IF;
2336
2337 aso_payment_int.delete_payment_row(p_payment_rec => l_payment_rec ,
2338 x_return_status => x_return_status,
2339 x_msg_count => x_msg_count,
2340 x_msg_data => x_msg_data);
2341
2342 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2343 aso_debug_pub.add('Update_Rows: After call to delete_payment_row: x_return_status: '||x_return_status, 1, 'Y');
2344 END IF;
2345 if x_return_status <> fnd_api.g_ret_sts_success then
2346 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2347 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2348 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2349 RAISE FND_API.G_EXC_ERROR;
2350 ELSE
2351 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2352 END IF;
2353 end if;
2354
2355 -- End Payment Changes
2356
2357 END IF;
2358 END LOOP;
2359
2360
2361 x_shipment_tbl := p_shipment_tbl;
2362 l_freight_charge_tbl := p_freight_charge_tbl;
2363
2364 FOR i IN 1..P_Shipment_Tbl.count LOOP
2365
2366 IF P_Shipment_Tbl(i).operation_code = 'CREATE' THEN
2367
2368 l_shipment_rec := x_shipment_tbl(i);
2369 l_shipment_rec.ship_method_code_from := p_shipment_tbl(1).ship_method_code;
2370 l_shipment_rec.freight_terms_code_from := p_shipment_tbl(1).freight_terms_code;
2371
2372 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2373 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.insert_rows - p_shipment_tbl(1).ship_method_code'||p_shipment_tbl(1).ship_method_code, 1, 'Y');
2374 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.insert_rows - p_shipment_tbl(1).freight_terms_code'||p_shipment_tbl(1).freight_terms_code, 1, 'Y');
2375 END IF;
2376
2377 l_sysdate := sysdate;
2378 -- BC4J Fix
2379 x_shipment_tbl(i).shipment_id := p_shipment_tbl(1).shipment_id;
2380 --x_shipment_tbl(i).shipment_id := null;
2381 x_shipment_tbl(i).last_update_date := l_sysdate;
2382 x_shipment_tbl(i).ship_method_code_from := l_shipment_rec.ship_method_code_from;
2383 x_shipment_tbl(i).freight_terms_code_from := l_shipment_rec.freight_terms_code_from;
2384
2385 ASO_SHIPMENTS_PKG.Insert_Row(
2386 px_SHIPMENT_ID => x_shipment_tbl(i).SHIPMENT_ID,
2387 p_CREATION_DATE => SYSDATE,
2388 p_CREATED_BY => G_USER_ID,
2389 p_LAST_UPDATE_DATE => l_sysdate,
2390 p_LAST_UPDATED_BY => G_USER_ID,
2391 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2392 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
2393 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
2394 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
2395 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
2396 p_QUOTE_HEADER_ID => l_qte_HEADER_ID,
2397 p_QUOTE_LINE_ID => NULL,
2398 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
2399 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
2400 p_SCHEDULE_SHIP_DATE => l_shipment_rec.SCHEDULE_SHIP_DATE,
2401 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
2402 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
2403 p_ship_to_CUST_ACCOUNT_ID => l_shipment_rec.ship_to_CUST_ACCOUNT_ID,
2404 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
2405 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
2406 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
2407 p_FREIGHT_TERMS_CODE => l_shipment_rec.FREIGHT_TERMS_CODE,
2408 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
2409 p_FOB_CODE => l_shipment_rec.FOB_CODE,
2410 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
2411 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
2412 p_QUANTITY => l_shipment_rec.QUANTITY,
2413 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
2414 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
2415 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
2416 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
2417 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
2418 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
2419 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
2420 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
2421 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
2422 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
2423 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
2424 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
2425 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
2426 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
2427 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
2428 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
2429 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
2430 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
2431 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
2432 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
2433 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
2434 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
2435 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
2436 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
2437 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
2438 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
2439 p_SHIP_FROM_ORG_ID => l_shipment_rec.SHIP_FROM_ORG_ID,
2440 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
2441 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
2442 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
2443 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
2444 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
2445 p_demand_class_code => l_shipment_rec.demand_class_code
2446 );
2447
2448 FOR j IN 1..l_Freight_Charge_Tbl.count LOOP
2449 IF l_Freight_Charge_Tbl(j).shipment_index = i THEN
2450 l_freight_charge_tbl(j).QUOTE_SHIPMENT_ID := x_shipment_tbl(i).SHIPMENT_ID;
2451 END IF;
2452 END LOOP;
2453
2454
2455 ELSIF P_Shipment_Tbl(i).operation_code = 'UPDATE' THEN
2456
2457 l_sysdate := sysdate;
2458 x_shipment_tbl(i).last_update_date := l_sysdate;
2459 l_shipment_rec := x_shipment_tbl(i);
2460
2461 IF l_shipment_rec.ship_method_code = fnd_api.g_miss_char THEN
2462
2463 FOR l_ship_db_rec IN c_db_ship_freight_terms(l_shipment_rec.shipment_id) LOOP
2464
2465 IF l_ship_db_rec.ship_method_code_from is null THEN
2466 l_shipment_rec.ship_method_code_from := l_ship_db_rec.ship_method_code;
2467 END IF;
2468
2469 END LOOP;
2470
2471 ELSE
2472 l_shipment_rec.ship_method_code_from := l_shipment_rec.ship_method_code;
2473
2474 END IF;
2475
2476
2477 IF l_shipment_rec.freight_terms_code = fnd_api.g_miss_char THEN
2478
2479 FOR l_ship_db_rec IN c_db_ship_freight_terms(l_shipment_rec.shipment_id) LOOP
2480
2481 IF l_ship_db_rec.freight_terms_code_from is null THEN
2482 l_shipment_rec.freight_terms_code_from := l_ship_db_rec.freight_terms_code;
2483 END IF;
2484
2485 END LOOP;
2486
2487 ELSE
2488 l_shipment_rec.freight_terms_code_from := l_shipment_rec.freight_terms_code;
2489
2490 END IF;
2491
2492 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2493 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.update_rows - l_shipment_rec.ship_method_code'||l_shipment_rec.ship_method_code, 1, 'Y');
2494 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.update_rows - l_shipment_rec.freight_terms_code'||l_shipment_rec.freight_terms_code, 1, 'Y');
2495 END IF;
2496
2497 x_shipment_tbl(i).ship_method_code_from := l_shipment_rec.ship_method_code_from;
2498 x_shipment_tbl(i).freight_terms_code_from := l_shipment_rec.freight_terms_code_from;
2499
2500 ASO_SHIPMENTS_PKG.Update_Row(
2501 p_SHIPMENT_ID => l_shipment_rec.SHIPMENT_ID,
2502 p_CREATION_DATE => l_shipment_rec.creation_date,
2503 p_CREATED_BY => G_USER_ID,
2504 p_LAST_UPDATE_DATE => l_sysdate,
2505 p_LAST_UPDATED_BY => G_USER_ID,
2506 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2507 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
2508 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
2509 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
2510 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
2511 p_QUOTE_HEADER_ID => l_qte_HEADER_ID,
2512 p_QUOTE_LINE_ID => NULL,
2513 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
2514 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
2515 p_SCHEDULE_SHIP_DATE => l_shipment_rec.SCHEDULE_SHIP_DATE,
2516 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
2517 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
2518 p_ship_to_CUST_ACCOUNT_ID => l_shipment_rec.ship_to_CUST_ACCOUNT_ID,
2519 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
2520 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
2521 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
2522 p_FREIGHT_TERMS_CODE => l_shipment_rec.FREIGHT_TERMS_CODE,
2523 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
2524 p_FOB_CODE => l_shipment_rec.FOB_CODE,
2525 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
2526 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
2527 p_QUANTITY => l_shipment_rec.QUANTITY,
2528 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
2529 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
2530 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
2531 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
2532 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
2533 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
2534 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
2535 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
2536 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
2537 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
2538 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
2539 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
2540 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
2541 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
2542 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
2543 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
2544 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
2545 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
2546 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
2547 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
2548 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
2549 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
2550 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
2551 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
2552 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
2553 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
2554 p_SHIP_FROM_ORG_ID => l_shipment_rec.SHIP_FROM_ORG_ID,
2555 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
2556 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
2557 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
2558 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
2559 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
2560 p_demand_class_code => l_shipment_rec.demand_class_code
2561 );
2562 ELSIF P_Shipment_Tbl(i).operation_code = 'DELETE' THEN
2563 ASO_SHIPMENTS_PKG.Delete_Row(
2564 p_SHIPMENT_ID => P_Shipment_Tbl(i).SHIPMENT_ID);
2565 END IF;
2566 END LOOP;
2567
2568 x_freight_charge_tbl := l_freight_charge_tbl;
2569 FOR i IN 1..l_Freight_Charge_Tbl.count LOOP
2570 IF l_Freight_Charge_Tbl(i).operation_code = 'CREATE' THEN
2571 l_sysdate := sysdate;
2572 l_freight_charge_rec := l_freight_charge_tbl(i);
2573 x_FREIGHT_CHARGE_tbl(i).last_update_date := l_sysdate;
2574 -- BC4J Fix
2575 --x_FREIGHT_CHARGE_tbl(i).freight_charge_id := NULL;
2576 ASO_FREIGHT_CHARGES_PKG.Insert_Row(
2577 px_FREIGHT_CHARGE_ID => x_FREIGHT_CHARGE_tbl(i).freight_charge_id,
2578 p_CREATION_DATE => SYSDATE,
2579 p_CREATED_BY => G_USER_ID,
2580 p_LAST_UPDATE_DATE => l_sysdate,
2581 p_LAST_UPDATED_BY => G_USER_ID,
2582 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2583 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
2584 p_PROGRAM_APPLICATION_ID => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
2585 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
2586 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
2587 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.Quote_SHIPMENT_ID,
2588 p_FREIGHT_CHARGE_TYPE_ID => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
2589 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
2590 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
2591 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
2592 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
2593 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
2594 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
2595 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
2596 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
2597 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
2598 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
2599 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
2600 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
2601 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
2602 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
2603 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
2604 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
2605 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
2606 ELSIF l_Freight_Charge_Tbl(i).operation_code = 'UPDATE' THEN
2607 l_sysdate := sysdate;
2608 l_freight_charge_rec := l_freight_charge_tbl(i);
2609 x_FREIGHT_CHARGE_tbl(i).last_update_date := l_sysdate;
2610 ASO_FREIGHT_CHARGES_PKG.Update_Row(
2611 p_FREIGHT_CHARGE_ID => l_freight_charge_rec.freight_charge_id,
2612 p_CREATION_DATE => l_freight_charge_rec.creation_date,
2613 p_CREATED_BY => G_USER_ID,
2614 p_LAST_UPDATE_DATE => l_sysdate,
2615 p_LAST_UPDATED_BY => G_USER_ID,
2616 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2617 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
2618 p_PROGRAM_APPLICATION_ID => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
2619 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
2620 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
2621 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.Quote_SHIPMENT_ID,
2622 p_FREIGHT_CHARGE_TYPE_ID => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
2623 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
2624 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
2625 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
2626 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
2627 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
2628 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
2629 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
2630 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
2631 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
2632 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
2633 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
2634 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
2635 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
2636 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
2637 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
2638 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
2639 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
2640 ELSIF l_Freight_Charge_Tbl(i).operation_code = 'DELETE' THEN
2641 ASO_FREIGHT_CHARGES_PKG.Delete_Row(
2642 p_FREIGHT_CHARGE_ID => l_freight_charge_tbl(i).freight_charge_id);
2643 END IF;
2644 END LOOP;
2645
2646 x_tax_detail_tbl := p_tax_detail_tbl;
2647 FOR i IN 1..P_Tax_Detail_Tbl.count LOOP
2648 IF P_Tax_Detail_Tbl(i).operation_code = 'CREATE' THEN
2649 l_sysdate := sysdate;
2650 l_tax_detail_rec := x_tax_detail_tbl(i);
2651 -- BC4J Fix
2652 --x_tax_detail_tbl(i).TAX_DETAIL_ID := NULL;
2653 x_tax_detail_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2654 ASO_TAX_DETAILS_PKG.Insert_Row(
2655 px_TAX_DETAIL_ID => x_tax_detail_tbl(i).TAX_DETAIL_ID,
2656 p_CREATION_DATE => SYSDATE,
2657 p_CREATED_BY => G_USER_ID,
2658 p_LAST_UPDATE_DATE => l_sysdate,
2659 p_LAST_UPDATED_BY => G_USER_ID,
2660 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2661 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
2662 p_PROGRAM_APPLICATION_ID => l_tax_detail_rec.PROGRAM_APPLICATION_ID,
2663 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
2664 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
2665 p_QUOTE_HEADER_ID => l_qte_HEADER_ID,
2666 p_QUOTE_LINE_ID => NULL,
2667 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.quote_shipment_id,
2668 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
2669 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
2670 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
2671 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
2672 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
2673 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
2674 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
2675 p_TAX_EXEMPT_REASON_CODE => l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
2676 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
2677 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
2678 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
2679 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
2680 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
2681 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
2682 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
2683 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
2684 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
2685 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
2686 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
2687 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
2688 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
2689 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
2690 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
2691 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
2692 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
2693 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
2694 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
2695 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
2696 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
2697 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
2698 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
2699 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
2700 );
2701
2702 ELSIF P_Tax_Detail_Tbl(i).operation_code = 'UPDATE' THEN
2703 l_sysdate := sysdate;
2704 l_tax_detail_rec := x_tax_detail_tbl(i);
2705 x_tax_detail_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2706 ASO_TAX_DETAILS_PKG.update_Row(
2707 p_TAX_DETAIL_ID => l_tax_detail_rec.TAX_DETAIL_ID,
2708 p_CREATION_DATE => l_tax_detail_rec.creation_date,
2709 p_CREATED_BY => G_USER_ID,
2710 p_LAST_UPDATE_DATE => l_sysdate,
2711 p_LAST_UPDATED_BY => G_USER_ID,
2712 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2713 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
2714 p_PROGRAM_APPLICATION_ID => l_tax_detail_rec.PROGRAM_APPLICATION_ID,
2715 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
2716 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
2717 p_QUOTE_HEADER_ID => l_Qte_HEADER_ID,
2718 p_QUOTE_LINE_ID => NULL,
2719 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.quote_shipment_id,
2720 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
2721 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
2722 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
2723 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
2724 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
2725 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
2726 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
2727 p_TAX_EXEMPT_REASON_CODE => l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
2728 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
2729 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
2730 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
2731 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
2732 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
2733 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
2734 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
2735 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
2736 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
2737 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
2738 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
2739 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
2740 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
2741 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
2742 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
2743 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
2744 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
2745 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
2746 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
2747 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
2748 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
2749 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
2750 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
2751 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
2752 );
2753 ELSIF P_Tax_Detail_Tbl(i).operation_code = 'DELETE' THEN
2754 ASO_TAX_DETAILS_PKG.Delete_Row(
2755 p_TAX_DETAIL_ID => P_Tax_Detail_Tbl(i).TAX_DETAIL_ID);
2756 END IF;
2757 END LOOP;
2758
2759
2760 -- check for duplicate promotions, see bug 4521799
2761 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2762 aso_debug_pub.add('Before calling Validate_Promotion price_attr_tbl.count: '|| p_price_attributes_tbl.count, 1, 'Y');
2763 END IF;
2764
2765 ASO_VALIDATE_PVT.Validate_Promotion (
2766 P_Api_Version_Number => 1.0,
2767 P_Init_Msg_List => FND_API.G_FALSE,
2768 P_Commit => FND_API.G_FALSE,
2769 p_price_attr_tbl => p_price_attributes_tbl,
2770 x_price_attr_tbl => lx_price_attr_tbl,
2771 x_return_status => x_return_status,
2772 x_msg_count => x_msg_count,
2773 x_msg_data => x_msg_data);
2774
2775 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2776 aso_debug_pub.add('after calling Validate_Promotion ', 1, 'Y');
2777 aso_debug_pub.add('Validate_Promotion Return Status: '||x_return_status, 1, 'Y');
2778 END IF;
2779
2780 if x_return_status <> fnd_api.g_ret_sts_success then
2781 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2782 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2783 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2784 RAISE FND_API.G_EXC_ERROR;
2785 ELSE
2786 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2787 END IF;
2788 end if;
2789
2790
2791 -- end of check for duplicate promotions
2792
2793
2794
2795 -- Added to support the pricing attributes at header level
2796
2797
2798 FOR i in 1..p_Price_Attributes_Tbl.count LOOP
2799
2800 l_price_attributes_rec := p_Price_Attributes_Tbl(i);
2801 -- l_price_attributes_rec.quote_line_id := p_qte_line_rec.quote_line_id;
2802 x_price_attributes_tbl(i) := l_price_attributes_rec;
2803
2804 IF l_price_attributes_rec.operation_code = 'CREATE' THEN
2805
2806 l_price_attributes_rec.quote_header_id := l_qte_header_id;
2807 -- BC4J Fix
2808 --x_price_attributes_tbl(1).price_attribute_id := NULL;
2809
2810 ASO_PRICE_ATTRIBUTES_PKG.Insert_Row(
2811 px_PRICE_ATTRIBUTE_ID => x_price_attributes_tbl(i).price_attribute_id,
2812 p_CREATION_DATE => SYSDATE,
2813 p_CREATED_BY => G_USER_ID,
2814 p_LAST_UPDATE_DATE => SYSDATE,
2815 p_LAST_UPDATED_BY => G_USER_ID,
2816 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2817 p_REQUEST_ID => l_price_attributes_rec.REQUEST_ID,
2818 p_PROGRAM_APPLICATION_ID => l_price_attributes_rec.PROGRAM_APPLICATION_ID,
2819 p_PROGRAM_ID => l_price_attributes_rec.PROGRAM_ID,
2820 p_PROGRAM_UPDATE_DATE => l_price_attributes_rec.PROGRAM_UPDATE_DATE,
2821 p_QUOTE_HEADER_ID => l_price_attributes_rec.QUOTE_HEADER_ID,
2822 p_QUOTE_LINE_ID => null,
2823 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
2824 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
2825 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
2826 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
2827 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
2828 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
2829 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
2830 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
2831 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
2832 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
2833 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
2834 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
2835 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
2836 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
2837 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
2838 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
2839 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
2840 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
2841 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
2842 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
2843 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
2844 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
2845 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
2846 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
2847 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
2848 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
2849 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
2850 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
2851 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
2852 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
2853 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
2854 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
2855 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
2856 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
2857 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
2858 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
2859 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
2860 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
2861 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
2862 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
2863 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
2864 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
2865 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
2866 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
2867 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
2868 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
2869 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
2870 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
2871 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
2872 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
2873 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
2874 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
2875 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
2876 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
2877 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
2878 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
2879 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
2880 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
2881 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
2882 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
2883 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
2884 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
2885 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
2886 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
2887 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
2888 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
2889 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
2890 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
2891 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
2892 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
2893 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
2894 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
2895 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
2896 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
2897 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
2898 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
2899 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
2900 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
2901 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
2902 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
2903 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
2904 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
2905 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
2906 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
2907 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
2908 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
2909 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
2910 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
2911 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
2912 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
2913 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
2914 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
2915 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
2916 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
2917 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
2918 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
2919 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
2920 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
2921 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
2922 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
2923 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
2924 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
2925 p_CONTEXT => l_price_attributes_rec.CONTEXT,
2926 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
2927 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
2928 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
2929 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
2930 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
2931 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
2932 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
2933 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
2934 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
2935 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
2936 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
2937 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
2938 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
2939 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
2940 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
2941 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
2942 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
2943 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
2944 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
2945 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
2946 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
2947 );
2948
2949
2950 ELSIF l_price_attributes_rec.operation_code = 'UPDATE' THEN
2951
2952 ASO_PRICE_ATTRIBUTES_PKG.Update_Row(
2953 p_PRICE_ATTRIBUTE_ID => l_price_attributes_rec.price_attribute_id,
2954 p_CREATION_DATE => l_price_attributes_rec.creation_date,
2955 p_CREATED_BY => G_USER_ID,
2956 p_LAST_UPDATE_DATE => SYSDATE,
2957 p_LAST_UPDATED_BY => G_USER_ID,
2958 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2959 p_REQUEST_ID => l_price_attributes_rec.REQUEST_ID,
2960 p_PROGRAM_APPLICATION_ID => l_price_attributes_rec.PROGRAM_APPLICATION_ID,
2961 p_PROGRAM_ID => l_price_attributes_rec.PROGRAM_ID,
2962 p_PROGRAM_UPDATE_DATE => l_price_attributes_rec.PROGRAM_UPDATE_DATE,
2963 p_QUOTE_HEADER_ID => l_price_attributes_rec.QUOTE_HEADER_ID,
2964 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
2965 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
2966 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
2967 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
2968 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
2969 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
2970 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
2971 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
2972 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
2973 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
2974 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
2975 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
2976 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
2977 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
2978 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
2979 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
2980 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
2981 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
2982 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
2983 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
2984 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
2985 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
2986 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
2987 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
2988 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
2989 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
2990 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
2991 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
2992 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
2993 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
2994 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
2995 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
2996 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
2997 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
2998 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
2999 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
3000 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
3001 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
3002 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
3003 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
3004 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
3005 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
3006 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
3007 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
3008 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
3009 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
3010 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
3011 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
3012 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
3013 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
3014 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
3015 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
3016 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
3017 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
3018 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
3019 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
3020 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
3021 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
3022 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
3023 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
3024 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
3025 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
3026 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
3027 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
3028 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
3029 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
3030 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
3031 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
3032 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
3033 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
3034 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
3035 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
3036 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
3037 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
3038 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
3039 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
3040 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
3041 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
3042 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
3043 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
3044 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
3045 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
3046 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
3047 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
3048 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
3049 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
3050 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
3051 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
3052 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
3053 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
3054 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
3055 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
3056 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
3057 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
3058 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
3059 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
3060 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
3061 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
3062 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
3063 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
3064 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
3065 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
3066 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
3067 p_CONTEXT => l_price_attributes_rec.CONTEXT,
3068 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
3069 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
3070 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
3071 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
3072 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
3073 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
3074 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
3075 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
3076 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
3077 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
3078 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
3079 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
3080 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
3081 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
3082 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
3083 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
3084 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
3085 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
3086 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
3087 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
3088 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
3089 );
3090
3091 /* Commented the following code to call new api aso_pricing_int.delete_promotion 07/22/02
3092
3093 ELSIF l_price_attributes_rec.operation_code = 'DELETE' THEN
3094 ASO_PRICE_ATTRIBUTES_PKG.Delete_Row(
3095 p_PRICE_ATTRIBUTE_ID => l_price_attributes_rec.price_attribute_id);
3096
3097 */
3098
3099 END IF;
3100
3101 END LOOP;
3102
3103 -- New code to call aso_pricing_int.delete_promotion 07/22/02
3104
3105 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3106 aso_debug_pub.add('Update_Rows: p_Price_Attributes_Tbl.count: '||p_Price_Attributes_Tbl.count,1, 'N');
3107 aso_debug_pub.add('Update_Rows: Before call to aso_pricing_int.Delete_Promotion',1, 'N');
3108 END IF;
3109
3110 IF p_Price_Attributes_Tbl.count > 0 THEN
3111
3112 aso_pricing_int.Delete_Promotion (
3113 P_Api_Version_Number => 1.0,
3114 P_Init_Msg_List => FND_API.G_FALSE,
3115 P_Commit => FND_API.G_FALSE,
3116 p_price_attr_tbl => p_Price_Attributes_Tbl,
3117 x_return_status => x_return_status,
3118 x_msg_count => x_msg_count,
3119 x_msg_data => x_msg_data
3120 );
3121
3122 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3123 aso_debug_pub.add('Update_Rows: After call to Delete_Promotion: x_return_status: '||x_return_status,1, 'N');
3124 END IF;
3125
3126 END IF;
3127
3128 -- End of New code to call aso_pricing_int.delete_promotion 07/22/02
3129
3130
3131 -- sales credits
3132 FOR i in 1..p_Sales_Credit_Tbl.count LOOP
3133
3134 l_Sales_Credit_rec := p_sales_credit_tbl(i);
3135 x_sales_credit_tbl(i) := l_sales_credit_rec;
3136
3137 IF l_sales_credit_rec.operation_code = 'CREATE' THEN
3138 l_sales_credit_rec.quote_header_id := l_qte_header_id;
3139 -- BC4J Fix
3140 --x_sales_credit_tbl(i).sales_credit_id := NULL;
3141 ASO_SALES_CREDITS_PKG.Insert_Row(
3142 p_CREATION_DATE => SYSDATE,
3143 p_CREATED_BY => G_USER_ID,
3144 p_LAST_UPDATED_BY => G_USER_ID,
3145 p_LAST_UPDATE_DATE => SYSDATE,
3146 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3147 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
3148 p_PROGRAM_APPLICATION_ID => l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
3149 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
3150 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
3151 px_SALES_CREDIT_ID => x_SALES_CREDIT_tbl(i).SALES_CREDIT_ID,
3152 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
3153 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
3154 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
3155 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
3156 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
3157 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
3158 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
3159 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
3160 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
3161 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
3162 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
3163 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
3164 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
3165 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
3166 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
3167 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
3168 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
3169 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
3170 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
3171 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
3172 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
3173 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
3174 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
3175 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
3176 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
3177 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
3178 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
3179 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
3180 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
3181 p_SYSTEM_ASSIGNED_FLAG => 'N',
3182 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
3183 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
3184
3185 ELSIF l_sales_credit_rec.operation_code = 'UPDATE' THEN
3186 ASO_SALES_CREDITS_PKG.Update_Row(
3187 p_CREATION_DATE => l_sales_CREDIT_rec.creation_date,
3188 p_CREATED_BY => G_USER_ID,
3189 p_LAST_UPDATED_BY => G_USER_ID,
3190 p_LAST_UPDATE_DATE => SYSDATE,
3191 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3192 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
3193 p_PROGRAM_APPLICATION_ID=> l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
3194 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
3195 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
3196 p_SALES_CREDIT_ID => l_SALES_CREDIT_rec.SALES_CREDIT_ID,
3197 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
3198 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
3199 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
3200 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
3201 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
3202 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
3203 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
3204 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
3205 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
3206 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
3207 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
3208 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
3209 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
3210 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
3211 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
3212 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
3213 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
3214 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
3215 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
3216 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
3217 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
3218 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
3219 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
3220 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
3221 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
3222 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
3223 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
3224 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
3225 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
3226 p_SYSTEM_ASSIGNED_FLAG => 'N',
3227 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
3228 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
3229 ELSIF l_sales_credit_rec.operation_code = 'DELETE' THEN
3230 ASO_SALES_CREDITS_PKG.Delete_Row(
3231 p_SALES_CREDIT_ID => l_SALES_CREDIT_rec.SALES_CREDIT_ID);
3232
3233 END IF;
3234 END LOOP;
3235 -- Quote Party
3236 FOR i IN 1..p_quote_party_Tbl.count LOOP
3237 l_quote_party_rec := p_quote_party_tbl(i);
3238 x_quote_party_tbl(i) := l_quote_party_rec;
3239
3240 IF l_quote_party_rec.operation_code = 'CREATE' THEN
3241 l_quote_party_rec.quote_header_id := l_qte_header_id;
3242 -- BC4J Fix
3243 --x_quote_party_tbl(i).QUOTE_PARTY_ID := NULL;
3244
3245 ASO_QUOTE_PARTIES_PKG.Insert_Row(
3246 px_QUOTE_PARTY_ID => x_quote_party_tbl(i).QUOTE_PARTY_ID,
3247 p_CREATION_DATE => SYSDATE,
3248 p_CREATED_BY => G_USER_ID,
3249 p_LAST_UPDATE_DATE => SYSDATE,
3250 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3251 p_LAST_UPDATED_BY => G_USER_ID,
3252 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
3253 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
3254 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
3255 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
3256 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
3257 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
3258 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
3259 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
3260 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
3261 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
3262 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
3263 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
3264 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
3265 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
3266 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
3267 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
3268 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
3269 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
3270 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
3271 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
3272 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
3273 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
3274 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
3275 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
3276 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
3277 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
3278 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
3279 -- p_SECURITY_GROUP_ID => p_QUOTE_PARTY_rec.SECURITY_GROUP_ID);
3280 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
3281
3282 ELSIF l_quote_party_rec.operation_code = 'UPDATE' THEN
3283 ASO_QUOTE_PARTIES_PKG.Update_Row(
3284 p_QUOTE_PARTY_ID => l_quote_party_rec.QUOTE_PARTY_ID,
3285 p_CREATION_DATE => l_quote_party_rec.creation_date,
3286 p_CREATED_BY => G_USER_ID,
3287 p_LAST_UPDATE_DATE => SYSDATE,
3288 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3289 p_LAST_UPDATED_BY => G_USER_ID,
3290 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
3291 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
3292 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
3293 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
3294 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
3295 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
3296 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
3297 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
3298 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
3299 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
3300 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
3301 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
3302 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
3303 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
3304 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
3305 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
3306 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
3307 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
3308 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
3309 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
3310 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
3311 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
3312 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
3313 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
3314 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
3315 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
3316 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
3317 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
3318
3319 ELSIF l_quote_party_rec.operation_code = 'DELETE' THEN
3320 ASO_QUOTE_PARTIES_PKG.Delete_Row(
3321 p_QUOTE_PARTY_ID => l_QUOTE_PARTY_rec.QUOTE_PARTY_ID);
3322
3323 END IF;
3324 END LOOP;
3325 FOR i IN 1..P_hd_Attr_Ext_Tbl.count LOOP
3326 l_line_attribs_rec := P_hd_Attr_Ext_Tbl(i);
3327 l_line_attribs_rec.quote_header_id := l_qte_header_id ;
3328 x_hd_Attr_Ext_Tbl(i) := l_line_attribs_rec;
3329
3330 IF l_line_attribs_rec.operation_code = 'CREATE' THEN
3331 -- BC4J Fix
3332 --x_hd_Attr_Ext_Tbl(i).LINE_ATTRIBUTE_ID := null;
3333
3334 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row(
3335 px_LINE_ATTRIBUTE_ID => x_hd_Attr_Ext_Tbl(i).LINE_ATTRIBUTE_ID,
3336 p_CREATION_DATE => SYSDATE,
3337 p_CREATED_BY => G_USER_ID,
3338 p_LAST_UPDATE_DATE => SYSDATE,
3339 p_LAST_UPDATED_BY => G_USER_ID,
3340 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3341 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
3342 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
3343 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
3344 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
3345 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
3346 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
3347 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
3348 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
3349 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
3350 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
3351 p_NAME => l_LINE_ATTRIBS_rec.NAME,
3352 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
3353 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
3354 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
3355 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
3356 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
3357
3358 ELSIF l_line_attribs_rec.operation_code = 'UPDATE' THEN
3359 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Update_Row(
3360 p_LINE_ATTRIBUTE_ID => l_LINE_ATTRIBS_REC.LINE_ATTRIBUTE_ID,
3361 p_CREATION_DATE => l_LINE_ATTRIBS_REC.creation_date,
3362 p_CREATED_BY => G_USER_ID,
3363 p_LAST_UPDATE_DATE => SYSDATE,
3364 p_LAST_UPDATED_BY => G_USER_ID,
3365 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3366 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
3367 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
3368 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
3369 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
3370 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
3371 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
3372 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
3373 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
3374 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
3375 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
3376 p_NAME => l_LINE_ATTRIBS_rec.NAME,
3377 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
3378 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
3379 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
3380 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
3381 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
3382
3383 ELSIF l_line_attribs_rec.operation_code = 'DELETE' THEN
3384 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.delete_Row(
3385 p_LINE_ATTRIB_ID => l_LINE_ATTRIBS_rec.LINE_ATTRIBUTE_ID);
3386 END IF;
3387 END LOOP; -- line attribs
3388
3389
3390 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3391 aso_debug_pub.add('Update_Rows: l_qte_access_tbl.count: '||l_qte_access_tbl.count, 1, 'Y');
3392 END IF;
3393
3394 for i in 1 .. p_qte_access_tbl.count loop
3395
3396 if p_qte_access_tbl(i).operation_code = 'CREATE' then
3397
3398 l_qte_access_tbl(1) := p_qte_access_tbl(i);
3399 l_qte_access_tbl(1).batch_price_flag := fnd_api.g_false;
3400
3401 if l_qte_access_tbl(1).quote_number is null or l_qte_access_tbl(1).quote_number = fnd_api.g_miss_num then
3402
3403 open c_quote_number;
3404 fetch c_quote_number into l_qte_access_tbl(1).quote_number;
3405 close c_quote_number;
3406
3407 end if;
3408
3409 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3410 aso_debug_pub.add('Update_Rows: Before call to Add_Resource', 1, 'Y');
3411 END IF;
3412
3413 ASO_SECURITY_INT.Add_Resource(
3414 P_INIT_MSG_LIST => FND_API.G_FALSE,
3415 P_COMMIT => FND_API.G_FALSE,
3416 P_Qte_Access_tbl => l_qte_access_tbl,
3417 p_call_from_oafwk_flag => FND_API.G_TRUE,
3418 X_Qte_Access_tbl => lx_qte_access_tbl,
3419 X_RETURN_STATUS => x_return_status,
3420 X_msg_count => X_msg_count,
3421 X_msg_data => X_msg_data );
3422
3423 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3424 aso_debug_pub.add('Update_Rows: After call to Add_Resource: x_return_status: '|| x_return_status, 1, 'Y');
3425 aso_debug_pub.add('Update_Rows: lx_Qte_Access_tbl.count: '|| lx_Qte_Access_tbl.count, 1, 'Y');
3426 END IF;
3427
3428 for i in 1 .. lx_qte_access_tbl.count loop
3429 X_Qte_Access_tbl(X_Qte_Access_tbl.count + 1) := lx_qte_access_tbl(i);
3430 end loop;
3431
3432 elsif p_qte_access_tbl(i).operation_code = 'UPDATE' then
3433
3434 l_qte_access_tbl(1) := p_qte_access_tbl(i);
3435 l_qte_access_tbl(1).batch_price_flag := fnd_api.g_false;
3436
3437 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3438 aso_debug_pub.add('Update_Rows: Before call to Add_Resource to update access', 1, 'Y');
3439 END IF;
3440
3441 ASO_SECURITY_INT.Add_Resource(
3442 P_INIT_MSG_LIST => FND_API.G_FALSE,
3443 P_COMMIT => FND_API.G_FALSE,
3444 P_Qte_Access_tbl => l_qte_access_tbl,
3445 p_call_from_oafwk_flag => FND_API.G_TRUE,
3446 X_Qte_Access_tbl => lx_qte_access_tbl,
3447 X_RETURN_STATUS => x_return_status,
3448 X_msg_count => X_msg_count,
3449 X_msg_data => X_msg_data );
3450
3451 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3452 aso_debug_pub.add('Update_Rows: After call to Add_Resource: x_return_status: '||x_return_status, 1, 'Y');
3453 aso_debug_pub.add('Update_Rows: lx_Qte_Access_tbl.count: '|| lx_Qte_Access_tbl.count, 1, 'Y');
3454 END IF;
3455
3456 for i in 1 .. lx_qte_access_tbl.count loop
3457 X_Qte_Access_tbl(X_Qte_Access_tbl.count + 1) := lx_qte_access_tbl(i);
3458 end loop;
3459
3460 elsif p_qte_access_tbl(i).operation_code = 'DELETE' then
3461
3462 l_qte_access_tbl(1) := p_qte_access_tbl(i);
3463 l_qte_access_tbl(1).batch_price_flag := fnd_api.g_false;
3464
3465 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3466 aso_debug_pub.add('Update_Rows: Before call to Add_Resource', 1, 'Y');
3467 END IF;
3468
3469 ASO_SECURITY_INT.Delete_Resource(
3470 P_INIT_MSG_LIST => FND_API.G_FALSE,
3471 P_COMMIT => FND_API.G_FALSE,
3472 P_Qte_Access_tbl => l_qte_access_tbl,
3473 X_RETURN_STATUS => x_return_status,
3474 X_msg_count => X_msg_count,
3475 X_msg_data => X_msg_data );
3476
3477 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3478 aso_debug_pub.add('Update_Rows: After call to Add_Resource: x_return_status: '||x_return_status, 1, 'Y');
3479 END IF;
3480
3481 X_Qte_Access_tbl(X_Qte_Access_tbl.count + 1) := p_qte_access_tbl(i);
3482
3483 end if;
3484
3485 end loop;
3486
3487 END Update_Rows;
3488
3489
3490
3491 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
3492 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
3493 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
3494 -- IF calculate_tax_flag = 'N', no summation on line level tax,
3495 -- just take the value of p_qte_header_rec.total_tax as the total_tax
3496 -- IF calculate_Freight_Charge_Flag = 'N', not summation on line level freight charge,
3497 -- just take the value of p_qte_header_rec.total_freight_charge
3498
3499
3500
3501 PROCEDURE Update_Quote_Total ( P_Qte_Header_id IN NUMBER,
3502 P_Calculate_Tax IN VARCHAR2,
3503 P_Calculate_Freight_Charge IN VARCHAR2,
3504 P_Control_Rec IN ASO_QUOTE_PUB.CONTROL_REC_TYPE
3505 := ASO_QUOTE_PUB.G_MISS_CONTROL_REC,
3506 P_Call_Ar_Api_Flag IN VARCHAR2 := FND_API.G_FALSE,
3507 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3508 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3509 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3510 )
3511 IS
3512
3513 -- bug 14015509
3514 l_precision NUMBER;
3515
3516 CURSOR c_qte_sum IS
3517 SELECT quote_line_id, line_category_code, round(nvl(line_list_price * quantity, 0),l_precision) total_list_price,
3518 round(nvl(line_adjusted_amount * quantity,
3519 nvl(line_adjusted_percent * line_list_price * quantity, 0)),l_precision) ln_total_discount,
3520 round( nvl(line_quote_price * quantity, 0),l_precision) ln_selling_price
3521 FROM ASO_QUOTE_LINES_ALL
3522 WHERE quote_header_id = p_qte_header_id
3523 and charge_periodicity_code is null; -- Recurring charges Change
3524
3525 CURSOR c_tax_line(p_quote_line_id NUMBER) IS
3526 SELECT round(nvl(sum(decode(tax_inclusive_flag, 'Y', 0,nvl(tax_amount,0))),0),l_precision) tax_amt_for_qte_total,
3527 round(nvl(sum(nvl(tax_amount, 0)),0),l_precision) tax_amount
3528 FROM ASO_TAX_DETAILS
3529 WHERE quote_header_id = p_qte_header_id
3530 and quote_line_id = p_quote_line_id;
3531
3532 CURSOR c_tax IS
3533 SELECT round(nvl(sum(nvl(tax_amount, 0)),0),l_precision)
3534 FROM ASO_TAX_DETAILS
3535 WHERE quote_header_id = p_qte_header_id
3536 and quote_line_id is null;
3537
3538 CURSOR c_tax_rec_cnt IS
3539 select count(tax_detail_id)
3540 from aso_tax_details
3541 where quote_header_id = p_qte_header_id
3542 and tax_amount is not null;
3543
3544
3545 CURSOR c_old_shipping_charge IS
3546 SELECT round(total_shipping_charge,l_precision)
3547 FROM aso_quote_headers_all
3548 WHERE quote_header_id = p_qte_header_id;
3549
3550 CURSOR c_hd_discount IS
3551 SELECT total_adjusted_percent
3552 FROM aso_quote_headers_all
3553 WHERE quote_header_id = p_qte_header_id;
3554
3555
3556 Cursor get_hdr_payment_term IS
3557 SELECT payment_term_id
3558 FROM aso_payments
3559 WHERE quote_header_id = p_qte_header_id
3560 and quote_line_id is null;
3561
3562 Cursor get_hdr_curr_code IS
3563 SELECT currency_code
3564 FROM aso_quote_headers_all
3565 WHERE quote_header_id = p_qte_header_id;
3566
3567 Cursor c_org_id IS
3568 Select org_id,quote_type
3569 from aso_quote_headers_all
3570 where quote_header_id = p_qte_header_id;
3571
3572 Cursor get_total_payment_amount( l_qte_hdr_id number) is
3573 select sum(payment_amount)
3574 from aso_payments
3575 where quote_header_id = l_qte_hdr_id
3576 and quote_line_id is not null;
3577
3578 l_total_list_price NUMBER := 0;
3579 l_ln_total_discount NUMBER := 0;
3580 l_total_quote_price NUMBER := 0;
3581 l_total_adjusted_amount NUMBER := 0;
3582 l_hd_discount_percent NUMBER := 0;
3583 l_total_tax NUMBER := 0;
3584 l_total_tax_for_qte_total NUMBER := 0;
3585 l_header_tax NUMBER := 0;
3586 l_total_shipping_charge NUMBER := 0;
3587 l_line_shipping_charge NUMBER := 0;
3588 l_header_shipping_charge NUMBER := 0;
3589 l_count NUMBER;
3590
3591 l_installment_option VARCHAR2(240);
3592 l_hdr_currency_code varchar2(15);
3593 l_hdr_term_id NUMBER;
3594 l_paynow_amount NUMBER;
3595 l_paynow_tax NUMBER;
3596 l_paynow_charges NUMBER:= null;
3597 l_paynow_total NUMBER;
3598 l_org_id NUMBER;
3599 l_quote_type varchar2(1);
3600 l_total_payment_amount NUMBER :=0;
3601 -- bug 14015509
3602 l_ext_precision NUMBER;
3603 l_min_acct_unit NUMBER;
3604 l_total_selling_price NUMBER := 0; -- bug 8584380
3605
3606 BEGIN
3607
3608 --Initialize API return status to SUCCESS
3609
3610 x_return_status := FND_API.G_RET_STS_SUCCESS;
3611
3612 -- get the currency code id for the header
3613 open get_hdr_curr_code;
3614 fetch get_hdr_curr_code into l_hdr_currency_code;
3615 close get_hdr_curr_code;
3616 FND_CURRENCY.GET_INFO(l_hdr_currency_code,l_precision,l_ext_precision,l_min_acct_unit);
3617
3618 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3619 aso_debug_pub.add('Begin update_quote_total procedure.', 1, 'Y');
3620 aso_debug_pub.add('Update_quote_total: Input parameters value.');
3621 aso_debug_pub.add('Update_quote_total: p_qte_header_id: '|| p_qte_header_id);
3622 aso_debug_pub.add('Update_quote_total: p_calculate_tax: '|| p_calculate_tax);
3623 aso_debug_pub.add('Update_quote_total: p_calculate_freight_charge: '|| p_calculate_freight_charge);
3624 aso_debug_pub.add('p_control_rec.header_pricing_event: '|| p_control_rec.header_pricing_event);
3625 aso_debug_pub.add('p_control_rec.line_pricing_event: '|| p_control_rec.header_pricing_event);
3626 END IF;
3627
3628
3629
3630 FOR qte_rec IN c_qte_sum LOOP
3631
3632 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3633 aso_debug_pub.add('Update_quote_total: l_total_quote_price: '|| l_total_quote_price);
3634 aso_debug_pub.add('qte_rec.line_category_code: '|| qte_rec.line_category_code);
3635 END IF;
3636
3637 IF qte_rec.line_category_code = 'RETURN' THEN
3638
3639 l_total_list_price := l_total_list_price - qte_rec.total_list_price;
3640 l_ln_total_discount := l_ln_total_discount - qte_rec.ln_total_discount;
3641 l_total_selling_price := l_total_selling_price - qte_rec.ln_selling_price; -- bug 8584380
3642
3643 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3644 aso_debug_pub.add('Update_quote_total: l_total_list_price: '|| l_total_list_price);
3645 aso_debug_pub.add('Update_quote_total: l_ln_total_discount: '|| l_ln_total_discount);
3646 aso_debug_pub.add('Update_quote_total: l_total_selling_price '|| l_total_selling_price); -- bug 8584380
3647 END IF;
3648
3649 FOR tax_line_rec IN c_tax_line(qte_rec.quote_line_id) LOOP
3650
3651 l_total_tax := l_total_tax - tax_line_rec.tax_amount;
3652 l_total_tax_for_qte_total := l_total_tax_for_qte_total - tax_line_rec.tax_amt_for_qte_total;
3653
3654 END LOOP;
3655
3656 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3657 aso_debug_pub.add('Update_quote_total: l_total_tax (-): '|| l_total_tax);
3658 END IF;
3659
3660 IF p_calculate_freight_charge = 'Y' then
3661
3662 l_line_shipping_charge := aso_shipping_int.get_line_freight_charges( p_qte_header_id,
3663 qte_rec.quote_line_id );
3664
3665 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3666 aso_debug_pub.add('Update_quote_total: After call to get_line_freight_charges');
3667 aso_debug_pub.add('l_line_shipping_charge: '|| l_line_shipping_charge);
3668 END IF;
3669
3670 l_total_shipping_charge := l_total_shipping_charge - l_line_shipping_charge;
3671
3672 END IF;
3673
3674 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3675 aso_debug_pub.add('l_total_shipping_charge: '|| l_total_shipping_charge );
3676 END IF;
3677
3678 ELSE
3679
3680 l_total_list_price := l_total_list_price + qte_rec.total_list_price;
3681 l_ln_total_discount := l_ln_total_discount + qte_rec.ln_total_discount;
3682 l_total_selling_price := l_total_selling_price + qte_rec.ln_selling_price; -- bug 8584380
3683
3684 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3685 aso_debug_pub.add('Update_quote_total: l_total_list_price: '|| l_total_list_price);
3686 aso_debug_pub.add('Update_quote_total: l_ln_total_discount: '|| l_ln_total_discount);
3687 aso_debug_pub.add('Update_quote_total: l_total_selling_price '|| l_total_selling_price); -- bug 8584380
3688 END IF;
3689
3690 FOR tax_line_rec IN c_tax_line(qte_rec.quote_line_id) LOOP
3691
3692 l_total_tax := l_total_tax + tax_line_rec.tax_amount;
3693 l_total_tax_for_qte_total := l_total_tax_for_qte_total + tax_line_rec.tax_amt_for_qte_total;
3694
3695 END LOOP;
3696
3697 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3698 aso_debug_pub.add('Update_quote_total: l_total_tax (+): '|| l_total_tax);
3699 END IF;
3700
3701 IF p_calculate_freight_charge = 'Y' then
3702
3703 l_line_shipping_charge := aso_shipping_int.get_line_freight_charges( p_qte_header_id,
3704 qte_rec.quote_line_id );
3705
3706 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3707 aso_debug_pub.add('Update_quote_total: After call to get_line_freight_charges');
3708 aso_debug_pub.add('l_line_shipping_charge: '|| l_line_shipping_charge);
3709 END IF;
3710
3711 l_total_shipping_charge := l_total_shipping_charge + l_line_shipping_charge;
3712
3713 END IF;
3714
3715 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3716 aso_debug_pub.add('l_total_shipping_charge: '|| l_total_shipping_charge );
3717 END IF;
3718
3719 END IF;
3720
3721 END LOOP;
3722
3723 --Get the header level tax amount and add it to the total tax
3724
3725 OPEN c_tax;
3726 FETCH c_tax INTO l_header_tax;
3727 CLOSE c_tax;
3728
3729 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3730 aso_debug_pub.add('Update_quote_total: l_header_tax: '|| l_header_tax);
3731 aso_debug_pub.add('Update_Quote_Total: p_control_rec.price_mode: '|| p_control_rec.price_mode);
3732 END IF;
3733
3734 IF (p_calculate_tax = 'N') OR
3735 (p_control_rec.price_mode = 'QUOTE_LINE') OR
3736 ((p_control_rec.price_mode = 'ENTIRE_QUOTE') AND
3737 (p_control_rec.header_pricing_event = 'ORDER')) OR
3738 ((p_control_rec.price_mode = 'ENTIRE_QUOTE') AND
3739 (p_control_rec.header_pricing_event = 'PRICE')) THEN
3740
3741 OPEN c_tax_rec_cnt;
3742 FETCH c_tax_rec_cnt INTO l_count;
3743 CLOSE c_tax_rec_cnt;
3744
3745 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3746 aso_debug_pub.add('Update_quote_total: l_count: '|| l_count);
3747 END IF;
3748
3749 IF l_count = 0 THEN
3750 l_total_tax := null;
3751 l_total_tax_for_qte_total := null;
3752 ELSE
3753 l_total_tax := l_total_tax + nvl(l_header_tax,0);
3754 l_total_tax_for_qte_total := l_total_tax_for_qte_total + nvl(l_header_tax,0);
3755 END IF;
3756
3757 ELSE
3758
3759 l_total_tax := l_total_tax + nvl(l_header_tax,0);
3760 l_total_tax_for_qte_total := l_total_tax_for_qte_total + nvl(l_header_tax,0);
3761
3762 END IF;
3763
3764
3765 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3766 aso_debug_pub.add('Update_quote_total: l_total_tax: '|| l_total_tax);
3767 aso_debug_pub.add('Update_quote_total: l_total_tax_for_qte_total: '|| l_total_tax_for_qte_total);
3768 END IF;
3769
3770
3771 IF P_calculate_Freight_Charge = 'Y' THEN
3772
3773 l_header_shipping_charge := ASO_SHIPPING_INT.get_Header_freight_charges(p_qte_header_id);
3774
3775 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3776 aso_debug_pub.add('Update_quote_total: l_header_shipping_charge: '|| l_header_shipping_charge);
3777 END IF;
3778
3779 l_total_shipping_charge := l_total_shipping_charge + l_header_shipping_charge;
3780
3781 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3782 aso_debug_pub.add('Update_quote_total: l_total_shipping_charge: '|| l_total_shipping_charge);
3783 END IF;
3784
3785 ELSE
3786
3787 open c_old_shipping_charge;
3788 fetch c_old_shipping_charge into l_total_shipping_charge;
3789 close c_old_shipping_charge;
3790
3791 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3792 aso_debug_pub.add('Update_quote_total: l_total_shipping_charge: '|| l_total_shipping_charge);
3793 END IF;
3794
3795 END IF;
3796
3797 -- bug 8584380. Using selling price to display quote total to avoid rounding issues for fractional quantities
3798 -- back calculating the total adjustments using total selling price and total list price
3799 /*l_total_quote_price := l_total_list_price + l_ln_total_discount + nvl(l_total_tax_for_qte_total,0) +
3800 nvl(l_total_shipping_charge,0);*/
3801 l_total_quote_price := l_total_selling_price + nvl(l_total_tax_for_qte_total,0) +
3802 nvl(l_total_shipping_charge,0);
3803
3804 l_ln_total_discount:= l_total_selling_price - l_total_list_price;
3805 -- end bug 8584380
3806
3807 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3808 aso_debug_pub.add('Update_quote_total: l_total_quote_price: '|| l_total_quote_price);
3809 aso_debug_pub.add('Update_quote_total: l_ln_total_discount: '|| l_ln_total_discount); -- bug 8584380
3810 END IF;
3811
3812 -- removed the if condition for pricing event check as per bug 5237393
3813 IF ( l_total_quote_price < 0 ) THEN
3814
3815 x_return_status := FND_API.G_RET_STS_ERROR;
3816
3817 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3818 aso_debug_pub.add('Inside price check: x_return_status: '|| x_return_status );
3819 END IF;
3820
3821 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3822
3823 FND_MESSAGE.Set_Name('ASO', 'ASO_NEGATIVE_QUOTE_TOTAL');
3824 FND_MSG_PUB.ADD;
3825
3826 END IF;
3827
3828 RAISE FND_API.G_EXC_ERROR;
3829
3830 END IF;
3831
3832 -- Start of PNPL Changes
3833 Open c_org_id;
3834 fetch c_org_id into l_org_id,l_quote_type;
3835 Close c_org_id;
3836
3837 l_installment_option := oe_sys_parameters.value(param_name => 'INSTALLMENT_OPTIONS',
3838 p_org_id =>l_org_id);
3839
3840 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3841 aso_debug_pub.add('Update_Quote_Total - Value of Installment Option Param: '||l_installment_option, 1, 'Y');
3842 END IF;
3843
3844 IF ( (l_installment_option = 'ENABLE_PAY_NOW') and (nvl(l_quote_type,'X') <> 'T')
3845 and ((p_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR and p_control_rec.header_pricing_event is not null)
3846 or (p_control_rec.calculate_tax_flag = 'Y')) ) then
3847
3848 l_header_shipping_charge := ASO_SHIPPING_INT.get_Header_freight_charges(p_qte_header_id);
3849
3850 -- get the payment term id for the header
3851 open get_hdr_payment_term;
3852 fetch get_hdr_payment_term into l_hdr_term_id;
3853 close get_hdr_payment_term;
3854
3855 -- get the currency code id for the header
3856 open get_hdr_curr_code;
3857 fetch get_hdr_curr_code into l_hdr_currency_code;
3858 close get_hdr_curr_code;
3859
3860
3861 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3862
3863 aso_debug_pub.add('Update_Quote_Total- Input to AR_VIEW_TERM_GRP.pay_now_amounts follows: ', 1, 'Y');
3864 aso_debug_pub.add('Update_Quote_Total- l_header_shipping_charge: '||l_header_shipping_charge, 1, 'Y');
3865 aso_debug_pub.add('Update_Quote_Total- l_hdr_currency_code: '||l_hdr_currency_code, 1, 'Y');
3866 aso_debug_pub.add('Update_Quote_Total- l_hdr_term_id: '||l_hdr_term_id, 1, 'Y');
3867 aso_debug_pub.add('Update_Quote_Total- P_Call_Ar_Api_Flag: '||P_Call_Ar_Api_Flag,1,'Y');
3868 END IF;
3869
3870 IF ((l_hdr_term_id is not null and l_hdr_term_id <> fnd_api.g_miss_num) and (P_Call_Ar_Api_Flag = fnd_api.g_true)) then
3871
3872 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3873 aso_debug_pub.add('Update_Quote_Total: before call to AR_VIEW_TERM_GRP.pay_now_amounts', 1, 'Y');
3874 END IF;
3875
3876 -- Call the AR API to get the amounts
3877 AR_VIEW_TERM_GRP.pay_now_amounts(
3878 p_api_version => 1.0,
3879 p_init_msg_list => FND_API.G_FALSE,
3880 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3881 p_term_id => l_hdr_term_id,
3882 p_currency_code => l_hdr_currency_code,
3883 p_line_amount => 0,
3884 p_tax_amount => 0,
3885 p_freight_amount => l_header_shipping_charge ,
3886 x_pay_now_line_amount => l_paynow_amount,
3887 x_pay_now_tax_amount => l_paynow_tax,
3888 x_pay_now_freight_amount => l_paynow_charges,
3889 x_pay_now_total_amount => l_paynow_total,
3890 X_Return_Status => x_return_status ,
3891 X_Msg_Count => x_msg_count ,
3892 X_Msg_Data => x_msg_data );
3893
3894 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3895 aso_debug_pub.add('Update_Quote_Total: After call to AR_VIEW_TERM_GRP.pay_now_amounts: x_return_status: '
3896 || x_return_status, 1, 'Y');
3897 END IF;
3898
3899 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3900
3901 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3902 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3903 FND_MESSAGE.Set_Token('API', 'AR_PayNow_Amounts', FALSE);
3904 FND_MSG_PUB.ADD;
3905 END IF;
3906
3907 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3908 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3909 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3910 RAISE FND_API.G_EXC_ERROR;
3911 END IF;
3912
3913 END IF;
3914
3915 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3916 aso_debug_pub.add('Update_Quote_Total- Output from AR_VIEW_TERM_GRP.pay_now_amounts follows: ', 1, 'Y');
3917 aso_debug_pub.add('Update_Quote_Total- l_paynow_amount: '||l_paynow_amount, 1, 'Y');
3918 aso_debug_pub.add('Update_Quote_Total- l_paynow_charges: '||l_paynow_charges, 1, 'Y');
3919 aso_debug_pub.add('Update_Quote_Total- l_paynow_tax: '||l_paynow_tax, 1, 'Y');
3920 aso_debug_pub.add('Update_Quote_Total- l_paynow_total: '||l_paynow_total, 1, 'Y');
3921 END IF;
3922
3923
3924 -- Update the corresponding columns in the header table
3925 -- this update has been commented out as the update for this column is done below
3926 /*update aso_quote_headers_all
3927 set header_paynow_charges = l_paynow_charges,
3928 last_updated_by = fnd_global.user_id,
3929 last_update_login = fnd_global.conc_login_id
3930 where quote_header_id = P_Qte_Header_id; */
3931
3932
3933 END IF; -- end if for payment trm id null check
3934
3935 END IF;
3936
3937 -- End of PNPL Changes
3938
3939 UPDATE ASO_QUOTE_HEADERS_ALL
3940 SET total_list_price = l_total_list_price,
3941 total_shipping_charge = l_total_shipping_charge,
3942 total_adjusted_amount = l_ln_total_discount,
3943 total_adjusted_percent = decode( l_total_list_price, 0, NULL,
3944 (l_ln_total_discount/l_total_list_price) * 100 ),
3945 total_quote_price = l_total_quote_price,
3946 total_tax = l_total_tax,
3947 header_paynow_charges = nvl(l_paynow_charges,header_paynow_charges),
3948 last_update_date = sysdate,
3949 last_updated_by = fnd_global.user_id,
3950 last_update_login = fnd_global.conc_login_id
3951 WHERE quote_header_id = p_qte_header_id;
3952
3953 IF SQL%ROWCOUNT = 0 THEN
3954
3955 x_return_status := fnd_api.g_ret_sts_error;
3956
3957 END IF;
3958
3959 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3960 aso_debug_pub.add('Update_quote_total: l_total_quote_price: '|| l_total_quote_price);
3961 aso_debug_pub.add('End of Update_quote_total');
3962 END IF;
3963
3964 END Update_Quote_Total;
3965
3966
3967
3968
3969 -- Hint: Primary key needs to be returned.
3970 PROCEDURE Create_quote(
3971 P_Api_Version_Number IN NUMBER,
3972 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
3973 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
3974 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3975 P_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_Miss_Control_Rec,
3976 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
3977 P_hd_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
3978 P_hd_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL,
3979 P_hd_Shipment_Rec IN ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC,
3980 P_hd_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl,
3981 P_hd_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl,
3982 P_hd_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL,
3983 P_hd_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
3984 P_hd_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
3985 P_Qte_Line_Tbl IN ASO_QUOTE_PUB.Qte_Line_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL,
3986 P_Qte_Line_Dtl_Tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL,
3987 P_Line_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL,
3988 P_line_rltship_tbl IN ASO_QUOTE_PUB.Line_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Rltship_Tbl,
3989 P_Price_Adjustment_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl,
3990 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
3991 P_Price_Adj_Rltship_Tbl IN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Adj_Rltship_Tbl,
3992 P_ln_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
3993 P_ln_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL,
3994 P_ln_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL,
3995 P_ln_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl,
3996 P_ln_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl,
3997 P_ln_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
3998 P_ln_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
3999 P_Qte_Access_Tbl IN ASO_QUOTE_PUB.Qte_Access_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_ACCESS_TBL,
4000 P_Template_Tbl IN ASO_QUOTE_PUB.Template_Tbl_Type := ASO_QUOTE_PUB.G_MISS_TEMPLATE_TBL,
4001 P_Related_Obj_Tbl IN ASO_QUOTE_PUB.Related_Obj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_RELATED_OBJ_TBL,
4002 x_Qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Rec_Type,
4003 X_Qte_Line_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
4004 X_Qte_Line_Dtl_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
4005 X_hd_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
4006 X_hd_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
4007 X_hd_Shipment_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Rec_Type,
4008 X_hd_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
4009 X_hd_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
4010 X_hd_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
4011 X_hd_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
4012 X_hd_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
4013 x_Line_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
4014 X_line_rltship_tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Rltship_Tbl_Type,
4015 X_Price_Adjustment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
4016 X_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
4017 X_Price_Adj_Rltship_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
4018 X_ln_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
4019 X_ln_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
4020 X_ln_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
4021 X_ln_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
4022 X_ln_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
4023 X_Ln_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
4024 X_Ln_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
4025 X_Qte_Access_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
4026 X_Template_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Template_Tbl_Type,
4027 X_Related_Obj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Related_Obj_Tbl_Type,
4028 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
4029 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
4030 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
4031 )
4032 IS
4033
4034 l_api_name CONSTANT VARCHAR2(30) := 'Create_quote';
4035 l_api_version_number CONSTANT NUMBER := 1.0;
4036 l_return_status_full VARCHAR2(1);
4037 l_return_status VARCHAR2(1);
4038 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
4039 lx_out_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type; --Nocopy changes
4040 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4041 l_qte_line_rec_out ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4042 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
4043 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
4044 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4045 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
4046 l_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
4047 l_ln_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
4048 l_ln_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
4049 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
4050 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
4051 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
4052 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
4053 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
4054 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
4055 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
4056 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4057 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4058 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4059 l_Price_Adj_Tbl_out ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
4060 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
4061 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
4062 l_Price_Adjustment_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type :=p_Price_Adjustment_Tbl;
4063 l_line_rltship_rec ASO_QUOTE_PUB.Line_Rltship_Rec_Type;
4064 l_price_adj_rltship_rec ASO_QUOTE_PUB.Price_Adj_Rltship_Rec_Type;
4065 l_pricing_control_rec ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE;
4066 --bug8235510
4067 lx_line_relationship_id number;
4068 l_shipment_id NUMBER;
4069 l_payment_id NUMBER;
4070 l_found VARCHAR2(1);
4071 l_calculate_freight_charge VARCHAR2(1) := 'Y';
4072 l_calculate_tax VARCHAR2(1) := 'Y';
4073 l_index NUMBER;
4074 l_index_2 NUMBER;
4075 line_index NUMBER;
4076 l_shp_index_link Index_Link_Tbl_Type;
4077 l_prc_index_link Index_Link_Tbl_Type;
4078 l_prc_index_link_rev Index_Link_Tbl_Type;
4079 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
4080 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
4081 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4082 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4083 l_control_rec ASO_QUOTE_PUB.Control_rec_type := p_control_rec;
4084 l_Tax_Control_Rec ASO_TAX_INT.Tax_Control_Rec_Type;
4085 x_tax_amount NUMBER;
4086 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC;
4087
4088 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
4089 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
4090
4091 l_price_updated_date_flag VARCHAR2(1) := fnd_api.g_false;
4092
4093 cursor c_last_update_date( p_qte_hdr_id number ) is
4094 select last_update_date
4095 from aso_quote_headers_all
4096 where quote_header_id = p_qte_hdr_id;
4097
4098 -- Code for Sales Team Assignment Changes
4099 CURSOR C_Check_Qte_Status (l_qte_hdr NUMBER) IS
4100 SELECT 'Y'
4101 FROM ASO_QUOTE_HEADERS_ALL A, ASO_QUOTE_STATUSES_B B
4102 WHERE A.Quote_Header_Id = l_qte_hdr
4103 AND A.Quote_Status_Id = B.Quote_Status_Id
4104 AND B.Status_Code = 'STORE DRAFT';
4105
4106 CURSOR C_Get_Quota_Credit_Type IS
4107 SELECT Sales_Credit_Type_Id
4108 FROM OE_SALES_CREDIT_TYPES
4109 WHERE Quota_Flag = 'Y';
4110
4111 Cursor c_obj_id(p_qte_header_id Number) IS
4112 Select object_id
4113 from aso_quote_related_objects
4114 where quote_object_id = p_qte_header_id
4115 and quote_object_type_code = 'HEADER'
4116 and relationship_type_code = 'OPP_QUOTE';
4117
4118 CURSOR c_tax_line(p_qte_header_id NUMBER, p_quote_line_id NUMBER) IS
4119 select nvl(sum(nvl(tax_amount, 0)),0) tax_amount
4120 FROM ASO_TAX_DETAILS
4121 WHERE quote_header_id = p_qte_header_id
4122 and quote_line_id = p_quote_line_id;
4123
4124 Cursor get_line_payment_term(p_qte_header_id NUMBER, p_quote_line_id NUMBER) IS
4125 SELECT payment_term_id
4126 FROM aso_payments
4127 WHERE quote_header_id = p_qte_header_id
4128 and quote_line_id = p_quote_line_id;
4129
4130 Cursor get_hdr_payment_term(p_qte_header_id NUMBER) IS
4131 SELECT payment_term_id
4132 FROM aso_payments
4133 WHERE quote_header_id = p_qte_header_id
4134 and quote_line_id IS NULL ;
4135
4136 Cursor get_line_qte_price( p_quote_line_id NUMBER) IS
4137 select line_quote_price,quantity
4138 from aso_quote_lines_all
4139 where quote_line_id = p_quote_line_id;
4140
4141 Cursor c_inv_org_id(l_main_org_id Number) IS
4142 select master_organization_id
4143 from oe_system_parameters
4144 where org_id = l_main_org_id;
4145
4146 l_quota_id NUMBER;
4147
4148 l_istore_source VARCHAR2(1) := 'N';
4149 l_sales_team_prof VARCHAR2(30) := FND_PROFILE.value('ASO_AUTO_TEAM_ASSIGN');
4150
4151 --New Code for to call overload pricing_order
4152 lv_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
4153 lx_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
4154 lx_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
4155 lv_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4156 lv_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
4157 lv_hd_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4158 lx_price_adj_rltship_tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
4159
4160 -- hyang defaulting framework
4161 l_def_control_rec ASO_DEFAULTING_INT.Control_Rec_Type := ASO_DEFAULTING_INT.G_MISS_CONTROL_REC;
4162 l_db_object_name VARCHAR2(30);
4163 l_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Shipment_REC;
4164 l_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Payment_REC;
4165 l_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type := ASO_QUOTE_PUB.G_MISS_Tax_Detail_REC;
4166 l_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type := ASO_DEFAULTING_INT.G_MISS_HEADER_MISC_REC;
4167 lx_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4168 lx_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
4169 lx_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
4170 lx_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type;
4171 lx_quote_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4172 lx_ln_misc_rec ASO_DEFAULTING_INT.Line_Misc_Rec_Type;
4173 lx_ln_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4174 lx_ln_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
4175 lx_ln_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
4176 lx_changed_flag VARCHAR2(1);
4177 l_hd_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
4178 l_hd_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
4179
4180 --Template changes
4181 l_template_tbl aso_quote_tmpl_int.list_template_tbl_type;
4182 l_qte_line_tbl aso_quote_pub.qte_line_tbl_type := p_qte_line_tbl;
4183 lx_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type := p_qte_line_dtl_tbl;
4184 l_count number;
4185
4186 l_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
4187 l_related_obj_id number;
4188 x_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
4189 l_obj_id number;
4190
4191 l_installment_option VARCHAR2(240);
4192 l_line_shipping_charge NUMBER;
4193 l_line_tax NUMBER;
4194 l_line_amount NUMBER;
4195 l_line_term_id NUMBER := NULL;
4196 l_paynow_amount NUMBER;
4197 l_paynow_tax NUMBER;
4198 l_paynow_charges NUMBER;
4199 l_paynow_total NUMBER;
4200 l_call_ar_api varchar2(1);
4201 l_line_quote_price NUMBER;
4202 l_quantity NUMBER;
4203 l_master_organization_id NUMBER;
4204
4205 -- bug 10261431
4206 l_top_model_line_id number;
4207 l_ato_line_id number;
4208
4209
4210 BEGIN
4211 -- Standard Start of API savepoint
4212 SAVEPOINT CREATE_quote_PVT;
4213
4214 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4215 aso_debug_pub.add('******************************************************', 1, 'Y');
4216 aso_debug_pub.add('Begin Create_Quote Procedure', 1, 'Y');
4217 aso_debug_pub.add('******************************************************', 1, 'Y');
4218 END IF;
4219
4220 -- Standard call to check for call compatibility.
4221 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
4222 p_api_version_number,
4223 l_api_name,
4224 G_PKG_NAME) THEN
4225
4226 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4227 END IF;
4228
4229
4230 -- Initialize message list if p_init_msg_list is set to TRUE.
4231 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4232 FND_MSG_PUB.initialize;
4233 END IF;
4234
4235 --Procedure added by Anoop Rajan on 30/09/2005 to print login details
4236 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4237 aso_debug_pub.add('Before call to printing login info details', 1, 'Y');
4238 ASO_UTILITY_PVT.print_login_info;
4239 aso_debug_pub.add('After call to printing login info details', 1, 'Y');
4240 END IF;
4241
4242 -- Change Done By Girish
4243 -- Procedure added to validate the operating unit
4244 ASO_VALIDATE_PVT.VALIDATE_OU(P_Qte_Header_Rec);
4245
4246 -- Initialize API return status to SUCCESS
4247 x_return_status := FND_API.G_RET_STS_SUCCESS;
4248
4249 --
4250 -- API body
4251 --
4252 l_control_rec.line_pricing_event := NULL;
4253 l_control_rec.calculate_tax_flag := NULL;
4254
4255 -- Validate Environment
4256
4257 IF FND_GLOBAL.User_Id IS NULL THEN
4258
4259 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4260 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
4261 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
4262 FND_MSG_PUB.ADD;
4263 END IF;
4264 RAISE FND_API.G_EXC_ERROR;
4265 END IF;
4266
4267 -- create Quote Header
4268
4269 l_index := 1;
4270
4271 FOR i IN 1..p_price_adjustment_tbl.count LOOP
4272
4273 IF p_price_adjustment_tbl(i).qte_line_index IS NULL OR
4274 p_price_adjustment_tbl(i).qte_line_index = FND_API.G_MISS_NUM THEN
4275
4276 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(i);
4277 l_prc_index_link(l_index) := i;
4278 l_prc_index_link_rev(i) := l_index;
4279 l_index := l_index + 1;
4280
4281 END IF;
4282
4283 END LOOP;
4284
4285 l_index := 1;
4286
4287 FOR i IN 1..p_price_adj_attr_tbl.count LOOP
4288
4289 IF p_price_adj_attr_tbl(i).price_adj_index <> FND_API.G_MISS_NUM
4290 AND l_prc_index_link_rev.exists(p_price_adj_attr_tbl(i).price_adj_index) THEN
4291
4292 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(i);
4293 l_price_adj_attr_tbl(l_index).price_adj_index := l_prc_index_link_rev(l_price_adj_attr_tbl(l_index).price_adj_index);
4294 l_index := l_index + 1;
4295
4296 END IF;
4297
4298 END LOOP;
4299
4300 IF Shipment_Rec_Exists(p_hd_shipment_rec) THEN
4301 l_hd_shipment_tbl(1) := p_hd_shipment_rec;
4302 END IF;
4303
4304 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4305 aso_debug_pub.add('Create_Quote: Before call to aso_input_param_debug.print_quote_input procedure', 1, 'Y');
4306
4307 ASO_INPUT_PARAM_DEBUG.Print_quote_input(
4308 P_Quote_Header_Rec => p_qte_header_rec
4309 , P_hd_Price_Attributes_Tbl => P_hd_Price_Attributes_Tbl
4310 , P_hd_Payment_Tbl => P_hd_Payment_Tbl
4311 , P_hd_Shipment_tbl => l_hd_Shipment_tbl
4312 , P_hd_Tax_Detail_Tbl => P_hd_Tax_Detail_Tbl
4313 , P_hd_Sales_Credit_Tbl => P_hd_Sales_Credit_Tbl
4314 , P_Qte_Line_Tbl => P_Qte_Line_Tbl
4315 , P_Qte_Line_Dtl_Tbl => P_Qte_Line_Dtl_Tbl
4316 , P_Price_Adjustment_Tbl => P_Price_Adjustment_Tbl
4317 , P_Ln_Price_Attributes_Tbl => P_Ln_Price_Attributes_Tbl
4318 , P_Ln_Payment_Tbl => P_Ln_Payment_Tbl
4319 , P_Ln_Shipment_Tbl => P_Ln_Shipment_Tbl
4320 , P_Ln_Tax_Detail_Tbl => P_Ln_Tax_Detail_Tbl
4321 , P_ln_Sales_Credit_Tbl => P_ln_Sales_Credit_Tbl
4322 , P_Qte_Access_Tbl => P_Qte_Access_Tbl);
4323
4324 aso_debug_pub.add('Create_Quote: After call to aso_input_param_debug.print_quote_input procedure', 1, 'Y');
4325 END IF ;
4326
4327 -- hyang defaulting framework begin
4328
4329 l_qte_header_rec := P_Qte_Header_Rec;
4330
4331 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4332 aso_debug_pub.add('Create_Quote - before defaulting framework', 1, 'Y');
4333 aso_debug_pub.add('Create_Quote - populate defaulting control record from the header control record', 1, 'Y');
4334 END IF ;
4335
4336 l_def_control_rec.Dependency_Flag := FND_API.G_FALSE;
4337 l_def_control_rec.Defaulting_Flag := l_control_rec.Defaulting_Flag;
4338 l_def_control_rec.Application_Type_Code := l_control_rec.Application_Type_Code;
4339 l_def_control_rec.Defaulting_Flow_Code := 'CREATE';
4340
4341 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4342 aso_debug_pub.add('Defaulting_Fwk_Flag - '||l_control_rec.Defaulting_Fwk_Flag, 1, 'Y');
4343 aso_debug_pub.add('Dependency_Flag - '||l_def_control_rec.Dependency_Flag, 1, 'Y');
4344 aso_debug_pub.add('Defaulting_Flag - '||l_def_control_rec.Defaulting_Flag, 1, 'Y');
4345 aso_debug_pub.add('Application_Type_Code - '||l_def_control_rec.Application_Type_Code, 1, 'Y');
4346 aso_debug_pub.add('Defaulting_Flow_Code - '||l_def_control_rec.Defaulting_Flow_Code, 1, 'Y');
4347 END IF ;
4348
4349 IF l_def_control_rec.application_type_code = 'QUOTING HTML' OR l_def_control_rec.application_type_code = 'QUOTING FORM' THEN
4350
4351 l_db_object_name := G_QUOTE_HEADER_DB_NAME;
4352
4353 ELSIF l_def_control_rec.application_type_code = 'ISTORE' THEN
4354 l_db_object_name := G_STORE_CART_HEADER_DB_NAME;
4355
4356 ELSE
4357 l_control_rec.Defaulting_Fwk_Flag := 'N';
4358 END IF;
4359
4360 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4361 aso_debug_pub.add('Create_Quote - Pick '||l_db_object_name ||' based on calling application '||l_def_control_rec.application_type_code, 1, 'Y');
4362 END IF ;
4363
4364 IF l_hd_shipment_tbl.count > 0 THEN
4365 l_hd_shipment_rec := l_hd_shipment_tbl(1);
4366 END IF;
4367
4368 IF p_hd_payment_tbl.count > 0 THEN
4369 l_hd_payment_rec := p_hd_payment_tbl(1);
4370 END IF;
4371
4372 IF p_hd_tax_detail_tbl.count > 0 THEN
4373 l_hd_tax_detail_rec := p_hd_tax_detail_tbl(1);
4374 END IF;
4375
4376 l_hd_payment_tbl := p_hd_payment_tbl;
4377 l_hd_tax_detail_tbl := p_hd_tax_detail_tbl;
4378
4379 -- In create quote, it never deaults any line level records.
4380 /* Removing Call for defaulting from create_quote
4381 IF l_control_rec.defaulting_fwk_flag = 'Y' THEN
4382
4383 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4384 aso_debug_pub.add('Create_Quote - Calling default_entity', 1, 'Y');
4385 END IF ;
4386
4387 ASO_DEFAULTING_INT.Default_Entity (
4388 p_api_version => 1.0
4389 , p_control_rec => l_def_control_rec
4390 , p_database_object_name => l_db_object_name
4391 , p_quote_header_rec => P_Qte_Header_Rec
4392 , p_header_misc_rec => l_hd_misc_rec
4393 , p_header_shipment_rec => l_hd_shipment_rec
4394 , p_header_payment_rec => l_hd_payment_rec
4395 , p_header_tax_detail_rec => l_hd_tax_detail_rec
4396 , x_quote_header_rec => l_qte_header_rec
4397 , x_header_misc_rec => lx_hd_misc_rec
4398 , x_header_shipment_rec => lx_hd_shipment_rec
4399 , x_header_payment_rec => lx_hd_payment_rec
4400 , x_header_tax_detail_rec => lx_hd_tax_detail_rec
4401 , x_quote_line_rec => lx_quote_line_rec
4402 , x_line_misc_rec => lx_ln_misc_rec
4403 , x_line_shipment_rec => lx_ln_shipment_rec
4404 , x_line_payment_rec => lx_ln_payment_rec
4405 , x_line_tax_detail_rec => lx_ln_tax_detail_rec
4406 , x_changed_flag => lx_changed_flag
4407 , x_return_status => x_return_status
4408 , x_msg_count => x_msg_count
4409 , x_msg_data => x_msg_data);
4410
4411 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4412
4413 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4414 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_DEFAULTING');
4415 FND_MSG_PUB.ADD;
4416 END IF;
4417
4418 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4419 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4420 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4421 RAISE FND_API.G_EXC_ERROR;
4422 END IF;
4423
4424 END IF;
4425
4426 IF Shipment_Null_Rec_Exists(lx_hd_shipment_rec, l_db_object_name) THEN
4427 l_hd_shipment_tbl(1) := lx_hd_shipment_rec;
4428 END IF;
4429
4430 IF Payment_Null_Rec_Exists(lx_hd_payment_rec, l_db_object_name) THEN
4431 l_hd_payment_tbl(1) := lx_hd_payment_rec;
4432 END IF;
4433
4434 IF Tax_Detail_Null_Rec_Exists(lx_hd_tax_detail_rec, l_db_object_name) THEN
4435 l_hd_tax_detail_tbl(1) := lx_hd_tax_detail_rec;
4436 END IF;
4437
4438 END IF;
4439 */
4440 -- hyang defaulting framework end
4441
4442
4443 -- validate header information
4444
4445 if aso_debug_pub.g_debug_flag = 'Y' then
4446 aso_debug_pub.add('Create_Quote: p_validation_level: ' || p_validation_level, 1, 'Y');
4447 end if;
4448
4449 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4450
4451 ASO_PARTY_INT.Validate_CustAccount (
4452 p_init_msg_list => FND_API.G_FALSE,
4453 p_party_id => l_qte_header_rec.party_id,
4454 p_cust_account_id => l_qte_header_rec.cust_account_id,
4455 x_return_status => x_return_status,
4456 x_msg_count => x_msg_count,
4457 x_msg_data => x_msg_data );
4458
4459 if aso_debug_pub.g_debug_flag = 'Y' then
4460 aso_debug_pub.add('Create_Quote: After call to validate_custaccount: x_return_status: ' || x_return_status, 1, 'Y');
4461 end if;
4462
4463 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4464 RAISE FND_API.G_EXC_ERROR;
4465 END IF;
4466
4467 ASO_VALIDATE_PVT.Validate_Quote_Exp_date(
4468 p_init_msg_list => FND_API.G_FALSE,
4469 p_quote_expiration_date => p_qte_header_rec.quote_expiration_date,
4470 x_return_status => x_return_status,
4471 x_msg_count => x_msg_count,
4472 x_msg_data => x_msg_data );
4473
4474 if aso_debug_pub.g_debug_flag = 'Y' then
4475 aso_debug_pub.add('Create_Quote: After call to Validate_Quote_Exp_date: x_return_status: ' || x_return_status, 1, 'Y');
4476 end if;
4477
4478 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4479
4480 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4481 FND_MESSAGE.Set_Name('ASO', 'ASO_API_EXPIRATION_DATE');
4482 FND_MSG_PUB.ADD;
4483 END IF;
4484 RAISE FND_API.G_EXC_ERROR;
4485 END IF;
4486
4487 -- price list must exist and be active in OE_PRICE_LISTS
4488 ASO_VALIDATE_PVT.Validate_PriceList (
4489 p_init_msg_list => FND_API.G_FALSE,
4490 p_price_list_id => l_qte_header_rec.price_list_id,
4491 x_return_status => x_return_status,
4492 x_msg_count => x_msg_count,
4493 x_msg_data => x_msg_data);
4494
4495 if aso_debug_pub.g_debug_flag = 'Y' then
4496 aso_debug_pub.add('Create_Quote: After call to Validate_PriceList: x_return_status: ' || x_return_status, 1, 'Y');
4497 end if;
4498
4499 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4500
4501 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4502 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
4503 FND_MESSAGE.Set_Token('COLUMN', 'PRICE_LIST_ID', FALSE);
4504 FND_MSG_PUB.ADD;
4505 END IF;
4506 RAISE FND_API.G_EXC_ERROR;
4507 END IF;
4508
4509 ASO_VALIDATE_PVT.Validate_Quote_Price_Exp(
4510 p_init_msg_list => FND_API.G_FALSE,
4511 p_price_list_id => l_qte_header_rec.price_list_id,
4512 p_quote_expiration_date => l_qte_header_rec.quote_expiration_date,
4513 x_return_status => x_return_status,
4514 x_msg_count => x_msg_count,
4515 x_msg_data => x_msg_data);
4516
4517 if aso_debug_pub.g_debug_flag = 'Y' then
4518 aso_debug_pub.add('Create_Quote: After call to Validate_Quote_Price_Exp: x_return_status: ' || x_return_status, 1, 'Y');
4519 end if;
4520
4521 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4522
4523 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4524 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
4525 FND_MESSAGE.Set_Token('COLUMN', 'Price List Expires Before Quote', FALSE);
4526 FND_MSG_PUB.ADD;
4527 END IF;
4528 RAISE FND_API.G_EXC_ERROR;
4529 END IF;
4530
4531 IF l_qte_header_rec.quote_status_id IS NOT NULL AND l_qte_header_rec.quote_status_id <> FND_API.G_MISS_NUM THEN
4532
4533 -- status must exist and be active in ASO_QUOTE_STATUSES
4534 ASO_VALIDATE_PVT.Validate_Quote_Status (
4535 p_init_msg_list => FND_API.G_FALSE,
4536 p_quote_status_id => l_qte_header_rec.quote_status_id,
4537 x_return_status => x_return_status,
4538 x_msg_count => x_msg_count,
4539 x_msg_data => x_msg_data);
4540
4541 if aso_debug_pub.g_debug_flag = 'Y' then
4542 aso_debug_pub.add('Create_Quote: After call to Validate_Quote_Status: x_return_status: ' || x_return_status, 1, 'Y');
4543 end if;
4544
4545 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4546
4547 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4548 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
4549 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_STATUS_ID', FALSE);
4550 FND_MSG_PUB.ADD;
4551 END IF;
4552 RAISE FND_API.G_EXC_ERROR;
4553 END IF;
4554
4555 END IF;
4556
4557 if aso_debug_pub.g_debug_flag = 'Y' then
4558 aso_debug_pub.add('Create_Quote: p_hd_sales_credit_tbl.count: ' || p_hd_sales_credit_tbl.count, 1, 'Y');
4559 end if;
4560
4561 FOR i in 1..p_hd_sales_credit_tbl.count LOOP
4562
4563 if aso_debug_pub.g_debug_flag = 'Y' then
4564 aso_debug_pub.add('p_hd_sales_credit_tbl('||i||').operation_code: '|| p_hd_sales_credit_tbl(i).operation_code,1,'Y');
4565 end if;
4566
4567 if (p_hd_sales_credit_tbl(i).operation_code = 'CREATE' or p_hd_sales_credit_tbl(i).operation_code = 'UPDATE') then
4568
4569 ASO_VALIDATE_PVT.Validate_Resource_id(
4570 p_init_msg_list => FND_API.G_FALSE,
4571 p_resource_id => p_hd_sales_credit_tbl(i).resource_id ,
4572 x_return_status => x_return_status,
4573 x_msg_count => x_msg_count,
4574 x_msg_data => x_msg_data);
4575
4576 if aso_debug_pub.g_debug_flag = 'Y' then
4577 aso_debug_pub.add('Create_Quote: After call to Validate_Resource_id: x_return_status: ' || x_return_status, 1, 'Y');
4578 end if;
4579
4580 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4581
4582 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4583 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_SALES_REP_ID');
4584 FND_MSG_PUB.ADD;
4585 END IF;
4586 RAISE FND_API.G_EXC_ERROR;
4587 END IF;
4588
4589 ASO_VALIDATE_PVT.Validate_Resource_group_id(
4590 p_init_msg_list => FND_API.G_FALSE,
4591 p_resource_group_id => p_hd_sales_credit_tbl(i).resource_group_id,
4592 x_return_status => x_return_status,
4593 x_msg_count => x_msg_count,
4594 x_msg_data => x_msg_data);
4595
4596 if aso_debug_pub.g_debug_flag = 'Y' then
4597 aso_debug_pub.add('Create_Quote: After call to Validate_Resource_group_id: x_return_status: ' || x_return_status, 1, 'Y');
4598 end if;
4599
4600 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4601 RAISE FND_API.G_EXC_ERROR;
4602 END IF;
4603
4604 ASO_VALIDATE_PVT.Validate_Salescredit_Type(
4605 p_init_msg_list => FND_API.G_FALSE,
4606 p_salescredit_type_id => p_hd_sales_credit_tbl(i).sales_credit_type_id,
4607 x_return_status => x_return_status,
4608 x_msg_count => x_msg_count,
4609 x_msg_data => x_msg_data);
4610
4611 if aso_debug_pub.g_debug_flag = 'Y' then
4612 aso_debug_pub.add('Create_Quote: After call to Validate_Salescredit_Type: x_return_status: ' || x_return_status, 1, 'Y');
4613 end if;
4614
4615 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4616 RAISE FND_API.G_EXC_ERROR;
4617 END IF;
4618
4619 ASO_VALIDATE_PVT.Validate_EmployPerson(
4620 p_init_msg_list => FND_API.G_FALSE,
4621 p_employee_id => p_hd_sales_credit_tbl(i).employee_person_id,
4622 x_return_status => x_return_status,
4623 x_msg_count => x_msg_count,
4624 x_msg_data => x_msg_data);
4625
4626 if aso_debug_pub.g_debug_flag = 'Y' then
4627 aso_debug_pub.add('Create_Quote: After call to Validate_EmployPerson: x_return_status: ' || x_return_status, 1, 'Y');
4628 end if;
4629
4630 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4631 RAISE FND_API.G_EXC_ERROR;
4632 END IF;
4633
4634 end if;
4635
4636 END LOOP;
4637
4638 if aso_debug_pub.g_debug_flag = 'Y' then
4639 aso_debug_pub.add('Create_Quote: p_hd_quote_party_tbl.count: ' || p_hd_quote_party_tbl.count, 1, 'Y');
4640 end if;
4641
4642 FOR i in 1..p_hd_quote_party_tbl.count LOOP
4643
4644 ASO_VALIDATE_PVT.Validate_Party_Type(
4645 p_init_msg_list => FND_API.G_FALSE,
4646 p_party_type => p_hd_quote_party_tbl(i).party_type,
4647 x_return_status => x_return_status,
4648 x_msg_count => x_msg_count,
4649 x_msg_data => x_msg_data);
4650
4651 if aso_debug_pub.g_debug_flag = 'Y' then
4652 aso_debug_pub.add('Create_Quote: After call to Validate_Party_Type: x_return_status: ' || x_return_status, 1, 'Y');
4653 end if;
4654
4655 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4656 RAISE FND_API.G_EXC_ERROR;
4657 END IF;
4658
4659 ASO_VALIDATE_PVT.Validate_Party(
4660 p_init_msg_list => FND_API.G_FALSE,
4661 p_party_id => p_hd_quote_party_tbl(i).party_id,
4662 p_party_usage => null,
4663 x_return_status => x_return_status,
4664 x_msg_count => x_msg_count,
4665 x_msg_data => x_msg_data);
4666
4667 if aso_debug_pub.g_debug_flag = 'Y' then
4668 aso_debug_pub.add('Create_Quote: After call to Validate_Party: x_return_status: ' || x_return_status, 1, 'Y');
4669 end if;
4670
4671 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4672 RAISE FND_API.G_EXC_ERROR;
4673 END IF;
4674
4675 ASO_VALIDATE_PVT.Validate_Party_Object_Type(
4676 p_init_msg_list => FND_API.G_FALSE,
4677 p_party_object_type => p_hd_quote_party_tbl(i).party_object_type,
4678 x_return_status => x_return_status,
4679 x_msg_count => x_msg_count,
4680 x_msg_data => x_msg_data);
4681
4682 if aso_debug_pub.g_debug_flag = 'Y' then
4683 aso_debug_pub.add('Create_Quote: After call to Validate_Party_Object_Type: x_return_status: ' || x_return_status, 1, 'Y');
4684 end if;
4685
4686 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4687 RAISE FND_API.G_EXC_ERROR;
4688 END IF;
4689
4690 END LOOP;
4691
4692
4693 ASO_VALIDATE_PVT.Validate_item_tca_bsc(
4694 p_init_msg_list => FND_API.G_FALSE,
4695 p_qte_header_rec => l_qte_header_rec,
4696 p_shipment_rec => lx_hd_shipment_rec,
4697 p_operation_code => 'CREATE',
4698 p_application_type_code => l_control_rec.application_type_code,
4699 x_return_status => x_return_status,
4700 x_msg_count => x_msg_count,
4701 x_msg_data => x_msg_data);
4702
4703 if aso_debug_pub.g_debug_flag = 'Y' then
4704 aso_debug_pub.add('Create_Quote: After call to Validate_item_tca_bsc: x_return_status: ' || x_return_status, 1, 'Y');
4705 end if;
4706
4707 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4708 RAISE FND_API.G_EXC_ERROR;
4709 END IF;
4710
4711 ASO_VALIDATE_PVT.Validate_Resource_id(
4712 p_init_msg_list => FND_API.G_FALSE,
4713 p_resource_id => l_qte_header_rec.resource_id,
4714 x_return_status => x_return_status,
4715 x_msg_count => x_msg_count,
4716 x_msg_data => x_msg_data);
4717
4718 if aso_debug_pub.g_debug_flag = 'Y' then
4719 aso_debug_pub.add('Create_Quote: After call to Validate_Resource_id: x_return_status: ' || x_return_status, 1, 'Y');
4720 end if;
4721
4722 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4723 RAISE FND_API.G_EXC_ERROR;
4724 END IF;
4725
4726 END IF; --IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4727
4728
4729 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4730 aso_debug_pub.add('Create_Quote: Before call to Populate_Qte_Header', 1, 'Y');
4731 END IF;
4732
4733
4734 Populate_Qte_Header( p_qte_header_rec => l_qte_header_rec,
4735 p_Control_Rec => l_control_rec,
4736 x_qte_header_rec => lx_out_qte_header_rec);
4737
4738 l_qte_header_rec := lx_out_qte_header_rec;
4739
4740 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4741 aso_debug_pub.add('Create_Quote: After call to Populate_Qte_Header', 1, 'Y');
4742 END IF;
4743
4744
4745 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4746
4747 IF l_hd_shipment_tbl.count > 0 THEN
4748 l_shipment_rec := l_hd_shipment_tbl(1);
4749 END IF;
4750
4751 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4752 aso_debug_pub.add('Create_Quote: Before call to Validate_record_tca_crs', 1, 'N');
4753 END IF;
4754
4755 ASO_VALIDATE_PVT.Validate_record_tca_crs(
4756 p_init_msg_list => FND_API.G_FALSE,
4757 p_qte_header_rec => l_qte_header_rec,
4758 p_shipment_rec => l_shipment_rec,
4759 p_operation_code => 'CREATE',
4760 p_application_type_code => l_control_rec.application_type_code,
4761 x_return_status => x_return_status,
4762 x_msg_count => x_msg_count,
4763 x_msg_data => x_msg_data);
4764
4765 if aso_debug_pub.g_debug_flag = 'Y' then
4766 aso_debug_pub.add('Create_Quote: After call to Validate_record_tca_crs: x_return_status: ' || x_return_status, 1, 'Y');
4767 end if;
4768
4769 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4770 RAISE FND_API.G_EXC_ERROR;
4771 END IF;
4772
4773 -- bug 5196952 validate the ship method code
4774 IF (l_shipment_rec.ship_method_code is not null and l_shipment_rec.ship_method_code <> fnd_api.g_miss_char and l_shipment_rec.operation_code = 'CREATE') then
4775
4776 -- get the master org id from the quote hdr org id
4777 OPEN c_inv_org_id(l_qte_header_rec.org_id);
4778 FETCH c_inv_org_id into l_master_organization_id;
4779 CLOSE c_inv_org_id;
4780
4781 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4782 aso_debug_pub.add('Create_Quote - l_master_organization_id: '|| l_master_organization_id, 1, 'N');
4783 aso_debug_pub.add('Create_Quote - l_qte_header_rec.org_id: '|| l_qte_header_rec.org_id, 1, 'N');
4784 aso_debug_pub.add('Create_Quote - before validate ship_method_code ', 1, 'N');
4785 end if;
4786 ASO_VALIDATE_PVT.validate_ship_method_code
4787 (
4788 p_init_msg_list => fnd_api.g_false,
4789 p_qte_header_id => l_qte_header_rec.quote_header_id,
4790 p_qte_line_id => fnd_api.g_miss_num,
4791 p_organization_id => l_master_organization_id,
4792 p_ship_method_code => l_shipment_rec.ship_method_code,
4793 p_operation_code => 'CREATE',
4794 x_return_status => x_return_status,
4795 x_msg_count => x_msg_count,
4796 x_msg_data => x_msg_data);
4797
4798 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4799 aso_debug_pub.add('Create_Quote - After validate ship_method_code ', 1, 'N');
4800 end if;
4801
4802 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4803 RAISE FND_API.G_EXC_ERROR;
4804 END IF;
4805 end if; -- end if for ship method code check
4806
4807 END IF; --IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4808
4809
4810 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4811 aso_debug_pub.add('Create_Quote: Before call to check_tca', 1, 'N');
4812 END IF;
4813
4814 ASO_CHECK_TCA_PVT.check_tca( p_api_version => 1.0,
4815 p_init_msg_list => FND_API.G_FALSE,
4816 P_Qte_Rec => l_qte_header_rec,
4817 p_Header_Shipment_Tbl => l_hd_Shipment_Tbl,
4818 P_Operation_Code => 'CREATE',
4819 p_application_type_code => l_control_rec.application_type_code,
4820 x_return_status => x_return_status,
4821 x_msg_count => x_msg_count,
4822 x_msg_data => x_msg_data);
4823
4824 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4825 aso_debug_pub.add('Create_Quote: After call to check_tca: x_return_status: ' || x_return_status, 1, 'Y');
4826 END IF;
4827
4828 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4829 RAISE FND_API.G_EXC_ERROR;
4830 END IF;
4831
4832 -- order_type must exist and be active in OE_ORDER_TYPES
4833 ASO_TRADEIN_PVT.OrderType( p_init_msg_list => FND_API.G_FALSE,
4834 p_qte_header_rec => l_qte_header_rec,
4835 x_return_status => x_return_status,
4836 x_msg_count => x_msg_count,
4837 x_msg_data => x_msg_data);
4838
4839 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4840 RAISE FND_API.G_EXC_ERROR;
4841 END IF;
4842
4843 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4844 aso_debug_pub.add('Create_Quote: After call to OrderType: x_return_status: ' || x_return_status, 1, 'Y');
4845 END IF;
4846
4847 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD THEN
4848
4849
4850 ASO_VALIDATE_PVT.Validate_NotNULL_VARCHAR2 (
4851 p_init_msg_list => FND_API.G_FALSE,
4852 p_column_name => 'CURRENCY_CODE',
4853 p_notnull_column => l_qte_header_rec.currency_code,
4854 x_return_status => x_return_status,
4855 x_msg_count => x_msg_count,
4856 x_msg_data => x_msg_data);
4857
4858 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4859 aso_debug_pub.add('Create_Quote: After call to Validate_NotNULL_VARCHAR2: x_return_status: ' || x_return_status, 1, 'Y');
4860 END IF;
4861
4862 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4863 RAISE FND_API.G_EXC_ERROR;
4864 END IF;
4865
4866 ASO_VALIDATE_PVT.Validate_NotNULL_VARCHAR2 (
4867 p_init_msg_list => FND_API.G_FALSE,
4868 p_column_name => 'SOURCE_CODE',
4869 p_notnull_column => l_qte_header_rec.quote_source_code,
4870 x_return_status => x_return_status,
4871 x_msg_count => x_msg_count,
4872 x_msg_data => x_msg_data );
4873
4874 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4875 aso_debug_pub.add('Create_Quote: After call to Validate_NotNULL_VARCHAR2: x_return_status: ' || x_return_status, 1, 'Y');
4876 END IF;
4877
4878 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4879
4880 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4881 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
4882 FND_MESSAGE.Set_Token('COLUMN', 'SOURCE_CODE', FALSE);
4883 FND_MSG_PUB.ADD;
4884 END IF;
4885 RAISE FND_API.G_EXC_ERROR;
4886 END IF;
4887
4888 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4889 aso_debug_pub.add('Create_Quote: Before validate_tax_exemption ', 1, 'N');
4890 END IF;
4891
4892 -- tax_exempt_flag must be in 'E', 'R' and 'S'
4893 -- and tax_exempt_reason_code must exist if tax_exempt_flag is 'E'.
4894
4895 FOR i IN 1..l_hd_tax_detail_tbl.count LOOP
4896
4897 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
4898 p_init_msg_list => FND_API.G_FALSE,
4899 p_tax_exempt_flag => l_hd_tax_detail_tbl(i).tax_exempt_flag,
4900 p_tax_exempt_reason_code => l_hd_tax_detail_tbl(i).tax_exempt_reason_code,
4901 x_return_status => x_return_status,
4902 x_msg_count => x_msg_count,
4903 x_msg_data => x_msg_data );
4904
4905 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4906 aso_debug_pub.add('Create_Quote: After call to Validate_Tax_Exemption: x_return_status: ' || x_return_status, 1, 'Y');
4907 END IF;
4908
4909 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4910
4911 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4912 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
4913 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
4914 FND_MSG_PUB.ADD;
4915 END IF;
4916 RAISE FND_API.G_EXC_ERROR;
4917 END IF;
4918
4919 END LOOP;
4920
4921 FOR i IN 1..p_ln_tax_detail_tbl.count LOOP
4922
4923 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
4924 p_init_msg_list => FND_API.G_FALSE,
4925 p_tax_exempt_flag => p_ln_tax_detail_tbl(i).tax_exempt_flag,
4926 p_tax_exempt_reason_code => p_ln_tax_detail_tbl(i).tax_exempt_reason_code,
4927 x_return_status => x_return_status,
4928 x_msg_count => x_msg_count,
4929 x_msg_data => x_msg_data );
4930
4931 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4932 aso_debug_pub.add('Create_Quote: After call to Validate_Tax_Exemption: x_return_status: ' || x_return_status, 1, 'Y');
4933 END IF;
4934
4935 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4936
4937 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4938 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
4939 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
4940 FND_MSG_PUB.ADD;
4941 END IF;
4942 RAISE FND_API.G_EXC_ERROR;
4943 END IF;
4944
4945 END LOOP;
4946
4947 FOR i in 1..p_hd_quote_party_tbl.count LOOP
4948
4949 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4950 aso_debug_pub.add('Create_Quote: Before call to Validate_Party_Object_Id', 1, 'N');
4951 END IF;
4952
4953 ASO_VALIDATE_PVT.Validate_Party_Object_Id(
4954 p_init_msg_list => FND_API.G_FALSE,
4955 p_party_id => p_hd_quote_party_tbl(i).party_id,
4956 p_party_object_type => p_hd_quote_party_tbl(i).party_object_type,
4957 p_party_object_id => p_hd_quote_party_tbl(i).party_object_id,
4958 x_return_status => x_return_status,
4959 x_msg_count => x_msg_count,
4960 x_msg_data => x_msg_data);
4961
4962 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4963 aso_debug_pub.add('Create_Quote: After call to Validate_Party_Object_Id: x_return_status: ' || x_return_status, 1, 'Y');
4964 END IF;
4965
4966 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4967
4968 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4969 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
4970 FND_MESSAGE.Set_Token('INFO', 'PARTY OBJECT ID', FALSE);
4971 FND_MSG_PUB.ADD;
4972 END IF;
4973 RAISE FND_API.G_EXC_ERROR;
4974 END IF;
4975
4976 END LOOP;
4977
4978 ASO_VALIDATE_PVT.Validate_Emp_Res_id(
4979 p_init_msg_list => FND_API.G_FALSE,
4980 p_resource_id => p_qte_header_rec.resource_id,
4981 p_employee_person_id => p_qte_header_rec.employee_person_id ,
4982 x_return_status => x_return_status,
4983 x_msg_count => x_msg_count,
4984 x_msg_data => x_msg_data );
4985
4986 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4987 aso_debug_pub.add('Create_Quote: After call to Validate_Emp_Res_id: x_return_status: ' || x_return_status, 1, 'Y');
4988 END IF;
4989
4990 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4991 RAISE FND_API.G_EXC_ERROR;
4992 END IF;
4993
4994 END IF; --IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD THEN
4995
4996
4997 IF (FND_PROFILE.Value('ASO_ENABLE_SPLIT_PAYMENT') = 'N') THEN
4998
4999 IF l_hd_payment_tbl.count > 1 THEN
5000
5001 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5002 FND_MESSAGE.Set_Name('ASO', 'ASO_API_SPLIT_PAYMENT');
5003 FND_MSG_PUB.ADD;
5004 END IF;
5005 RAISE FND_API.G_EXC_ERROR;
5006
5007 ELSIF l_hd_payment_tbl.count = 1 THEN
5008
5009 IF l_hd_payment_tbl(1).payment_option = 'SPLIT' THEN
5010
5011 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5012 FND_MESSAGE.Set_Name('ASO', 'ASO_API_SPLIT_PAYMENT');
5013 FND_MSG_PUB.ADD;
5014 END IF;
5015 RAISE FND_API.G_EXC_ERROR;
5016 END IF;
5017
5018 END IF;
5019
5020 END IF;
5021
5022 IF (FND_PROFILE.Value('ASO_ENABLE_SPLIT_PAYMENT') = 'Y') THEN
5023
5024 IF l_hd_payment_tbl.count > 1 THEN
5025
5026 FOR i IN 1..l_hd_payment_tbl.count LOOP
5027
5028 IF l_hd_payment_tbl(i).payment_option <> 'SPLIT' THEN
5029
5030 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5031 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_PAYMENTS');
5032 FND_MSG_PUB.ADD;
5033 END IF;
5034 RAISE FND_API.G_EXC_ERROR;
5035 END IF;
5036
5037 END LOOP;
5038 END IF;
5039 END IF;
5040
5041 IF l_hd_tax_detail_tbl.count > 1 THEN
5042
5043 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5044 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_TAX_RECORDS');
5045 FND_MSG_PUB.ADD;
5046 END IF;
5047 RAISE FND_API.G_EXC_ERROR;
5048 END IF;
5049
5050 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5051 aso_debug_pub.add('Create_Quote: Before Validate_Agreement:l_qte_header_rec.contract_id: '||l_qte_header_rec.contract_id, 1, 'N');
5052 END IF;
5053
5054 IF (l_qte_header_rec.contract_id IS NOT NULL AND
5055 l_qte_header_rec.contract_id <> FND_API.G_MISS_NUM) THEN
5056
5057 ASO_VALIDATE_PVT.Validate_Agreement(
5058 p_init_msg_list => FND_API.G_FALSE,
5059 P_Agreement_Id => l_qte_header_rec.contract_id,
5060 x_return_status => x_return_status,
5061 x_msg_count => x_msg_count,
5062 x_msg_data => x_msg_data);
5063
5064 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5065 aso_debug_pub.add('Create_Quote: After call to Validate_Agreement: x_return_status: '||x_return_status, 1, 'N');
5066 END IF;
5067
5068 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
5069 RAISE FND_API.G_EXC_ERROR;
5070 END IF;
5071 END IF;
5072
5073 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5074 aso_debug_pub.add('Create_Quote: p_qte_header_rec.minisite_id: '|| p_qte_header_rec.minisite_id);
5075 END IF;
5076
5077 IF (p_qte_header_rec.minisite_id IS NOT NULL AND
5078 p_qte_header_rec.minisite_id <> FND_API.G_MISS_NUM) THEN
5079
5080 ASO_VALIDATE_PVT.Validate_MiniSite( p_init_msg_list => FND_API.G_FALSE,
5081 p_minisite_id => p_qte_header_rec.minisite_id,
5082 x_return_status => x_return_status,
5083 x_msg_count => x_msg_count,
5084 x_msg_data => x_msg_data);
5085
5086 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5087 aso_debug_pub.add('Create_Quote: After call to ASO_VALIDATE_PVT.Validate_MiniSite');
5088 aso_debug_pub.add('Create_Quote: x_return_status: '|| x_return_status);
5089 END IF;
5090
5091 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5092 RAISE FND_API.G_EXC_ERROR;
5093 END IF;
5094
5095 END IF;
5096
5097 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5098 aso_debug_pub.add('Create_Quote: Before call to insert_rows', 1, 'Y');
5099 END IF;
5100
5101 Insert_Rows (
5102 p_qte_header_rec => l_qte_header_rec,
5103 p_Price_Attributes_Tbl => p_hd_price_attributes_tbl,
5104 P_Price_Adjustment_Tbl => l_price_adj_tbl,
5105 P_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl,
5106 P_Payment_Tbl => l_hd_payment_tbl,
5107 P_Shipment_tbl => l_hd_shipment_tbl,
5108 P_Freight_Charge_Tbl => p_hd_freight_charge_tbl,
5109 P_Tax_Detail_Tbl => l_hd_tax_detail_tbl,
5110 P_hd_Attr_Ext_Tbl => P_hd_Attr_Ext_Tbl,
5111 P_sales_credit_tbl => p_hd_sales_credit_tbl,
5112 P_quote_party_tbl => p_hd_quote_party_tbl,
5113 P_Qte_Access_Tbl => P_Qte_Access_Tbl,
5114 x_qte_header_rec => x_qte_header_rec,
5115 x_Price_Attributes_Tbl => x_hd_price_attributes_tbl,
5116 x_Price_Adjustment_Tbl => l_price_adj_tbl_out,
5117 x_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl_out,
5118 x_Payment_Tbl => x_hd_payment_tbl,
5119 x_Shipment_rec => x_hd_shipment_rec,
5120 x_Freight_Charge_Tbl => x_hd_freight_charge_tbl,
5121 x_Tax_Detail_Tbl => x_hd_tax_detail_tbl,
5122 x_hd_Attr_Ext_Tbl => x_hd_Attr_Ext_Tbl,
5123 x_sales_credit_tbl => x_hd_sales_credit_tbl,
5124 x_quote_party_tbl => x_hd_quote_party_tbl,
5125 x_Qte_Access_Tbl => x_Qte_Access_Tbl,
5126 X_Return_Status => l_return_status,
5127 X_Msg_Count => x_msg_count,
5128 X_Msg_Data => x_msg_data);
5129
5130 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5131 aso_debug_pub.add('Create_Quote: After call to Insert_Rows: x_return_status: '||x_return_status, 1, 'N');
5132 END IF;
5133
5134 l_price_adj_tbl := l_price_adj_tbl_out;
5135 l_price_adj_attr_tbl := l_price_adj_attr_tbl_out;
5136
5137
5138 -- Add template rows to p_qte_line_tbl and p_qte_line_dtl tbales
5139
5140 if aso_debug_pub.g_debug_flag = 'Y' then
5141 aso_debug_pub.add('Create_Quote: p_template_tbl.count: ' || p_template_tbl.count, 1, 'Y');
5142 end if;
5143
5144 if p_template_tbl.count > 0 then
5145
5146 for i in 1..p_template_tbl.count loop
5147 l_template_tbl(i) := p_template_tbl(i).template_id;
5148 end loop;
5149
5150 if aso_debug_pub.g_debug_flag = 'Y' then
5151 aso_debug_pub.add('Create_Quote: l_template_tbl.count: ' || l_template_tbl.count, 1, 'Y');
5152 aso_debug_pub.add('Create_Quote: x_qte_header_rec.currency_code: ' || x_qte_header_rec.currency_code, 1, 'Y');
5153 aso_debug_pub.add('Create_Quote: x_qte_header_rec.price_list_id: ' || x_qte_header_rec.price_list_id, 1, 'Y');
5154 aso_debug_pub.add('Create_Quote: Before call to aso_quote_templ_pvt.add_template_to_quote procedure', 1, 'Y');
5155 end if;
5156
5157 aso_quote_tmpl_pvt.add_template_to_quote(
5158 p_api_version_number => 1.0,
5159 p_init_msg_list => fnd_api.g_false,
5160 p_commit => fnd_api.g_false,
5161 p_validation_level => p_validation_level,
5162 p_update_flag => 'N',
5163 p_template_id_tbl => l_template_tbl,
5164 p_qte_header_rec => x_qte_header_rec,
5165 p_control_rec => p_control_rec,
5166 x_qte_line_tbl => lx_qte_line_tbl,
5167 x_qte_line_dtl_tbl => x_qte_line_dtl_tbl,
5168 x_return_status => x_return_status,
5169 x_msg_count => x_msg_count,
5170 x_msg_data => x_msg_data
5171 );
5172
5173
5174 if aso_debug_pub.g_debug_flag = 'Y' then
5175
5176 aso_debug_pub.add('Create_Quote: After call to aso_quote_templ_pvt.add_template_to_quote: x_return_status: '|| x_return_status, 1, 'Y');
5177 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl.count: ' || lx_qte_line_tbl.count, 1, 'Y');
5178 aso_debug_pub.add('Create_Quote: x_qte_line_dtl_tbl.count: ' || x_qte_line_dtl_tbl.count, 1, 'Y');
5179
5180 for i in 1 .. lx_qte_line_tbl.count loop
5181 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl('||i||').inventory_item_id: '|| lx_qte_line_tbl(i).inventory_item_id, 1, 'N');
5182 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl('||i||').uom_code: '|| lx_qte_line_tbl(i).uom_code, 1, 'N');
5183 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl('||i||').quantity: '|| lx_qte_line_tbl(i).quantity, 1, 'N');
5184 end loop;
5185
5186 for i in 1 .. x_qte_line_dtl_tbl.count loop
5187
5188 aso_debug_pub.add('Create_Quote: x_qte_line_dtl_tbl('||i||').qte_line_index: '|| x_qte_line_dtl_tbl(i).qte_line_index, 1, 'N');
5189 aso_debug_pub.add('Create_Quote: x_qte_line_dtl_tbl('||i||').ref_line_index: '|| x_qte_line_dtl_tbl(i).ref_line_index, 1, 'N');
5190 aso_debug_pub.add('Create_Quote: x_qte_line_dtl_tbl('||i||').service_ref_qte_line_index: '|| x_qte_line_dtl_tbl(i).service_ref_qte_line_index, 1, 'N');
5191 aso_debug_pub.add('Create_Quote: x_qte_line_dtl_tbl('||i||').service_ref_line_id: '|| x_qte_line_dtl_tbl(i).service_ref_line_id, 1, 'N');
5192
5193 end loop;
5194
5195 end if;
5196
5197
5198 if lx_qte_line_tbl.count > 0 then
5199
5200 l_qte_line_dtl_tbl_out := x_qte_line_dtl_tbl;
5201
5202 for i in 1 .. lx_qte_line_tbl.count loop
5203
5204 l_count := l_qte_line_tbl.count;
5205
5206 l_qte_line_tbl(l_count + 1) := lx_qte_line_tbl(i);
5207
5208 for j in 1 .. x_qte_line_dtl_tbl.count loop
5209
5210 if x_qte_line_dtl_tbl(j).qte_line_index = i then
5211 l_qte_line_dtl_tbl_out(j).qte_line_index := l_count + 1;
5212 end if;
5213
5214 if x_qte_line_dtl_tbl(j).ref_line_index = i then
5215 l_qte_line_dtl_tbl_out(j).ref_line_index := l_count + 1;
5216 end if;
5217
5218 if x_qte_line_dtl_tbl(j).service_ref_qte_line_index = i then
5219 l_qte_line_dtl_tbl_out(j).service_ref_qte_line_index := l_count + 1;
5220 end if;
5221
5222 if x_qte_line_dtl_tbl(j).top_model_line_index = i then
5223 l_qte_line_dtl_tbl_out(j).top_model_line_index := l_count + 1;
5224 end if;
5225
5226 if x_qte_line_dtl_tbl(j).ato_line_index = i then
5227 l_qte_line_dtl_tbl_out(j).ato_line_index := l_count + 1;
5228 end if;
5229
5230 end loop;
5231
5232 end loop;
5233
5234 if l_qte_line_dtl_tbl_out.count > 0 then
5235
5236 for i in 1 .. l_qte_line_dtl_tbl_out.count loop
5237 lx_qte_line_dtl_tbl(lx_qte_line_dtl_tbl.count + 1) := l_qte_line_dtl_tbl_out(i);
5238 end loop;
5239
5240 end if;
5241
5242 end if; -- if lx_qte_line_tbl.count > 0 then
5243
5244 end if; --if p_template_tbl.count > 0 then
5245
5246
5247 if aso_debug_pub.g_debug_flag = 'Y' then
5248
5249 aso_debug_pub.add('Create_Quote: l_qte_line_tbl.count: ' || l_qte_line_tbl.count, 1, 'Y');
5250 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl.count: ' || lx_qte_line_dtl_tbl.count, 1, 'Y');
5251
5252 for i in 1 .. l_qte_line_tbl.count loop
5253 aso_debug_pub.add('Create_Quote: l_qte_line_tbl('||i||').inventory_item_id: '|| l_qte_line_tbl(i).inventory_item_id, 1, 'N');
5254 aso_debug_pub.add('Create_Quote: l_qte_line_tbl('||i||').uom_code: '|| l_qte_line_tbl(i).uom_code, 1, 'N');
5255 aso_debug_pub.add('Create_Quote: l_qte_line_tbl('||i||').quantity: '|| l_qte_line_tbl(i).quantity, 1, 'N');
5256 end loop;
5257
5258 for i in 1 .. lx_qte_line_dtl_tbl.count loop
5259
5260 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl('||i||').qte_line_index: '|| lx_qte_line_dtl_tbl(i).qte_line_index, 1, 'N');
5261 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl('||i||').ref_line_index: '|| lx_qte_line_dtl_tbl(i).ref_line_index, 1, 'N');
5262 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl('||i||').service_ref_qte_line_index: '|| lx_qte_line_dtl_tbl(i).service_ref_qte_line_index, 1, 'N');
5263 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl('||i||').service_ref_line_id: '|| lx_qte_line_dtl_tbl(i).service_ref_line_id, 1, 'N');
5264 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl('||i||').ato_line_index: '|| lx_qte_line_dtl_tbl(i).ato_line_index, 1, 'N');
5265 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl('||i||').ato_line_id: '|| lx_qte_line_dtl_tbl(i).ato_line_id, 1, 'N');
5266 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl('||i||').top_model_line_index: '|| lx_qte_line_dtl_tbl(i).top_model_line_index, 1, 'N');
5267 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl('||i||').top_model_line_id: '|| lx_qte_line_dtl_tbl(i).top_model_line_id, 1, 'N');
5268
5269 end loop;
5270
5271 end if;
5272
5273 -- End of Add template rows
5274
5275
5276 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5277 aso_debug_pub.add('Create_Quote: value of ASO_API_ENABLE_SECURITY: ' || FND_PROFILE.Value('ASO_API_ENABLE_SECURITY'), 1, 'Y');
5278 aso_debug_pub.add('Create_Quote: Before Assign_Team: l_sales_team_prof: ' || l_sales_team_prof, 1, 'Y');
5279 aso_debug_pub.add('Create_Quote: value of p_qte_header_rec.quote_type: ' || p_qte_header_rec.quote_type, 1, 'Y');
5280 END IF;
5281
5282 IF (NVL(FND_PROFILE.Value('ASO_API_ENABLE_SECURITY'),'N') = 'Y' AND NVL(p_qte_header_rec.quote_type, 'X') <> 'T') THEN
5283
5284 lx_qte_header_rec := x_qte_header_rec;
5285
5286 OPEN C_Check_Qte_Status (x_qte_header_rec.quote_header_id);
5287 FETCH C_Check_Qte_Status INTO l_istore_source;
5288 CLOSE C_Check_Qte_Status;
5289
5290 IF l_sales_team_prof = 'FULL' OR l_sales_team_prof = 'PARTIAL' THEN
5291
5292 IF p_control_rec.quote_source <> 'OPP_QUOTE' THEN
5293
5294 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5295 aso_debug_pub.add('Create_Quote: Before Assign_Team: p_control_rec.quote_source: ' || p_control_rec.quote_source, 1, 'Y');
5296 aso_debug_pub.add('Create_Quote: Before Assign_Team: l_istore_source: ' || l_istore_source, 1, 'Y');
5297 END IF;
5298
5299 IF l_istore_source <> 'Y' THEN
5300
5301 ASO_SALES_TEAM_PVT.Assign_Sales_Team (
5302 P_Init_Msg_List => FND_API.G_FALSE,
5303 P_Commit => FND_API.G_FALSE,
5304 p_Qte_Header_Rec => x_qte_header_rec,
5305 P_Operation => 'CREATE',
5306 x_Qte_Header_Rec => lx_qte_header_rec,
5307 x_return_status => x_return_status,
5308 x_msg_count => x_msg_count,
5309 x_msg_data => x_msg_data );
5310
5311 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5312 aso_debug_pub.add('Create_Quote: After call to Assign_Sales_Team: x_return_status: '||x_return_status, 1, 'N');
5313 END IF;
5314
5315 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5316 RAISE FND_API.G_EXC_ERROR;
5317 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5318 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5319 END IF;
5320
5321 END IF; --istore
5322
5323 ELSE -- opp_quote
5324
5325 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5326 aso_debug_pub.add('Create_Quote: Before Opp_Quote_Primary_SalesRep: p_control_rec.quote_source: ' || p_control_rec.quote_source, 1, 'Y');
5327 END IF;
5328
5329 ASO_SALES_TEAM_PVT.Opp_Quote_Primary_SalesRep (
5330 P_Init_Msg_List => FND_API.G_FALSE,
5331 p_Qte_Header_Rec => x_qte_header_rec,
5332 x_Qte_Header_Rec => lx_qte_header_rec,
5333 x_return_status => x_return_status,
5334 x_msg_count => x_msg_count,
5335 x_msg_data => x_msg_data );
5336
5337 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5338 aso_debug_pub.add('Create_Quote: After call to Opp_Quote_Primary_SalesRep: x_return_status: '||x_return_status, 1, 'N');
5339 END IF;
5340
5341 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5342 RAISE FND_API.G_EXC_ERROR;
5343 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5344 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5345 END IF;
5346
5347 END IF; -- opp_quote
5348
5349 ELSE -- prof = NONE
5350
5351 ASO_SECURITY_INT.Add_SalesRep_QuoteCreator (
5352 p_init_msg_list => FND_API.G_FALSE,
5353 p_commit => FND_API.G_FALSE,
5354 p_Qte_Header_Rec => x_qte_header_rec,
5355 x_return_status => x_return_status,
5356 x_msg_count => x_msg_count,
5357 x_msg_data => x_msg_data );
5358
5359 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5360 aso_debug_pub.add('Create_Quote: After call to Add_SalesRep_QuoteCreator: x_return_status: '||x_return_status, 1, 'N');
5361 END IF;
5362
5363 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5364 RAISE FND_API.G_EXC_ERROR;
5365 END IF;
5366
5367 open c_last_update_date(x_qte_header_rec.quote_header_id);
5368 fetch c_last_update_date into x_qte_header_rec.last_update_date;
5369 close c_last_update_date;
5370
5371 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
5372
5373 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5374 aso_debug_pub.add('Create_Quote: After call to Add_SalesRep_QuoteCreator');
5375 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
5376 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
5377 END IF;
5378
5379 END IF; -- prof
5380
5381 if aso_debug_pub.g_debug_flag = 'Y' then
5382 aso_debug_pub.add('Create_Quote: x_hd_sales_credit_tbl.count: '|| x_hd_sales_credit_tbl.count);
5383 end if;
5384
5385 IF x_hd_sales_credit_tbl.count < 1 AND l_istore_source <> 'Y' THEN
5386
5387 OPEN C_Get_Quota_Credit_Type;
5388 FETCH C_Get_Quota_Credit_Type INTO l_quota_id;
5389 CLOSE C_Get_Quota_Credit_Type;
5390
5391 if aso_debug_pub.g_debug_flag = 'Y' then
5392 aso_debug_pub.add('Create_Quote: l_quota_id: '|| l_quota_id);
5393 end if;
5394
5395 x_hd_sales_credit_tbl(1) := ASO_QUOTE_PUB.G_MISS_SALES_CREDIT_REC;
5396
5397 if aso_debug_pub.g_debug_flag = 'Y' then
5398 aso_debug_pub.add('Create_Quote: After assigning x_hd_sales_credit_tbl.count: '|| x_hd_sales_credit_tbl.count);
5399 end if;
5400
5401 ASO_SALES_CREDITS_PKG.Insert_Row(
5402 p_CREATION_DATE => SYSDATE,
5403 p_CREATED_BY => G_USER_ID,
5404 p_LAST_UPDATED_BY => G_USER_ID,
5405 p_LAST_UPDATE_DATE => SYSDATE,
5406 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
5407 p_REQUEST_ID => FND_API.G_MISS_NUM,
5408 p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM,
5409 p_PROGRAM_ID => FND_API.G_MISS_NUM,
5410 p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE,
5411 px_SALES_CREDIT_ID => x_hd_sales_credit_tbl(1).Sales_Credit_Id,
5412 p_QUOTE_HEADER_ID => lx_qte_header_rec.QUOTE_HEADER_ID,
5413 p_QUOTE_LINE_ID => FND_API.G_MISS_NUM,
5414 p_PERCENT => 100,
5415 p_RESOURCE_ID => lx_qte_header_rec.RESOURCE_ID,
5416 p_RESOURCE_GROUP_ID => lx_qte_header_rec.RESOURCE_GRP_ID,
5417 p_EMPLOYEE_PERSON_ID => FND_API.G_MISS_NUM,
5418 p_SALES_CREDIT_TYPE_ID => l_quota_id,
5419 p_ATTRIBUTE_CATEGORY_CODE => FND_API.G_MISS_CHAR,
5420 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
5421 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
5422 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
5423 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
5424 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
5425 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
5426 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
5427 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
5428 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
5429 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
5430 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
5431 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
5432 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
5433 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
5434 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
5435 p_ATTRIBUTE16 => FND_API.G_MISS_CHAR,
5436 p_ATTRIBUTE17 => FND_API.G_MISS_CHAR,
5437 p_ATTRIBUTE18 => FND_API.G_MISS_CHAR,
5438 p_ATTRIBUTE19 => FND_API.G_MISS_CHAR,
5439 p_ATTRIBUTE20 => FND_API.G_MISS_CHAR,
5440 p_SYSTEM_ASSIGNED_FLAG => 'N',
5441 p_CREDIT_RULE_ID => FND_API.G_MISS_NUM,
5442 p_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM );
5443
5444 if aso_debug_pub.g_debug_flag = 'Y' then
5445 aso_debug_pub.add('Create_Quote: After call to Insert_Row Sales_Credit_Id: '|| x_hd_sales_credit_tbl(1).Sales_Credit_Id);
5446 end if;
5447
5448 END IF; -- sales_cred_tbl.count
5449
5450 END IF; -- Enable API Security Prof
5451
5452 -- end security changes
5453
5454 -- changes for quote related objects
5455
5456 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5457 aso_debug_pub.add('Before creating object relationship ', 1, 'Y');
5458 END IF;
5459
5460 IF P_Related_Obj_Tbl.count > 0 THEN
5461
5462 For i in 1..P_Related_Obj_Tbl.count LOOP
5463
5464 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5465 aso_debug_pub.add('Inside the related object loop ', 1, 'Y');
5466 END IF;
5467
5468 l_related_obj_rec := P_Related_Obj_Tbl(i);
5469
5470 -- logic to populate the operation code
5471 Open c_obj_id(x_qte_header_rec.quote_header_id);
5472 Fetch c_obj_id INTO l_obj_id;
5473 IF c_obj_id%NOTFOUND THEN
5474 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5475 aso_debug_pub.add(' Setting the operation code for rel obj tbl ', 1, 'Y');
5476 aso_debug_pub.add(' Obj id in rel obj rec is : '|| to_char(l_related_obj_rec.object_id), 1, 'Y');
5477 END IF;
5478 IF l_related_obj_rec.object_id IS NOT NULL THEN
5479 l_related_obj_rec.operation_code := 'CREATE';
5480 END IF;
5481 END IF;
5482 Close c_obj_id;
5483
5484 IF l_related_obj_rec.operation_code = 'CREATE' THEN
5485 l_related_obj_rec.quote_object_id := x_qte_header_rec.quote_header_id;
5486 x_related_obj_rec := l_related_obj_rec;
5487
5488 ASO_RLTSHIP_PUB.Create_Object_Relationship(
5489 P_Api_Version_Number => 1.0,
5490 P_Init_Msg_List => FND_API.G_FALSE,
5491 P_Commit => FND_API.G_FALSE,
5492 p_validation_level => p_validation_level,
5493 P_RELATED_OBJ_Rec => l_related_obj_rec,
5494 X_related_object_id => x_related_obj_rec.related_object_id,
5495 X_Return_Status => X_Return_Status,
5496 X_Msg_Count => X_Msg_Count,
5497 X_Msg_Data => X_Msg_Data);
5498
5499 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5500 aso_debug_pub.add('Create_Quote: After call to Create_Object_Relationship: x_return_status: '||x_return_status, 1, 'N');
5501 END IF;
5502
5503 X_Related_Obj_Tbl(i) := x_related_obj_rec;
5504
5505 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5506 RAISE FND_API.G_EXC_ERROR;
5507 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5508 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5509 END IF;
5510 END IF;
5511
5512 END LOOP;
5513
5514
5515 END IF;
5516
5517 -- end of Rel Obj changes
5518
5519
5520 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5521 aso_debug_pub.add('Before validate quote percent: p_validation_level: '|| p_validation_level, 1, 'Y');
5522 END IF;
5523
5524 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
5525
5526 IF x_hd_sales_credit_tbl.count > 0 THEN
5527
5528 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5529 aso_debug_pub.add('Setting the qte hdr id in x_hd_sales_credit_tbl to : '|| x_qte_header_rec.QUOTE_HEADER_ID, 1, 'Y');
5530 END IF;
5531
5532 x_hd_sales_credit_tbl(1).quote_header_id := x_qte_header_rec.QUOTE_HEADER_ID;
5533
5534 ASO_VALIDATE_PVT.Validate_Quote_Percent(
5535 p_init_msg_list => FND_API.G_FALSE,
5536 p_sales_credit_tbl => x_hd_sales_credit_tbl,
5537 x_return_status => x_return_status,
5538 x_msg_count => x_msg_count,
5539 x_msg_data => x_msg_data);
5540
5541 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5542 aso_debug_pub.add('Create_Quote: After call to Validate_Quote_Percent: x_return_status: '|| x_return_status, 1, 'N');
5543 END IF;
5544
5545 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5546 RAISE FND_API.G_EXC_ERROR;
5547 END IF;
5548 END IF;
5549
5550 END IF;
5551
5552 l_index := X_Price_Adjustment_tbl.count + 1;
5553
5554 FOR i IN 1.. l_Price_Adj_tbl.count LOOP
5555 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(i);
5556 l_index := l_index + 1;
5557 END LOOP;
5558
5559 FOR j IN 1..l_prc_index_link.count LOOP
5560 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id := l_price_adj_tbl(j).price_adjustment_id;
5561 END LOOP;
5562
5563 l_index := X_Price_Adj_Attr_tbl.count + 1;
5564
5565 FOR i IN 1.. l_Price_Adj_Attr_tbl.count LOOP
5566 x_Price_Adj_Attr_tbl(l_index) := l_Price_Adj_Attr_tbl(i);
5567 l_index := l_index + 1;
5568 END LOOP;
5569
5570 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
5571
5572 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5573
5574 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5575 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
5576 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER INSERT ROW', TRUE);
5577 FND_MSG_PUB.ADD;
5578 END IF;
5579 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5580
5581 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
5582 x_return_status := FND_API.G_RET_STS_ERROR;
5583 END IF;
5584
5585 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5586 aso_debug_pub.add('Create_Quote - l_qte_line_tbl.count: '||l_qte_line_tbl.count, 1, 'N');
5587 END IF;
5588
5589 FOR i IN 1 .. l_qte_line_tbl.count LOOP
5590
5591 l_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
5592 l_index := 1;
5593
5594 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
5595
5596 IF lx_qte_line_dtl_tbl(j).qte_line_index = i THEN
5597
5598 l_qte_line_dtl_tbl(l_index) := lx_qte_line_dtl_tbl(j);
5599 l_index := l_index + 1;
5600 END IF;
5601 END LOOP;
5602
5603 l_price_attr_tbl := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl;
5604 l_index := 1;
5605
5606 FOR j IN 1..p_ln_price_attributes_tbl.count LOOP
5607
5608 IF p_ln_price_attributes_tbl(j).qte_line_index = i THEN
5609 l_price_attr_tbl(l_index) := p_ln_price_attributes_tbl(j);
5610 END IF;
5611
5612 END LOOP;
5613
5614 l_ln_shipment_tbl := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL;
5615 l_shp_index_link := G_Miss_Link_Tbl;
5616 l_index := 1;
5617
5618 FOR j IN 1..p_ln_shipment_tbl.count LOOP
5619
5620 IF p_ln_shipment_tbl(j).qte_line_index = i THEN
5621 l_ln_shipment_tbl(l_index) := p_ln_shipment_tbl(j);
5622 l_shp_index_link(j) := l_index;
5623 l_index := l_index+1;
5624 END IF;
5625
5626 END LOOP;
5627
5628 l_freight_charge_tbl := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl;
5629 l_index := 1;
5630
5631 FOR j IN 1..p_ln_freight_charge_tbl.count LOOP
5632
5633 IF p_ln_freight_charge_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5634 p_ln_freight_charge_tbl(j).shipment_index IS NOT NULL AND
5635 l_shp_index_link.EXISTS(p_ln_freight_charge_tbl(j).shipment_index) THEN
5636
5637 l_freight_charge_tbl(l_index) := p_ln_freight_charge_tbl(j);
5638 l_freight_charge_tbl(l_index).shipment_index :=
5639 l_shp_index_link(p_ln_freight_charge_tbl(j).shipment_index);
5640 l_index := l_index+1;
5641 END IF;
5642 END LOOP;
5643
5644 l_line_attr_ext_tbl := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL;
5645 l_index := 1;
5646
5647 FOR j IN 1..p_line_attr_ext_tbl.count LOOP
5648
5649 IF p_line_attr_ext_tbl(j).qte_line_index = i THEN
5650
5651 l_line_attr_ext_tbl(l_index) := p_line_attr_ext_tbl(j);
5652 l_line_attr_ext_tbl(l_index).quote_header_id := x_qte_header_rec.quote_header_id;
5653
5654 IF p_line_attr_ext_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5655 p_line_attr_ext_tbl(j).shipment_index IS NOT NULL AND
5656 l_shp_index_link.EXISTS(p_line_attr_ext_tbl(j).shipment_index) THEN
5657
5658 l_line_attr_ext_tbl(l_index).shipment_index := l_shp_index_link(p_line_attr_ext_tbl(j).shipment_index);
5659 END IF;
5660
5661 l_index := l_index + 1;
5662 END IF;
5663
5664 END LOOP;
5665
5666 l_payment_tbl := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL;
5667 l_index := 1;
5668
5669 FOR j IN 1..p_ln_payment_tbl.count LOOP
5670
5671 IF p_ln_payment_tbl(j).qte_line_index = i THEN
5672
5673 l_payment_tbl(l_index) := p_ln_payment_tbl(j);
5674
5675 IF p_ln_payment_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5676 p_ln_payment_tbl(j).shipment_index IS NOT NULL AND
5677 l_shp_index_link.EXISTS(p_ln_payment_tbl(j).shipment_index) THEN
5678
5679 l_payment_tbl(l_index).shipment_index := l_shp_index_link(p_ln_payment_tbl(j).shipment_index);
5680 END IF;
5681
5682 l_index := l_index +1;
5683 END IF;
5684
5685 END LOOP;
5686
5687 l_price_adj_tbl := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl;
5688 l_prc_index_link := G_Miss_Link_Tbl;
5689 l_prc_index_link_rev := G_Miss_Link_Tbl;
5690 l_index := 1;
5691
5692 FOR j IN 1..p_price_adjustment_tbl.count LOOP
5693
5694 IF p_price_adjustment_tbl(j).qte_line_index = i THEN
5695
5696 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(j);
5697 l_prc_index_link(l_index) := j;
5698 l_prc_index_link_rev(i) := l_index;
5699
5700 IF p_price_adjustment_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5701 p_price_adjustment_tbl(j).shipment_index IS NOT NULL AND
5702 l_shp_index_link.EXISTS(p_price_adjustment_tbl(j).shipment_index) THEN
5703
5704 l_price_adj_tbl(l_index).shipment_index := l_shp_index_link(p_price_adjustment_tbl(j).shipment_index);
5705 END IF;
5706 l_index := l_index + 1;
5707 END IF;
5708 END LOOP;
5709
5710 l_price_adj_attr_tbl := ASO_QUOTE_PUB.G_Miss_Price_Adj_Attr_Tbl;
5711 l_index := 1;
5712
5713 FOR j IN 1..p_price_adj_attr_tbl.count LOOP
5714
5715 IF p_price_adj_attr_tbl(j).price_adj_index <> FND_API.G_MISS_NUM AND
5716 l_prc_index_link_rev.exists(p_price_adj_attr_tbl(j).price_adj_index) THEN
5717
5718 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(j);
5719 l_price_adj_attr_tbl(l_index).price_adj_index :=
5720 l_prc_index_link_rev(l_price_adj_attr_tbl(l_index).price_adj_index);
5721 l_index := l_index + 1;
5722 END IF;
5723
5724 END LOOP;
5725
5726 l_tax_detail_tbl := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl;
5727 l_index := 1;
5728
5729 FOR j IN 1..p_ln_tax_detail_tbl.count LOOP
5730
5731 IF p_ln_tax_detail_tbl(j).qte_line_index = i THEN
5732
5733 l_tax_detail_tbl(l_index) := p_ln_tax_detail_tbl(j);
5734
5735 IF p_ln_tax_detail_tbl(j).shipment_index <> FND_API.G_MISS_NUM
5736 AND l_shp_index_link.EXISTS(p_ln_tax_detail_tbl(j).shipment_index)
5737 AND p_ln_tax_detail_tbl(l_index).shipment_index IS NOT NULL THEN
5738
5739 l_tax_detail_tbl(l_index).shipment_index := l_shp_index_link(p_ln_tax_detail_tbl(j).shipment_index);
5740 END IF;
5741 l_index := l_index+1;
5742 END IF;
5743
5744 END LOOP;
5745
5746 l_sales_credit_tbl := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl;
5747
5748 l_index := 1;
5749 FOR j IN 1..p_ln_sales_credit_tbl.count LOOP
5750
5751 IF p_ln_sales_credit_tbl(j).qte_line_index = i THEN
5752
5753 l_sales_credit_tbl(l_index) := p_ln_sales_credit_tbl(j);
5754 l_index := l_index +1;
5755 END IF;
5756
5757 END LOOP;
5758
5759 l_quote_party_tbl := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl;
5760 l_index := 1;
5761
5762 FOR j IN 1..p_ln_quote_party_tbl.count LOOP
5763
5764 IF p_ln_quote_party_tbl(j).qte_line_index = i THEN
5765
5766 l_quote_party_tbl(l_index) := p_ln_quote_party_tbl(j);
5767
5768 IF p_ln_quote_party_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5769 p_ln_quote_party_tbl(j).shipment_index IS NOT NULL AND
5770 l_shp_index_link.EXISTS(p_ln_quote_party_tbl(j).shipment_index) THEN
5771
5772 l_quote_party_tbl(l_index).shipment_index := l_shp_index_link(p_ln_quote_party_tbl(j).shipment_index);
5773 END IF;
5774
5775 l_index := l_index +1;
5776
5777 END IF;
5778 END LOOP;
5779
5780 l_qte_line_rec := l_qte_line_tbl(i);
5781 l_qte_line_rec.quote_header_id := x_qte_header_rec.quote_header_id;
5782
5783 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5784 aso_debug_pub.add('Create_Quote - before Validate_Commitment ', 1, 'N');
5785 END IF;
5786
5787 ASO_VALIDATE_PVT.Validate_Commitment(
5788 P_Init_Msg_List => FND_API.G_FALSE,
5789 P_Qte_Header_Rec => x_qte_header_rec,
5790 P_Qte_Line_Rec => l_qte_line_rec,
5791 X_Return_Status => l_return_status,
5792 X_Msg_Count => x_msg_count,
5793 X_Msg_Data => x_msg_data);
5794
5795 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5796 aso_debug_pub.add('Create_Quote - after Validate_Commitment: l_return_status: '||l_return_status, 1, 'N');
5797 END IF;
5798
5799 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5800 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5801 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5802 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5803 x_return_status := FND_API.G_RET_STS_ERROR;
5804 RAISE FND_API.G_EXC_ERROR;
5805 END IF;
5806
5807 open c_last_update_date(x_qte_header_rec.quote_header_id);
5808 fetch c_last_update_date into l_control_rec.last_update_date;
5809 close c_last_update_date;
5810
5811 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5812 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
5813 aso_debug_pub.add('Create_Quote: Before call to create_quote_lines', 1, 'Y');
5814 END IF;
5815
5816 ASO_QUOTE_LINES_PVT.Create_Quote_Lines (
5817 P_Api_Version_Number => 1.0,
5818 p_validation_level => p_validation_level,
5819 p_control_rec => l_control_rec,
5820 p_update_header_flag => FND_API.G_FALSE,
5821 p_qte_header_rec => p_qte_header_rec,
5822 P_qte_Line_Rec => l_qte_line_rec,
5823 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
5824 P_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl,
5825 P_price_attributes_tbl => l_price_attr_tbl,
5826 P_Price_Adj_Tbl => l_price_adj_tbl,
5827 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
5828 P_Payment_Tbl => l_payment_tbl,
5829 P_Shipment_Tbl => l_ln_shipment_tbl,
5830 P_Freight_Charge_Tbl => l_freight_charge_tbl,
5831 P_Tax_Detail_Tbl => l_tax_detail_tbl,
5832 P_quote_party_tbl => l_quote_party_tbl ,
5833 P_sales_Credit_tbl => l_sales_Credit_tbl ,
5834 x_qte_Line_Rec => l_qte_line_rec_out,
5835 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
5836 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
5837 x_price_attributes_tbl => l_price_attr_tbl_out,
5838 x_Price_Adj_Tbl => l_price_adj_tbl_out,
5839 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
5840 x_Payment_Tbl => l_payment_tbl_out,
5841 x_Shipment_Tbl => l_ln_shipment_tbl_out,
5842 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
5843 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
5844 X_quote_party_tbl => l_quote_party_tbl_out ,
5845 X_sales_Credit_tbl => l_sales_Credit_tbl_out ,
5846 X_Return_Status => l_return_status,
5847 X_Msg_Count => x_msg_count,
5848 X_Msg_Data => x_msg_data );
5849
5850 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5851 aso_debug_pub.add('Create_Quote: After call to create_quote_lines: l_return_status: '|| l_return_status, 1, 'Y');
5852 END IF;
5853
5854 l_qte_line_rec := l_qte_line_rec_out;
5855 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
5856 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
5857 l_price_attr_tbl := l_price_attr_tbl_out;
5858 l_price_adj_tbl := l_price_adj_tbl_out;
5859 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
5860 l_payment_tbl := l_payment_tbl_out;
5861 l_ln_shipment_tbl := l_ln_shipment_tbl_out;
5862 l_freight_charge_tbl := l_freight_charge_tbl_out;
5863 l_tax_detail_tbl := l_tax_detail_tbl_out;
5864 l_quote_party_tbl := l_quote_party_tbl_out;
5865 l_sales_Credit_tbl := l_sales_Credit_tbl_out;
5866
5867 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
5868
5869 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5870 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5871 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
5872 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER CREATE LINES', FALSE);
5873 FND_MSG_PUB.ADD;
5874 END IF;
5875 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5876
5877 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
5878
5879 x_return_status := FND_API.G_RET_STS_ERROR;
5880 RAISE FND_API.G_EXC_ERROR;
5881 END IF;
5882
5883 open c_last_update_date(x_qte_header_rec.quote_header_id);
5884 fetch c_last_update_date into x_qte_header_rec.last_update_date;
5885 close c_last_update_date;
5886
5887 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
5888
5889 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5890 aso_debug_pub.add('Create_Quote: After call to Create_Quote_Lines');
5891 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
5892 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
5893 END IF;
5894
5895 For j IN 1..lx_qte_line_dtl_tbl.count LOOP
5896 IF lx_qte_line_dtl_tbl(j).SERVICE_REF_QTE_LINE_INDEX = i THEN
5897 lx_qte_line_dtl_tbl(j).SERVICE_REF_LINE_ID := l_qte_line_rec.quote_line_id;
5898 END IF;
5899 END LOOP;
5900
5901 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
5902 IF lx_qte_line_dtl_tbl(j).REF_LINE_INDEX = i THEN
5903 lx_qte_line_dtl_tbl(j).REF_LINE_ID := l_qte_line_rec.quote_line_id;
5904 END IF;
5905 END LOOP;
5906
5907 -- P1 bug 10261431
5908 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
5909 IF lx_qte_line_dtl_tbl(j).TOP_MODEL_LINE_INDEX = i THEN
5910 lx_qte_line_dtl_tbl(j).TOP_MODEL_LINE_ID := l_qte_line_rec.quote_line_id;
5911 l_top_model_line_id:= l_qte_line_rec.quote_line_id;
5912 END IF;
5913 END LOOP;
5914
5915 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
5916 IF lx_qte_line_dtl_tbl(j).ATO_LINE_INDEX = i THEN
5917 lx_qte_line_dtl_tbl(j).ATO_LINE_ID := l_qte_line_rec.quote_line_id;
5918 l_ato_line_id:= l_qte_line_rec.quote_line_id; -- P1 bug 10261431
5919 END IF;
5920 END LOOP;
5921
5922 -- P1 bug 10261431
5923 if (l_qte_line_rec.item_type_code='MDL') and (i=1) then
5924 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5925 aso_debug_pub.add('Create_Quote: After call to Create_Quote_Lines updating the data for MDL line');
5926 end if;
5927 update aso_quote_line_details
5928 set top_model_line_id=l_top_model_line_id,ato_line_id=l_ato_line_id
5929 where quote_line_id=l_qte_line_rec.quote_line_id;
5930 end if;
5931
5932 X_Qte_Line_Tbl(x_qte_line_tbl.count+1) := l_qte_line_rec;
5933 l_index := X_Qte_Line_Dtl_Tbl.count+1;
5934
5935 FOR j IN 1.. l_qte_line_dtl_tbl.count LOOP
5936 x_qte_line_dtl_tbl(l_index) := l_qte_line_dtl_tbl(j);
5937 l_index := l_index+1;
5938 END LOOP;
5939
5940 l_index := X_Line_Attr_Ext_Tbl.count+1;
5941
5942 FOR j IN 1.. l_Line_Attr_Ext_tbl.count LOOP
5943 x_Line_Attr_Ext_tbl(l_index) := l_Line_Attr_Ext_tbl(j);
5944 l_index := l_index+1;
5945 END LOOP;
5946
5947 l_index := X_LN_Price_Attributes_Tbl.count+1;
5948
5949 FOR j IN 1.. l_Price_Attr_tbl.count LOOP
5950 x_ln_Price_Attributes_tbl(l_index) := l_Price_Attr_tbl(j);
5951 l_index := l_index+1;
5952 END LOOP;
5953
5954 l_index := X_Price_Adjustment_tbl.count+1;
5955
5956 FOR j IN 1.. l_Price_Adj_tbl.count LOOP
5957 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(j);
5958 l_index := l_index+1;
5959 END LOOP;
5960
5961 l_index := X_LN_payment_Tbl.count+1;
5962
5963 FOR j IN 1.. l_payment_tbl.count LOOP
5964 x_ln_payment_tbl(l_index) := l_payment_tbl(j);
5965 l_index := l_index+1;
5966 END LOOP;
5967
5968 l_index := X_LN_shipment_Tbl.count+1;
5969
5970 FOR j IN 1.. l_ln_shipment_tbl.count LOOP
5971 x_ln_shipment_tbl(l_index) := l_ln_shipment_tbl(j);
5972 l_index := l_index+1;
5973 END LOOP;
5974
5975 l_index := X_LN_freight_charge_Tbl.count+1;
5976 FOR j IN 1.. l_freight_charge_tbl.count LOOP
5977 x_ln_freight_charge_tbl(l_index) := l_freight_charge_tbl(j);
5978 l_index := l_index+1;
5979 END LOOP;
5980
5981 l_index := X_LN_tax_detail_Tbl.count+1;
5982 FOR j IN 1.. l_tax_detail_tbl.count LOOP
5983 x_ln_tax_detail_tbl(l_index) := l_tax_detail_tbl(j);
5984 l_index := l_index+1;
5985 END LOOP;
5986
5987 l_index := X_ln_sales_Credit_Tbl.count+1;
5988
5989 FOR j IN 1.. l_sales_Credit_tbl.count LOOP
5990 x_ln_sales_Credit_tbl(l_index) := l_sales_Credit_tbl(j);
5991 l_index := l_index+1;
5992 END LOOP;
5993
5994 l_index := X_ln_quote_party_Tbl.count+1;
5995
5996 FOR j IN 1.. l_quote_party_tbl.count LOOP
5997 x_ln_quote_party_tbl(l_index) := l_quote_party_tbl(j);
5998 l_index := l_index+1;
5999 END LOOP;
6000
6001 FOR j IN 1..l_prc_index_link.count LOOP
6002 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id := l_price_adj_tbl(j).price_adjustment_id;
6003 END LOOP;
6004
6005 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6006
6007 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6008 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6009 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
6010 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
6011 FND_MSG_PUB.ADD;
6012 END IF;
6013 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6014
6015 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
6016 x_return_status := FND_API.G_RET_STS_ERROR;
6017 END IF;
6018
6019 END LOOP;
6020
6021 -- create price adj relationships.
6022 FOR i IN 1..p_price_adj_rltship_tbl.count LOOP
6023
6024 l_price_adj_rltship_rec := p_price_adj_rltship_tbl(i);
6025 l_index := p_price_adj_rltship_tbl(i).qte_line_index;
6026 l_price_adj_rltship_rec.quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
6027 l_index := p_price_adj_rltship_tbl(i).price_adj_index;
6028 l_price_adj_rltship_rec.price_adjustment_id := l_price_adjustment_tbl(l_index).price_adjustment_id;
6029 l_index := p_price_adj_rltship_tbl(i).rltd_price_adj_index;
6030 l_price_adj_rltship_rec.rltd_price_adj_id := l_price_adjustment_tbl(l_index).price_adjustment_id;
6031
6032 ASO_PRICE_RLTSHIPS_PKG.Insert_Row(
6033 px_ADJ_RELATIONSHIP_ID => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID,
6034 p_creation_date => sysdate,
6035 p_CREATED_BY => G_USER_ID,
6036 p_LAST_UPDATE_DATE => sysdate,
6037 p_LAST_UPDATED_BY => G_USER_ID,
6038 p_LAST_UPDATE_LOGIN => G_USER_ID,
6039 p_PROGRAM_APPLICATION_ID => l_price_adj_rltship_rec.PROGRAM_APPLICATION_ID,
6040 p_PROGRAM_ID => l_price_adj_rltship_rec.PROGRAM_ID,
6041 p_PROGRAM_UPDATE_DATE => l_price_adj_rltship_rec.PROGRAM_UPDATE_DATE,
6042 p_REQUEST_ID => l_price_adj_rltship_rec.REQUEST_ID,
6043 p_QUOTE_LINE_ID => l_price_adj_rltship_rec.quote_line_id,
6044 p_PRICE_ADJUSTMENT_ID => l_price_adj_rltship_rec.price_adjustment_id,
6045 p_RLTD_PRICE_ADJ_ID => l_price_adj_rltship_rec.rltd_price_adj_id,
6046 p_QUOTE_SHIPMENT_ID => l_price_adj_rltship_rec.quote_shipment_id,
6047 p_OBJECT_VERSION_NUMBER => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER );
6048
6049 X_Price_Adj_Rltship_Tbl(i) := l_price_adj_rltship_rec;
6050
6051 END LOOP;
6052 --bug8235510 starts here
6053 for i in 1 ..x_qte_line_dtl_tbl.count
6054 loop
6055 aso_debug_pub.add('x_qte_line_dtl_tbl.quot_line_id' || x_qte_line_dtl_tbl(i).quote_line_id);
6056 aso_debug_pub.add('x_qte_line_dtl_tbl.quot_line_detail_id' || x_qte_line_dtl_tbl(i).quote_line_detail_id);
6057 aso_debug_pub.add('x_qte_line_dtl_tbl.ref_line_id' || x_qte_line_dtl_tbl(i).ref_line_id);
6058 end loop;
6059 --vidya
6060 FOR i in 1..x_qte_line_tbl.count LOOP
6061 l_line_rltship_rec := ASO_QUOTE_PUB.G_Miss_Line_Rltship_Rec;
6062 x_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(x_qte_line_tbl(i).quote_line_id);
6063 IF x_qte_line_dtl_tbl.count > 0 THEN
6064 IF x_qte_line_dtl_tbl(1).ref_line_id IS NOT NULL AND x_qte_line_dtl_tbl(1).ref_line_id <> FND_API.G_MISS_NUM THEN
6065 l_line_rltship_rec.OPERATION_CODE := 'CREATE';
6066 l_line_rltship_rec.QUOTE_LINE_ID := x_qte_line_dtl_tbl(1).ref_line_id;
6067 l_line_rltship_rec.RELATED_QUOTE_LINE_ID := x_qte_line_dtl_tbl(1).quote_line_id;
6068 l_line_rltship_rec.RELATIONSHIP_TYPE_CODE := 'CONFIG';
6069
6070 ASO_LINE_RLTSHIP_PVT.Create_Line_Rltship(
6071 P_Api_Version_Number => 1.0,
6072 P_Init_Msg_List => FND_API.G_FALSE,
6073 P_Commit => FND_API.G_FALSE,
6074 P_Validation_Level => p_validation_level,
6075 P_Line_Rltship_Rec => l_line_rltship_rec,
6076 X_LINE_RELATIONSHIP_ID => lx_line_relationship_id,
6077 X_Return_Status => x_return_status,
6078 X_Msg_Count => x_msg_count,
6079 X_Msg_Data => x_msg_data
6080 );
6081 end if;
6082 end if;
6083 end loop;
6084 --ends bug8235510 starts here
6085 -- create line relationships
6086 FOR i IN 1..p_line_rltship_tbl.count LOOP
6087
6088 l_line_rltship_rec := p_line_rltship_tbl(i);
6089 l_index := l_line_rltship_rec.qte_line_index;
6090
6091 IF l_index IS NOT NULL AND l_index >=1 AND l_index <= x_qte_line_tbl.count THEN
6092 l_line_rltship_rec.quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
6093 END IF;
6094
6095 l_index := l_line_rltship_rec.related_qte_line_index;
6096
6097 IF l_index IS NOT NULL AND l_index >=1 AND l_index <= x_qte_line_tbl.count THEN
6098 l_line_rltship_rec.related_quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
6099 END IF;
6100
6101 ASO_LINE_RELATIONSHIPS_PKG.Insert_Row(
6102 px_LINE_RELATIONSHIP_ID => l_line_rltship_rec.LINE_RELATIONSHIP_ID,
6103 p_CREATION_DATE => SYSDATE,
6104 p_CREATED_BY => G_USER_ID,
6105 p_LAST_UPDATED_BY => G_USER_ID,
6106 p_LAST_UPDATE_DATE => SYSDATE,
6107 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
6108 p_REQUEST_ID => l_line_rltship_rec.REQUEST_ID,
6109 p_PROGRAM_APPLICATION_ID => l_line_rltship_rec.PROGRAM_APPLICATION_ID,
6110 p_PROGRAM_ID => l_line_rltship_rec.PROGRAM_ID,
6111 p_PROGRAM_UPDATE_DATE => l_line_rltship_rec.PROGRAM_UPDATE_DATE,
6112 p_QUOTE_LINE_ID => l_line_rltship_rec.quote_line_id,
6113 p_RELATED_QUOTE_LINE_ID => l_line_rltship_rec.RELATED_QUOTE_LINE_ID,
6114 p_RECIPROCAL_FLAG => l_line_rltship_rec.RECIPROCAL_FLAG,
6115 P_RELATIONSHIP_TYPE_CODE => l_line_rltship_rec.RELATIONSHIP_TYPE_CODE,
6116 p_OBJECT_VERSION_NUMBER => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER);
6117
6118 X_line_Rltship_Tbl(i) := l_line_rltship_rec;
6119
6120 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6121 aso_debug_pub.add('Create_Quote: l_line_rltship_rec.quote_line_id: '||l_line_rltship_rec.quote_line_id);
6122 aso_debug_pub.add('Create_Quote: l_line_rltship_rec.related_quote_line_id: '||l_line_rltship_rec.related_quote_line_id);
6123 END IF;
6124
6125 if l_line_rltship_rec.relationship_type_code = 'CONFIG' then
6126
6127 update aso_quote_line_details
6128 set ref_type_code = 'CONFIG',
6129 ref_line_id = l_line_rltship_rec.quote_line_id,
6130 last_update_date = sysdate,
6131 last_updated_by = fnd_global.user_id,
6132 last_update_login = fnd_global.conc_login_id
6133 where quote_line_id = l_line_rltship_rec.related_quote_line_id;
6134
6135 end if;
6136
6137 END LOOP;
6138
6139 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6140 aso_debug_pub.add('Create_Quote: x_qte_header_rec.quote_header_id: '|| x_qte_header_rec.quote_header_id);
6141 END IF;
6142
6143 update aso_quote_line_details
6144 set ref_type_code = 'CONFIG',
6145 last_update_date = sysdate,
6146 last_updated_by = fnd_global.user_id,
6147 last_update_login = fnd_global.conc_login_id
6148 where config_header_id is not null
6149 and config_revision_num is not null
6150 and ref_type_code is null
6151 and quote_line_id in (select quote_line_id from aso_quote_lines_all
6152 where item_type_code = 'MDL'
6153 and quote_header_id = x_qte_header_rec.quote_header_id);
6154
6155
6156 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6157 aso_debug_pub.add('Create_Quote - before header pricing ', 1, 'Y');
6158 END IF;
6159
6160 IF l_control_rec.header_pricing_event IS NOT NULL AND l_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR THEN
6161
6162 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6163 aso_debug_pub.add('Create_Quote - inside header pricing ', 1, 'N');
6164 END IF;
6165
6166 l_pricing_control_rec.request_type := p_control_rec.pricing_request_type;
6167 l_pricing_control_rec.pricing_event := p_control_rec.header_pricing_event;
6168 l_pricing_control_rec.price_mode := p_control_rec.price_mode;
6169
6170 --New Code for to call overload pricing_order
6171
6172 lv_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
6173 lv_hd_price_attr_tbl := aso_utility_pvt.query_price_attr_rows(x_qte_header_rec.quote_header_id,null);
6174 lv_hd_shipment_tbl := aso_utility_pvt.query_shipment_rows(x_qte_header_rec.quote_header_id,null);
6175
6176 if lv_hd_shipment_tbl.count = 1 then
6177 lv_hd_shipment_rec := lv_hd_shipment_tbl(1);
6178 end if;
6179
6180 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6181 aso_debug_pub.add('Create_Quote: Before call to ASO_PRICING_INT.Pricing_Order');
6182 aso_debug_pub.add('Create_Quote: x_qte_line_tbl.count: ' || x_qte_line_tbl.count);
6183 END IF;
6184
6185 ASO_PRICING_INT.Pricing_Order(
6186 P_Api_Version_Number => 1.0,
6187 P_Init_Msg_List => fnd_api.g_false,
6188 P_Commit => fnd_api.g_false,
6189 p_control_rec => l_pricing_control_rec,
6190 p_qte_header_rec => lv_qte_header_rec,
6191 p_hd_shipment_rec => lv_hd_shipment_rec,
6192 p_hd_price_attr_tbl => lv_hd_price_attr_tbl,
6193 p_qte_line_tbl => x_qte_line_tbl,
6194 --p_line_rltship_tbl => l_line_rltship_tbl,
6195 --p_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
6196 --p_ln_shipment_tbl => ln_shipment_tbl,
6197 --p_ln_price_attr_tbl => l_ln_price_attr_tbl,
6198 x_qte_header_rec => lx_qte_header_rec,
6199 x_qte_line_tbl => lx_qte_line_tbl,
6200 x_qte_line_dtl_tbl => lx_qte_line_dtl_tbl,
6201 x_price_adj_tbl => l_price_adj_tbl_out,
6202 x_price_adj_attr_tbl => l_Price_Adj_Attr_Tbl_out,
6203 x_price_adj_rltship_tbl => lx_price_adj_rltship_tbl,
6204 x_return_status => l_return_status,
6205 x_msg_count => x_msg_count,
6206 x_msg_data => x_msg_data );
6207
6208
6209 x_qte_line_tbl := lx_qte_line_tbl;
6210
6211 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6212 aso_debug_pub.add('Create_Quote: After call to ASO_PRICING_INT.Pricing_Order');
6213 aso_debug_pub.add('Create_Quote: l_return_status: ' || l_return_status);
6214 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl.count: ' || lx_qte_line_tbl.count);
6215 aso_debug_pub.add('Create_Quote: x_qte_line_tbl.count: ' || x_qte_line_tbl.count);
6216 END IF;
6217
6218 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6219
6220 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6221
6222 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6223 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
6224 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER PRICING', TRUE);
6225 FND_MSG_PUB.ADD;
6226 END IF;
6227
6228 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6229
6230 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
6231
6232 x_return_status := FND_API.G_RET_STS_ERROR;
6233 RAISE FND_API.G_EXC_ERROR;
6234 END IF;
6235
6236 END IF; --IF l_control_rec.header_pricing_event IS NOT NULL AND l_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR THEN
6237
6238 /*New Pricing Changes to update the date*/
6239
6240 IF p_control_rec.header_pricing_event ='BATCH' AND p_control_rec.price_mode='ENTIRE_QUOTE' THEN
6241
6242 l_price_updated_date_flag := fnd_api.g_true;
6243 END IF;
6244
6245 /*IF aso_debug_pub.g_debug_flag = 'Y' THEN
6246 aso_debug_pub.add('Create_Quote: Before call to ASO_TAX_INT.Calculate_Tax', 1, 'Y');
6247 aso_debug_pub.add('Create_Quote: p_control_rec.calculate_tax_flag: ' || p_control_rec.calculate_tax_flag);
6248 END IF;*/
6249
6250 --Changed the call to tax API as a part of etax By Anoop Rajan on 9 August 2005
6251
6252 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6253 aso_debug_pub.add('Create_Quote: Before call to ASO_TAX_INT.CALCULATE_TAX_WITH_GTT', 1, 'Y');
6254 aso_debug_pub.add('Create_Quote: p_control_rec.calculate_tax_flag: ' || p_control_rec.calculate_tax_flag);
6255 END IF;
6256
6257 IF p_control_rec.calculate_tax_flag = 'Y' THEN
6258
6259 /* l_tax_control_rec.tax_level := 'SHIPPING';
6260 l_tax_control_rec.update_DB := 'Y';*/
6261 --Commented the above 2 lines by Anoop on 15th August
6262 --Added the IF Condition below to facilitate TAX changes .
6263 if lx_qte_line_tbl.count > 0 then
6264 ASO_TAX_INT.CALCULATE_TAX_WITH_GTT(p_API_VERSION_NUMBER => 1.0,
6265 p_qte_header_id => x_qte_header_rec.quote_header_id,
6266 x_return_status => x_return_status,
6267 X_Msg_Count => x_msg_count,
6268 X_Msg_Data => x_msg_data );
6269
6270 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6271 aso_debug_pub.add('Create_Quote: After call to ASO_TAX_INT.CALCULATE_TAX_WITH_GTT: x_return_status: '|| x_return_status, 1, 'Y');
6272 END IF;
6273 ELSE
6274 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6275 aso_debug_pub.add('Create_Quote: NO LINE RECORDS.SO TAX NOT CALCULATED : x_return_status: '|| x_return_status, 1, 'Y');
6276 END IF;
6277 END IF;
6278
6279 /*ASO_TAX_INT.Calculate_Tax( P_Api_Version_Number => 1.0,
6280 p_quote_header_id => x_qte_header_rec.quote_header_id,
6281 P_Tax_Control_Rec => l_tax_control_rec,
6282 x_tax_amount => x_tax_amount ,
6283 x_tax_detail_tbl => l_tax_detail_tbl,
6284 X_Return_Status => x_return_status ,
6285 X_Msg_Count => x_msg_count ,
6286 X_Msg_Data => x_msg_data );
6287
6288 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6289 aso_debug_pub.add('Create_Quote: After call to ASO_TAX_INT.Calculate_Tax: x_return_status: '|| x_return_status, 1, 'Y');
6290 END IF;
6291 */
6292 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6293
6294 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6295 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
6296 FND_MESSAGE.Set_Token('API', 'Calculate_tax_with_GTT', FALSE);
6297 FND_MSG_PUB.ADD;
6298 END IF;
6299
6300 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6301 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6302 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6303 RAISE FND_API.G_EXC_ERROR;
6304 END IF;
6305
6306 END IF;
6307
6308 END IF;
6309
6310 /*New Tax Changes to update the date*/
6311
6312 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6313
6314 aso_debug_pub.add('Create_Quote: control record parameter values');
6315 aso_debug_pub.add('l_qte_header_rec.pricing_status_indicator: ' || l_qte_header_rec.pricing_status_indicator);
6316 aso_debug_pub.add('l_qte_header_rec.tax_status_indicator: ' || l_qte_header_rec.tax_status_indicator);
6317 aso_debug_pub.add('p_control_rec.header_pricing_event: ' || p_control_rec.header_pricing_event);
6318 aso_debug_pub.add('p_control_rec.price_mode: ' || p_control_rec.price_mode);
6319 aso_debug_pub.add('p_control_rec.calculate_tax_flag: ' || p_control_rec.calculate_tax_flag);
6320 aso_debug_pub.add('l_price_updated_date_flag: ' || l_price_updated_date_flag);
6321
6322 END IF;
6323
6324 IF p_control_rec.calculate_tax_flag = 'Y' THEN
6325
6326 IF l_price_updated_date_flag = fnd_api.g_true THEN
6327
6328 update aso_quote_headers_all
6329 set tax_updated_date = sysdate,
6330 price_updated_date = sysdate
6331 where quote_header_id = x_qte_header_rec.quote_header_id;
6332
6333 ELSE
6334
6335 update aso_quote_headers_all
6336 set tax_updated_date = sysdate
6337 where quote_header_id = x_qte_header_rec.quote_header_id;
6338
6339 END IF;
6340
6341 ELSIF l_price_updated_date_flag = fnd_api.g_true THEN
6342
6343 update aso_quote_headers_all
6344 set price_updated_date = sysdate
6345 where quote_header_id = x_qte_header_rec.quote_header_id;
6346
6347 END IF;
6348
6349
6350 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
6351 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
6352 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
6353 -- IF calculate_tax_flag = 'N', not summation on line level tax,
6354 -- just take the value of p_qte_header_rec.total_tax as the total_tax
6355 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
6356 -- just take the value of p_qte_header_rec.total_freight_charge
6357 -- (or l_hd_shipment_tbl(1).total_freight_charge???) as the TOTAL_SHIPPING_CHARGE
6358
6359
6360 IF p_control_rec.calculate_tax_flag = 'N' AND
6361 p_qte_header_rec.total_tax IS NOT NULL THEN
6362 l_calculate_tax := 'N';
6363 END IF;
6364
6365 IF p_control_rec.calculate_freight_charge_flag = 'N' AND
6366 p_qte_header_rec.total_shipping_charge IS NOT NULL THEN
6367 l_calculate_freight_charge := 'N';
6368 END IF;
6369
6370
6371 -- Start of PNPL Changes
6372 x_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
6373
6374 l_installment_option := oe_sys_parameters.value(param_name => 'INSTALLMENT_OPTIONS',
6375 p_org_id =>x_qte_header_rec.org_id);
6376
6377 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6378 aso_debug_pub.add('Create_Quote - Value of Installment Option Param: '||l_installment_option, 1, 'Y');
6379 END IF;
6380
6381 IF ( (l_installment_option = 'ENABLE_PAY_NOW') and (nvl(P_Qte_Header_Rec.quote_type,'X') <> 'T' )
6382 and ((p_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR and p_control_rec.header_pricing_event is not null)
6383 or (p_control_rec.calculate_tax_flag = 'Y')) ) then
6384
6385 l_call_ar_api := fnd_api.g_true;
6386
6387 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6388 aso_debug_pub.add('Create_Quote - p_control_rec.header_pricing_event: '||p_control_rec.header_pricing_event, 1, 'Y');
6389 aso_debug_pub.add('Create_Quote - p_control_rec.price_mode : '||p_control_rec.price_mode, 1, 'Y');
6390 aso_debug_pub.add('Create_Quote - l_qte_line_tbl.count : '||l_qte_line_tbl.count, 1, 'Y');
6391 END IF;
6392
6393 -- check if price_mode is change_line, if so then call ar api only if some lines are being created or updated
6394 IF (p_control_rec.header_pricing_event = 'BATCH' and p_control_rec.price_mode = 'CHANGE_LINE') THEN
6395 if (l_qte_line_tbl.count > 0) then
6396 l_call_ar_api := fnd_api.g_false;
6397 for i in 1..l_qte_line_tbl.count loop
6398 if (l_qte_line_tbl(i).operation_code = 'CREATE' or l_qte_line_tbl(i).operation_code = 'UPDATE') then
6399 l_call_ar_api := fnd_api.g_true;
6400 exit;
6401 end if;
6402 end loop;
6403 else
6404 l_call_ar_api := fnd_api.g_false;
6405 end if;
6406 END IF;
6407
6408 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6409 aso_debug_pub.add('Create_Quote - l_call_ar_api: '|| l_call_ar_api, 1, 'Y');
6410 END IF;
6411
6412 IF (l_call_ar_api = fnd_api.g_true ) then
6413
6414 For i in 1..X_Qte_Line_Tbl.count loop
6415
6416 -- resetting the line term id variable
6417 l_line_term_id := null;
6418 l_line_quote_price := null;
6419 l_quantity := null;
6420
6421 -- get the line freight charges
6422 l_line_shipping_charge := aso_shipping_int.get_line_freight_charges( x_qte_header_rec.quote_header_id,
6423 X_Qte_Line_Tbl(i).quote_line_id );
6424
6425 -- get the line tax
6426 open c_tax_line(x_qte_header_rec.quote_header_id,X_Qte_Line_Tbl(i).quote_line_id);
6427 fetch c_tax_line into l_line_tax;
6428 close c_tax_line;
6429
6430 -- get the payment term id for the line
6431 open get_line_payment_term(x_qte_header_rec.quote_header_id,X_Qte_Line_Tbl(i).quote_line_id);
6432 fetch get_line_payment_term into l_line_term_id;
6433 close get_line_payment_term;
6434
6435 -- if line term id is null then get it from header
6436 If l_line_term_id is null THEN
6437 open get_hdr_payment_term(x_qte_header_rec.quote_header_id);
6438 fetch get_hdr_payment_term into l_line_term_id;
6439 close get_hdr_payment_term;
6440 END IF;
6441
6442 -- bug 4923355
6443 open get_line_qte_price(X_Qte_Line_Tbl(i).quote_line_id);
6444 fetch get_line_qte_price into l_line_quote_price,l_quantity;
6445 close get_line_qte_price;
6446
6447 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6448 aso_debug_pub.add('Create_Quote - l_line_quote_price: '|| l_line_quote_price, 1, 'Y');
6449 aso_debug_pub.add('Create_Quote - l_quantity: '|| l_quantity, 1, 'Y');
6450 END IF;
6451
6452 l_line_amount := l_line_quote_price * l_quantity;
6453
6454 -- l_line_amount := X_Qte_Line_Tbl(i).line_quote_price * X_Qte_Line_Tbl(i).quantity;
6455
6456 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6457 aso_debug_pub.add('Create_Quote - ********* Input to AR_VIEW_TERM_GRP.pay_now_amounts follows *********** ', 1, 'Y');
6458 aso_debug_pub.add('Create_Quote - X_Qte_Line_Tbl('||i||').quote_line_id: '||X_Qte_Line_Tbl(i).quote_line_id, 1, 'Y');
6459 aso_debug_pub.add('Create_Quote - l_line_amount: '||l_line_amount, 1, 'Y');
6460 aso_debug_pub.add('Create_Quote - l_line_shipping_charge: '||l_line_shipping_charge, 1, 'Y');
6461 aso_debug_pub.add('Create_Quote - l_line_tax: '||l_line_tax, 1, 'Y');
6462 aso_debug_pub.add('Create_Quote - l_line_term_id: '||l_line_term_id, 1, 'Y');
6463 END IF;
6464
6465 IF (l_line_term_id is not null and l_line_term_id <> fnd_api.g_miss_num) then
6466
6467 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6468 aso_debug_pub.add('Create_Quote: before call to AR_VIEW_TERM_GRP.pay_now_amounts', 1, 'Y');
6469 END IF;
6470
6471 -- Call the AR API to get the amounts
6472 AR_VIEW_TERM_GRP.pay_now_amounts(
6473 p_api_version => 1.0,
6474 p_init_msg_list => p_init_msg_list,
6475 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
6476 p_term_id => l_line_term_id,
6477 p_currency_code => x_qte_header_rec.currency_code,
6478 p_line_amount => l_line_amount,
6479 p_tax_amount => l_line_tax,
6480 p_freight_amount => l_line_shipping_charge,
6481 x_pay_now_line_amount => l_paynow_amount,
6482 x_pay_now_tax_amount => l_paynow_tax,
6483 x_pay_now_freight_amount => l_paynow_charges,
6484 x_pay_now_total_amount => l_paynow_total,
6485 X_Return_Status => x_return_status ,
6486 X_Msg_Count => x_msg_count ,
6487 X_Msg_Data => x_msg_data );
6488
6489 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6490 aso_debug_pub.add('Create_Quote: After call to AR_VIEW_TERM_GRP.pay_now_amounts: x_return_status: '|| x_return_status, 1, 'Y');
6491 END IF;
6492
6493 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6494
6495 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6496 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
6497 FND_MESSAGE.Set_Token('API', 'AR_PayNow_Amounts', FALSE);
6498 FND_MSG_PUB.ADD;
6499 END IF;
6500
6501 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6502 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6503 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6504 RAISE FND_API.G_EXC_ERROR;
6505 END IF;
6506
6507 END IF;
6508
6509 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6510 aso_debug_pub.add('Create_Quote - Output from AR_VIEW_TERM_GRP.pay_now_amounts follows:', 1, 'Y');
6511 aso_debug_pub.add('Create_Quote - l_paynow_amount: '||l_paynow_amount, 1, 'Y');
6512 aso_debug_pub.add('Create_Quote - l_paynow_charges: '||l_paynow_charges, 1, 'Y');
6513 aso_debug_pub.add('Create_Quote - l_paynow_tax: '||l_paynow_tax, 1, 'Y');
6514 aso_debug_pub.add('Create_Quote - l_paynow_total: '||l_paynow_total, 1, 'Y');
6515 aso_debug_pub.add('Create_Quote - ********** End PNPL Processing ************' , 1, 'Y');
6516 END IF;
6517
6518
6519 -- Update the corresponding columns in the line table
6520 update aso_quote_lines_all
6521 set line_paynow_charges = l_paynow_charges,
6522 line_paynow_tax = l_paynow_tax,
6523 line_paynow_subtotal = l_paynow_amount,
6524 last_update_date = sysdate,
6525 last_updated_by = fnd_global.user_id,
6526 last_update_login = fnd_global.conc_login_id
6527 where quote_line_id = X_Qte_Line_Tbl(i).quote_line_id;
6528
6529 end if; -- end if for term id null check
6530 end loop;
6531 END IF; -- end if for call ar api flag
6532 END IF;
6533
6534 -- End of PNPL Changes
6535
6536 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6537 aso_debug_pub.add('Create_Quote - before update_quote_total ', 1, 'Y');
6538 END IF;
6539
6540
6541 Update_Quote_Total ( P_Qte_Header_id => x_Qte_Header_rec.quote_header_id,
6542 P_Calculate_Tax => p_control_rec.calculate_tax_flag,
6543 P_calculate_Freight_Charge => p_control_rec.calculate_freight_charge_flag,
6544 p_control_rec => p_control_rec,
6545 P_Call_Ar_Api_Flag => l_call_ar_api,
6546 X_Return_Status => x_return_status,
6547 X_Msg_Count => x_msg_count,
6548 X_Msg_Data => x_msg_data);
6549
6550 x_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
6551
6552 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6553
6554 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6555 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
6556 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER UPDATETOTAL', TRUE);
6557 FND_MSG_PUB.ADD;
6558 END IF;
6559
6560 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6561
6562 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6563
6564 RAISE FND_API.G_EXC_ERROR;
6565
6566 END IF;
6567
6568
6569 IF ( p_qte_header_rec.contract_template_id IS NOT NULL
6570 AND p_qte_header_rec.contract_template_id <> FND_API.G_MISS_NUM)
6571 AND NVL(FND_PROFILE.Value('OKC_ENABLE_SALES_CONTRACTS'),'N') = 'Y' THEN
6572
6573 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6574 aso_debug_pub.add( 'Create_Quote - before instantiating contract terms. ', 1, 'Y');
6575 aso_debug_pub.add( 'Create_Quote - template id: ' || p_qte_header_rec.contract_template_id, 1, 'Y');
6576 aso_debug_pub.add( 'Create_Quote - target_doc_id: ' || x_Qte_Header_rec.quote_header_id, 1, 'Y');
6577 aso_debug_pub.add( 'Create_Quote - p_validation_string: ' || TO_CHAR(x_Qte_Header_rec.LAST_UPDATE_DATE), 1, 'Y');
6578 END IF;
6579
6580 OKC_TERMS_COPY_GRP.Copy_Terms ( P_Api_Version => 1.0,
6581 P_Template_ID => p_qte_header_rec.contract_template_id,
6582 P_Target_Doc_ID => x_Qte_Header_rec.quote_header_id,
6583 P_Target_Doc_Type => 'QUOTE',
6584 P_Article_Effective_Date => NULL,
6585 P_Retain_Deliverable => 'N',
6586 p_validation_string => TO_CHAR(x_Qte_Header_rec.LAST_UPDATE_DATE),
6587 X_Return_Status => X_Return_Status,
6588 X_Msg_Count => X_Msg_Count,
6589 X_Msg_Data => X_Msg_Data );
6590
6591 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6592
6593 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6594 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_COPY_TERMS');
6595 FND_MSG_PUB.ADD;
6596 END IF;
6597
6598 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6599 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6600 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6601 RAISE FND_API.G_EXC_ERROR;
6602 END IF;
6603 END IF;
6604
6605 END IF;
6606 -- end of hyang new okc
6607
6608 -- Change START
6609 -- Release 12 TAP Changes
6610 -- Girish Sachdeva 8/30/2005
6611 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
6612 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6613 aso_debug_pub.add('ASO_QUOTE_HEADERS_PVT.CREATE_QUOTE : Calling ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES, quote number : ' || x_qte_header_rec.quote_number, 1, 'Y');
6614 END IF;
6615
6616
6617 -- Call to insert record in ASO_CHANGED_QUOTES
6618 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(x_qte_header_rec.quote_number);
6619
6620 -- Change END
6621
6622
6623 --
6624 -- End of API body
6625 --
6626
6627 -- Standard check for p_commit
6628
6629 IF FND_API.to_Boolean( p_commit ) THEN
6630 COMMIT WORK;
6631 END IF;
6632
6633
6634
6635 -- Standard call to get message count and if count is 1, get message info.
6636
6637 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
6638 p_data => x_msg_data );
6639
6640 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6641 aso_debug_pub.add('******************************************************', 1, 'Y');
6642 aso_debug_pub.add('End Create_Quote Procedure', 1, 'Y');
6643 aso_debug_pub.add('******************************************************', 1, 'Y');
6644 END IF;
6645
6646
6647 EXCEPTION
6648
6649 WHEN FND_API.G_EXC_ERROR THEN
6650 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
6651 P_API_NAME => L_API_NAME
6652 ,P_PKG_NAME => G_PKG_NAME
6653 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
6654 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6655 ,P_SQLCODE => SQLCODE
6656 ,P_SQLERRM => SQLERRM
6657 ,X_MSG_COUNT => X_MSG_COUNT
6658 ,X_MSG_DATA => X_MSG_DATA
6659 ,X_RETURN_STATUS => X_RETURN_STATUS);
6660
6661 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6662 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
6663 P_API_NAME => L_API_NAME
6664 ,P_PKG_NAME => G_PKG_NAME
6665 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
6666 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6667 ,P_SQLCODE => SQLCODE
6668 ,P_SQLERRM => SQLERRM
6669 ,X_MSG_COUNT => X_MSG_COUNT
6670 ,X_MSG_DATA => X_MSG_DATA
6671 ,X_RETURN_STATUS => X_RETURN_STATUS);
6672
6673 WHEN OTHERS THEN
6674 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
6675 P_API_NAME => L_API_NAME
6676 ,P_PKG_NAME => G_PKG_NAME
6677 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
6678 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6679 ,P_SQLCODE => SQLCODE
6680 ,P_SQLERRM => SQLERRM
6681 ,X_MSG_COUNT => X_MSG_COUNT
6682 ,X_MSG_DATA => X_MSG_DATA
6683 ,X_RETURN_STATUS => X_RETURN_STATUS);
6684
6685 End Create_quote;
6686
6687
6688 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
6689 PROCEDURE Update_quote(
6690 P_Api_Version_Number IN NUMBER,
6691 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
6692 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
6693 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
6694 P_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_Miss_Control_Rec,
6695 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
6696 P_hd_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
6697 P_hd_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL,
6698 P_hd_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL,
6699 P_hd_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl,
6700 P_hd_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl,
6701 P_hd_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL,
6702 P_hd_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
6703 P_hd_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
6704 P_Qte_Line_Tbl IN ASO_QUOTE_PUB.Qte_Line_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL,
6705 P_Qte_Line_Dtl_Tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL,
6706 P_Line_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL,
6707 P_line_rltship_tbl IN ASO_QUOTE_PUB.Line_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Rltship_Tbl,
6708 P_Price_Adjustment_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl,
6709 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
6710 P_Price_Adj_Rltship_Tbl IN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Adj_Rltship_Tbl,
6711 P_ln_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
6712 P_ln_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL,
6713 P_ln_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL,
6714 P_ln_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl,
6715 P_ln_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl,
6716 P_ln_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
6717 P_ln_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
6718 P_Qte_Access_Tbl IN ASO_QUOTE_PUB.Qte_Access_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_ACCESS_TBL,
6719 P_Template_Tbl IN ASO_QUOTE_PUB.Template_Tbl_Type := ASO_QUOTE_PUB.G_MISS_TEMPLATE_TBL,
6720 P_Related_Obj_Tbl IN ASO_QUOTE_PUB.Related_Obj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_RELATED_OBJ_TBL,
6721 x_Qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Rec_Type,
6722 X_Qte_Line_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
6723 X_Qte_Line_Dtl_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
6724 X_hd_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
6725 X_hd_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
6726 X_hd_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
6727 X_hd_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
6728 X_hd_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
6729 X_hd_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
6730 X_hd_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
6731 X_hd_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
6732 x_Line_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
6733 X_line_rltship_tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Rltship_Tbl_Type,
6734 X_Price_Adjustment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
6735 X_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
6736 X_Price_Adj_Rltship_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
6737 X_ln_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
6738 X_ln_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
6739 X_ln_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
6740 X_ln_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
6741 X_ln_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
6742 X_Ln_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
6743 X_Ln_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
6744 X_Qte_Access_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
6745 X_Template_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Template_Tbl_Type,
6746 X_Related_Obj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Related_Obj_Tbl_Type,
6747 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
6748 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
6749 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
6750 )
6751 IS
6752 lx_line_relationship_id number;
6753 --ovn
6754 Cursor C_Get_quote(c_QUOTE_HEADER_ID Number) IS
6755 Select LAST_UPDATE_DATE, QUOTE_STATUS_ID, quote_number, party_id, cust_account_id,
6756 order_type_id, order_id, object_version_number, currency_code, price_list_id
6757 From ASO_QUOTE_HEADERS_ALL
6758 Where QUOTE_HEADER_ID = c_QUOTE_HEADER_ID;
6759
6760 CURSOR C_Qte_Status(c_qte_status_id NUMBER) IS
6761 SELECT AUTO_VERSION_FLAG
6762 FROM ASO_QUOTE_STATUSES_B
6763 WHERE quote_status_id = c_qte_status_id;
6764
6765 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
6766 SELECT max(quote_version)
6767 FROM ASO_QUOTE_HEADERS_ALL
6768 WHERE quote_number = X_qte_number;
6769
6770 CURSOR c_payment_rec IS
6771 SELECT payment_id, payment_option FROM ASO_PAYMENTS
6772 WHERE quote_header_id = P_Qte_Header_Rec.quote_header_id
6773 AND quote_line_id IS NULL;
6774
6775 CURSOR c_shipment_rec IS
6776 SELECT shipment_id FROM ASO_SHIPMENTS
6777 WHERE quote_header_id = P_Qte_Header_Rec.quote_header_id
6778 AND quote_line_id IS NULL;
6779
6780 CURSOR c_tax_rec IS
6781 SELECT tax_detail_id FROM ASO_TAX_DETAILS
6782 WHERE quote_header_id = P_Qte_Header_Rec.quote_header_id
6783 AND quote_line_id IS NULL
6784 AND ORIG_TAX_CODE IS NOT NULL;
6785
6786 CURSOR c_qte_line(l_d_qte_line NUMBER) IS
6787 SELECT quote_line_id FROM ASO_QUOTE_LINES_ALL
6788 where quote_line_id= l_d_qte_line;
6789
6790 --ovn
6791 cursor c_last_update_date( p_qte_hdr_id number) is
6792 select last_update_date
6793 from aso_quote_headers_all
6794 where quote_header_id = p_qte_hdr_id;
6795
6796 cursor c_quote_lines( p_qte_hdr_id number) is
6797 select quote_line_id,order_line_type_id,line_category_code,price_list_id,line_quote_price,quantity
6798 from aso_quote_lines_all
6799 where quote_header_id = p_qte_hdr_id;
6800
6801 cursor c_related_obj_id (p_qte_hdr_id number) is
6802 select related_object_id,last_update_date
6803 from aso_quote_related_objects
6804 where quote_object_id = p_qte_hdr_id
6805 and quote_object_type_code = 'HEADER'
6806 and relationship_type_code = 'OPP_QUOTE';
6807
6808 Cursor c_obj_id(p_qte_header_id Number) IS
6809 Select object_id
6810 from aso_quote_related_objects
6811 where quote_object_id = p_qte_header_id
6812 and quote_object_type_code = 'HEADER'
6813 and relationship_type_code = 'OPP_QUOTE';
6814
6815 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
6816 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
6817 payment_rec c_payment_rec%rowtype;
6818 l_payment_db_tbl varchar_tbl_type;
6819 shipment_rec c_shipment_rec%ROWTYPE;
6820 l_shipment_db_tbl VARCHAR_TBL_TYPE;
6821 l_qln_id NUMBER;
6822 l_tax_db_tbl VARCHAR_TBL_TYPE;
6823 l_qte_status_id NUMBER;
6824 l_qte_number NUMBER;
6825 l_last_update_date DATE;
6826
6827 --ovn
6828 l_object_version_number NUMBER;
6829 l_update_allowed VARCHAR2(1);
6830 l_party_id NUMBER;
6831 l_cust_account_id NUMBER;
6832 l_auto_version VARCHAR2(1);
6833 l_api_name CONSTANT VARCHAR2(30) := 'Update_quote';
6834 l_api_version_number CONSTANT NUMBER := 1.0;
6835 l_return_status VARCHAR2(1);
6836 l_found VARCHAR2(1);
6837 l_calculate_freight_charge VARCHAR2(1) := 'Y';
6838 l_calculate_tax VARCHAR2(1) := 'Y';
6839 x_tax_amount NUMBER;
6840
6841 l_qte_header_id NUMBER;
6842 l_qte_line_id NUMBER;
6843 l_index NUMBER;
6844 l_index_2 NUMBER;
6845 x_status VARCHAR2(1);
6846 l_order_type_id NUMBER;
6847 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
6848 l_qte_line_rec_out ASO_QUOTE_PUB.Qte_Line_Rec_Type;
6849 -- l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := p_qte_header_rec;
6850 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type; -- Code change for Quoting Usability Sun ER
6851 l_old_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
6852 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
6853 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
6854 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
6855 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
6856 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
6857 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
6858 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
6859 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
6860 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
6861 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
6862 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_tbl_Type;
6863 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_tbl_Type;
6864 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
6865 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
6866 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
6867 l_Price_Adj_Tbl_out ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
6868 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
6869 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
6870 l_pricing_control_rec ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE;
6871 l_Price_Adjustment_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type := p_Price_Adjustment_Tbl;
6872 l_line_rltship_rec ASO_QUOTE_PUB.Line_Rltship_Rec_Type;
6873 l_price_adj_rltship_rec ASO_QUOTE_PUB.Price_Adj_Rltship_Rec_Type;
6874 l_Tax_Control_Rec ASO_TAX_INT.Tax_Control_Rec_Type;
6875 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
6876 l_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
6877 l_shp_index_link Index_Link_Tbl_Type;
6878 l_prc_index_link Index_Link_Tbl_Type;
6879 l_prc_index_link_rev Index_Link_Tbl_Type;
6880 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
6881 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
6882 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
6883 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
6884 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type := p_control_rec;
6885 l_control_rec_bv ASO_QUOTE_PUB.Control_Rec_Type := p_control_rec;
6886 l_qte_access_rec ASO_SECURITY_INT.Qte_Access_Rec_Type := ASO_SECURITY_INT.G_MISS_QTE_ACCESS_REC;
6887 l_qte_access_tbl ASO_SECURITY_INT.Qte_Access_Tbl_Type := ASO_SECURITY_INT.G_MISS_QTE_ACCESS_TBL;
6888 l_qte_access_tbl_out ASO_SECURITY_INT.Qte_Access_Tbl_Type;
6889 l_ln_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC;
6890
6891
6892 -- Begin Variable declaration for Batch Validation 05/24/2002
6893
6894 l_batch_qte_line_rec aso_quote_pub.qte_line_rec_type := aso_quote_pub.g_miss_qte_line_rec;
6895 l_p_batch_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6896 l_send_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6897 l_send_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type := aso_quote_pub.g_miss_qte_line_dtl_tbl;
6898 l_batch_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type := aso_quote_pub.g_miss_qte_line_dtl_tbl;
6899 l_search_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6900 l_delete_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6901 l_p_batch_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type := aso_quote_pub.g_miss_qte_line_dtl_tbl;
6902 l_model_qte_line_tbl aso_quote_pub.qte_line_tbl_type;
6903 l_model_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type;
6904
6905 l_batch_index number := 0; --should not be initialized inside line loop code
6906 l_model_index number := 0; --should not be initialized inside line loop code
6907 l_add_line varchar2(1) := fnd_api.g_false;
6908 l_add_model_line varchar2(1) := fnd_api.g_false;
6909 l_send_index NUMBER := 0;
6910 l_model_line_id NUMBER;
6911 l_lines NUMBER:=0;
6912 l_complete_configuration_flag VARCHAR2(1);
6913 l_valid_configuration_flag VARCHAR2(1);
6914 l_qte_lines_tbl_count Number;
6915 l_config_header_id number;
6916 l_config_revision_num number;
6917 l_new_config_hdr_id number;
6918
6919 cursor c_model_line (p_config_header_id NUMBER, p_config_revision_num NUMBER)is
6920 select quote_line_id from aso_quote_line_details
6921 where config_header_id = p_config_header_id
6922 and config_revision_num = p_config_revision_num
6923 and ref_type_code = 'CONFIG'
6924 and ref_line_id is NULL;
6925
6926 CURSOR c_config_exist_in_cz (p_config_hdr_id number, p_config_rev_nbr number) IS
6927 select config_hdr_id
6928 from cz_config_details_v
6929 where config_hdr_id = p_config_hdr_id
6930 and config_rev_nbr = p_config_rev_nbr;
6931
6932 l_deactivate_qte_header_rec aso_quote_pub.qte_header_rec_type;
6933 l_deactivate_quote_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6934 l_deactivate_instance_tbl aso_quote_headers_pvt.Instance_Tbl_Type := aso_quote_headers_pvt.G_MISS_Instance_Tbl;
6935 l_deactivate_counter number := 0;
6936
6937 -- End Variable declaration for Batch Validation 05/24/2002
6938
6939 l_order_id number;
6940 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC;
6941
6942 l_copy_quote_control_rec aso_copy_quote_pub.copy_quote_control_rec_type;
6943 l_copy_quote_header_rec aso_copy_quote_pub.copy_quote_header_rec_type;
6944 l_quote_number number;
6945
6946 l_price_updated_date_flag VARCHAR2(1) := fnd_api.g_false;
6947
6948 --New Code for to call overload pricing_order
6949 lv_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
6950 lx_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
6951 lx_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
6952 lv_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
6953 lv_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
6954 lv_hd_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
6955 lx_price_adj_rltship_tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
6956
6957 CURSOR C_Check_Store_Status (l_old_stat NUMBER, l_new_stat NUMBER) IS
6958 SELECT 'Y'
6959 FROM ASO_QUOTE_STATUSES_B A, ASO_QUOTE_STATUSES_B B
6960 WHERE A.Quote_Status_Id = l_old_stat
6961 AND A.Status_Code = 'STORE DRAFT'
6962 AND B.Quote_Status_Id = l_new_stat
6963 AND B.Status_Code = 'DRAFT';
6964
6965 CURSOR C_Get_Quota_Credit_Type IS
6966 SELECT Sales_Credit_Type_Id
6967 FROM OE_SALES_CREDIT_TYPES
6968 WHERE Quota_Flag = 'Y';
6969
6970 CURSOR C_Get_SCredit_Exists(l_qte_hdr_id NUMBER) IS
6971 SELECT 'Y'
6972 FROM ASO_SALES_CREDITS
6973 WHERE quote_header_id = l_qte_hdr_id;
6974
6975 CURSOR c_tax_line(p_qte_header_id NUMBER, p_quote_line_id NUMBER) IS
6976 select nvl(sum(nvl(tax_amount, 0)),0) tax_amount
6977 FROM ASO_TAX_DETAILS
6978 WHERE quote_header_id = p_qte_header_id
6979 and quote_line_id = p_quote_line_id;
6980
6981 Cursor get_line_payment_term(p_qte_header_id NUMBER, p_quote_line_id NUMBER) IS
6982 SELECT payment_term_id
6983 FROM aso_payments
6984 WHERE quote_header_id = p_qte_header_id
6985 and quote_line_id = p_quote_line_id;
6986
6987 Cursor get_hdr_payment_term(p_qte_header_id NUMBER) IS
6988 SELECT payment_term_id
6989 FROM aso_payments
6990 WHERE quote_header_id = p_qte_header_id
6991 and quote_line_id IS NULL;
6992
6993 CURSOR C_Get_Hdr_Resource_Id(lc_qte_header_id NUMBER) IS
6994 SELECT resource_id
6995 FROM Aso_Quote_Headers_All
6996 WHERE quote_header_id = lc_qte_header_id;
6997
6998 CURSOR c_inv_org_id(l_main_org_id Number) IS
6999 SELECT master_organization_id
7000 FROM oe_system_parameters
7001 WHERE org_id = l_main_org_id;
7002
7003 CURSOR c_org_id(p_qte_header_id Number) IS
7004 SELECT org_id
7005 FROM aso_quote_headers_all
7006 WHERE quote_header_id = p_qte_header_id;
7007
7008 l_master_organization_id NUMBER;
7009 l_quote_org_id NUMBER;
7010 l_scredit_exists VARCHAR2(1) := 'N';
7011 l_quota_id NUMBER;
7012 l_store_trans VARCHAR2(1) := 'N';
7013 l_sales_team_prof VARCHAR2(30) := FND_PROFILE.value('ASO_AUTO_TEAM_ASSIGN');
7014
7015 -- hyang defaulting framework
7016 l_def_control_rec ASO_DEFAULTING_INT.Control_Rec_Type := ASO_DEFAULTING_INT.G_MISS_CONTROL_REC;
7017 l_db_object_name VARCHAR2(30);
7018 l_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Shipment_REC;
7019 l_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Payment_REC;
7020 l_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type := ASO_QUOTE_PUB.G_MISS_Tax_Detail_REC;
7021 l_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type := ASO_DEFAULTING_INT.G_MISS_HEADER_MISC_REC;
7022 lx_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
7023 lx_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
7024 lx_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
7025 lx_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type;
7026 lx_quote_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
7027 lx_ln_misc_rec ASO_DEFAULTING_INT.Line_Misc_Rec_Type;
7028 lx_ln_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
7029 lx_ln_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
7030 lx_ln_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
7031 lx_changed_flag VARCHAR2(1);
7032 l_hd_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
7033 l_hd_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
7034
7035 --Template changes
7036 l_template_tbl aso_quote_tmpl_int.list_template_tbl_type;
7037 l_qte_line_tbl aso_quote_pub.qte_line_tbl_type := p_qte_line_tbl;
7038 lx_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type := p_qte_line_dtl_tbl;
7039 l_count number;
7040 l_currency_code varchar2(15);
7041 l_price_list_id number;
7042 l_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
7043 l_related_obj_id number;
7044 x_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
7045 l_obj_id number;
7046
7047 l_installment_option VARCHAR2(240);
7048 l_line_shipping_charge NUMBER;
7049 l_line_tax NUMBER;
7050 l_line_term_id NUMBER := null;
7051 l_line_amount NUMBER;
7052 l_paynow_amount NUMBER;
7053 l_paynow_tax NUMBER;
7054 l_paynow_charges NUMBER;
7055 l_paynow_total NUMBER;
7056 l_call_ar_api varchar2(1);
7057
7058 /*** Start: BugNo 8647883: R12.1.2 Service reference SUN ER ***/
7059
7060 l_check_service_rec ASO_SERVICE_CONTRACTS_INT.CHECK_SERVICE_REC_TYPE;
7061
7062 CURSOR C_get_cust( p_qte_hdr_id number) IS
7063 SELECT END_CUSTOMER_CUST_ACCOUNT_ID,cust_account_id
7064 FROM aso_quote_headers_all
7065 WHERE quote_header_id= p_qte_hdr_id;
7066
7067 CURSOR c_serv( p_qte_hdr_id number) IS
7068 SELECT a1.quote_line_id,
7069 SERVICE_REF_LINE_ID ,
7070 service_ref_type_code ,
7071 a2.inventory_item_id
7072 FROM aso_quote_line_details a1,
7073 aso_quote_lines_all a2
7074 WHERE a2.quote_header_id = p_qte_hdr_id
7075 AND a1.quote_line_id = a2.quote_line_id
7076 AND SERVICE_REF_TYPE_CODE IN ('CUSTOMER_PRODUCT','PRODUCT_CATALOG');
7077
7078
7079 l_inventory_item_id NUMBER ;
7080 ls_count NUMBER;
7081 ls_service_inventory_item_id NUMBER ;
7082 ls_cust_account_id NUMBER;
7083 ls_end_cust_account_id NUMBER;
7084 -- For IB
7085 ls_ib_cust_account_id_orig NUMBER;
7086 ls_ib_cust_account_id NUMBER;
7087 -- For PC
7088 ls_pc_cust_account_id_orig NUMBER;
7089 ls_pc_cust_account_id NUMBER;
7090 l_Available_YN VARCHAR2(1);
7091
7092 found number:=0;
7093 ls_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
7094
7095 /*** End: BugNo 8647883: R12.1.2 Service reference SUN ER ***/
7096
7097 /* Code change for Quoting Usability Sun ER Start */
7098
7099 CURSOR C_AGREEMENT(P_AGREEMENT_ID IN NUMBER,P_INVOICE_TO_CUSTOMER_ID IN NUMBER) IS
7100 SELECT 'x'
7101 FROM OE_AGREEMENTS_VL
7102 WHERE AGREEMENT_ID = P_AGREEMENT_ID
7103 AND INVOICE_TO_CUSTOMER_ID = P_INVOICE_TO_CUSTOMER_ID;
7104
7105 l_var varchar2(1);
7106
7107 l_appl_param_rec CZ_API_PUB.appl_param_rec_type;
7108 l_return_value Varchar2(1);
7109
7110 cursor c_service_ref_quote (P_Quote_line_id number) is
7111 select service_ref_line_id
7112 from aso_quote_line_Details
7113 where quote_line_id= P_Quote_line_id
7114 and service_ref_type_code ='QUOTE';
7115
7116 l_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type := aso_quote_pub.g_miss_qte_line_dtl_tbl;
7117
7118 /* Code change for Quoting Usability Sun ER End */
7119
7120 /* Start : Code change for Bug 9847694 */
7121
7122 Cursor C_ITEM_TYPE_CODE(P_Quote_line_id Number) Is
7123 select item_type_code
7124 from aso_quote_lines_all
7125 where quote_line_id = P_Quote_line_id;
7126
7127 l_item_type_code aso_quote_lines_all.item_type_code%Type;
7128
7129 Cursor C_SERVICE_REF_TYPE_CODE(P_Quote_line_id Number) Is
7130 select service_ref_type_code
7131 from aso_quote_line_details
7132 where quote_line_id = P_Quote_line_id;
7133
7134 l_service_ref_type_code aso_quote_line_details.service_ref_type_code%Type;
7135
7136 /* End : Code change for Bug 9847694 */
7137
7138 -- bug 10261431
7139 l_top_model_line_id number;
7140 l_ato_line_id number;
7141
7142 -- bug 10217258
7143 l_qty number; -- rassharm
7144
7145 CURSOR c_qte_line_type(l_d_qte_line NUMBER) IS
7146 select item_type_code
7147 from aso_quote_lines_all
7148 where quote_line_id= l_d_qte_line;
7149
7150 l_item_type_code1 varchar2(30); -- rassharm
7151
7152 /*** Start : Code change done for Bug 11076978 ***/
7153
7154 Cursor C_cust_account_id(p_quote_header_id Number) IS
7155 Select cust_account_id
7156 From aso_quote_headers_all
7157 Where quote_header_id = p_quote_header_id;
7158
7159 CURSOR c_pay_term_acct(p_cust_account_id IN Number) IS
7160 SELECT hcp.standard_terms
7161 FROM hz_cust_accounts hca,hz_customer_profiles hcp
7162 WHERE hca.cust_account_id = p_cust_account_id
7163 AND hcp.cust_account_id = hca.cust_account_id
7164 AND nvl(hcp.status,'A') = 'A';
7165
7166 l_cust_account_id_db NUMBER;
7167
7168 /*** End : Code change done for Bug 11076978 ***/
7169
7170 ct_rel number; -- bug 12608111
7171
7172 /* Start : Code change done for Bug 13064273 */
7173
7174 CURSOR C_Agreement_PL(p_agreement_id Number) Is
7175 Select pri.list_header_id, pri.currency_code
7176 from OE_AGREEMENTS_B agr, qp_list_headers_vl pri
7177 where agr.agreement_id = p_agreement_id
7178 and pri.list_header_id = agr.price_list_id
7179 and pri.list_type_code in ('PRL','AGR')
7180 and pri.active_flag = 'Y'
7181 and trunc(nvl(pri.start_date_active, sysdate)) <= trunc(sysdate)
7182 and trunc(nvl(pri.end_date_active, sysdate)) >= trunc(sysdate);
7183
7184 CURSOR C_Customer_PL(p_cust_acct_id Number) Is
7185 Select pri.list_header_id , pri.currency_code
7186 from HZ_CUST_ACCOUNTS cust, qp_list_headers_vl pri
7187 where cust.cust_account_id = p_cust_acct_id
7188 and cust.price_list_id = pri.list_header_id
7189 and pri.list_type_code in ('PRL','AGR')
7190 and pri.active_flag = 'Y'
7191 and trunc(nvl(pri.start_date_active, sysdate)) <= trunc(sysdate)
7192 and trunc(nvl(pri.end_date_active, sysdate)) >= trunc(sysdate);
7193
7194 CURSOR C_Order_Type_PL(p_order_type_id Number) Is
7195 Select pri.list_header_id, pri.currency_code
7196 from OE_TRANSACTION_TYPES_ALL ord, qp_list_headers_vl pri
7197 where ord.TRANSACTION_TYPE_ID = p_order_type_id
7198 and ord.price_list_id = pri.list_header_id
7199 and pri.list_type_code in ('PRL','AGR')
7200 and pri.active_flag = 'Y'
7201 and trunc(nvl(pri.start_date_active, sysdate)) <= trunc(sysdate)
7202 and trunc(nvl(pri.end_date_active, sysdate)) >= trunc(sysdate);
7203
7204 /* End : Code change done for Bug 13064273 */
7205
7206 /*** Start : Code change done for Bug 13926015 ***/
7207 Cursor C_Expire_Date(P_Quote_header_id number) Is
7208 -- Select to_char(quote_expiration_date,'DD-MON-RRRR') commented for bug 14099184
7209 Select quote_expiration_date
7210 From aso_quote_headers_all
7211 Where Quote_header_id = P_Quote_header_id;
7212
7213 l_expire_date Date;
7214
7215 /*** End : Code change done for Bug 13926015 ***/
7216
7217 BEGIN
7218 -- Standard Start of API savepoint
7219 SAVEPOINT UPDATE_quote_PVT;
7220
7221 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7222 aso_debug_pub.add('******************************************************', 1, 'Y');
7223 aso_debug_pub.add('Begin Update_Quote Procedure', 1, 'Y');
7224 aso_debug_pub.add('******************************************************', 1, 'Y');
7225 END IF;
7226
7227 -- Standard call to check for call compatibility.
7228 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
7229 p_api_version_number,
7230 l_api_name,
7231 G_PKG_NAME) THEN
7232 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7233 END IF;
7234
7235 -- Initialize message list if p_init_msg_list is set to TRUE.
7236 IF FND_API.to_Boolean( p_init_msg_list ) THEN
7237 FND_MSG_PUB.initialize;
7238 END IF;
7239
7240 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7241 aso_debug_pub.add('Update_Quote - Begin ', 1, 'Y');
7242 END IF;
7243 --Procedure added by Anoop Rajan on 30/09/2005 to print login details
7244 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7245 aso_debug_pub.add('Before call to printing login info details', 1, 'Y');
7246 ASO_UTILITY_PVT.print_login_info;
7247 aso_debug_pub.add('After call to printing login info details', 1, 'Y');
7248 END IF;
7249
7250 -- Change Done By Girish
7251 -- Procedure added to validate the operating unit
7252 ASO_VALIDATE_PVT.VALIDATE_OU(P_Qte_Header_Rec);
7253
7254 -- Initialize API return status to SUCCESS
7255 x_return_status := FND_API.G_RET_STS_SUCCESS;
7256
7257 -- Api body
7258 l_control_rec.line_pricing_event := NULL;
7259 l_control_rec.calculate_tax_flag := NULL;
7260
7261 -- ******************************************************************
7262 -- Validate Environment
7263 -- ******************************************************************
7264 IF FND_GLOBAL.User_Id IS NULL THEN
7265
7266 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7267 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
7268 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
7269 FND_MSG_PUB.ADD;
7270 END IF;
7271 RAISE FND_API.G_EXC_ERROR;
7272 END IF;
7273
7274 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7275 aso_debug_pub.add('Update_Quote: Before call to aso_input_param_debug.print_quote_input procedure', 1, 'Y');
7276
7277 ASO_INPUT_PARAM_DEBUG.Print_quote_input(
7278 P_Quote_Header_Rec => p_qte_header_rec
7279 , P_hd_Price_Attributes_Tbl => P_hd_Price_Attributes_Tbl
7280 , P_hd_Payment_Tbl => P_hd_Payment_Tbl
7281 , P_hd_Shipment_tbl => P_hd_Shipment_tbl
7282 , P_hd_Tax_Detail_Tbl => P_hd_Tax_Detail_Tbl
7283 , P_hd_Sales_Credit_Tbl => P_hd_Sales_Credit_Tbl
7284 , P_Qte_Line_Tbl => P_Qte_Line_Tbl
7285 , P_Qte_Line_Dtl_Tbl => P_Qte_Line_Dtl_Tbl
7286 , P_Price_Adjustment_Tbl => P_Price_Adjustment_Tbl
7287 , P_Ln_Price_Attributes_Tbl => P_Ln_Price_Attributes_Tbl
7288 , P_Ln_Payment_Tbl => P_Ln_Payment_Tbl
7289 , P_Ln_Shipment_Tbl => P_Ln_Shipment_Tbl
7290 , P_Ln_Tax_Detail_Tbl => P_Ln_Tax_Detail_Tbl
7291 , P_ln_Sales_Credit_Tbl => P_ln_Sales_Credit_Tbl
7292 , P_Qte_Access_Tbl => P_Qte_Access_Tbl);
7293
7294 aso_debug_pub.add('Update_Quote: After call to aso_input_param_debug.print_quote_input procedure', 1, 'Y');
7295 END IF;
7296
7297 Open C_Get_quote( p_qte_header_rec.QUOTE_HEADER_ID);
7298 Fetch C_Get_quote into l_LAST_UPDATE_DATE, l_qte_status_id, l_qte_number,l_party_id, l_cust_account_id,
7299 l_order_type_id,l_order_id,l_object_version_number, l_currency_code, l_price_list_id;
7300
7301 If ( C_Get_quote%NOTFOUND) Then
7302
7303 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7304 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_UPDATE_TARGET');
7305 FND_MESSAGE.Set_Token ('INFO', 'quote', FALSE);
7306 FND_MSG_PUB.Add;
7307 END IF;
7308 raise FND_API.G_EXC_ERROR;
7309
7310 END IF;
7311 Close C_Get_quote;
7312
7313 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7314 aso_debug_pub.add('Update_Quote: quote_header_id: '|| p_qte_header_rec.quote_header_id, 1, 'Y');
7315 aso_debug_pub.add('Update_Quote: l_LAST_UPDATE_DATE: '|| l_LAST_UPDATE_DATE, 1, 'Y');
7316 aso_debug_pub.add('Update_Quote: l_qte_status_id: '|| l_qte_status_id, 1, 'Y');
7317 aso_debug_pub.add('Update_Quote: l_qte_number: '|| l_qte_number, 1, 'Y');
7318 aso_debug_pub.add('Update_Quote: l_order_type_id: '|| l_order_type_id, 1, 'Y');
7319 aso_debug_pub.add('Update_Quote: l_order_id: '|| l_order_id, 1, 'Y');
7320 aso_debug_pub.add('Update_Quote: l_object_version_number: '|| l_object_version_number,1,'Y');
7321 aso_debug_pub.add('Update_Quote: l_currency_code: '|| l_currency_code,1,'Y');
7322 aso_debug_pub.add('Update_Quote: l_price_list_id: '|| l_price_list_id,1,'Y');
7323 END IF;
7324
7325 If (l_last_update_date is NULL or l_last_update_date = FND_API.G_MISS_Date ) Then
7326
7327 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7328 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
7329 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
7330 FND_MSG_PUB.ADD;
7331 END IF;
7332 raise FND_API.G_EXC_ERROR;
7333
7334 End if;
7335
7336 -- Check Whether record has been changed by someone else
7337 If (l_last_update_date <> p_qte_header_rec.last_update_date) Then
7338
7339 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7340 FND_MESSAGE.Set_Name('ASO', 'ASO_API_RECORD_CHANGED');
7341 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
7342 FND_MSG_PUB.ADD;
7343 END IF;
7344 raise FND_API.G_EXC_ERROR;
7345
7346 End if;
7347
7348 ls_qte_line_tbl := p_qte_line_tbl; -- BugNo 8647883
7349 --ovn
7350 If (p_qte_header_rec.object_version_number is not null) AND (p_qte_header_rec.object_version_number <> FND_API.G_MISS_NUM) then
7351
7352 --Compare the passed value to the db value
7353 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7354 aso_debug_pub.add('Update_Quote - p_qte_header_rec.object_version_number:' ||p_qte_header_rec.object_version_number,1,'Y');
7355 END IF;
7356
7357 If (l_object_version_number <> p_qte_header_rec.object_version_number) then
7358
7359 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7360 FND_MESSAGE.Set_Name('ASO', 'ASO_API_RECORD_CHANGED');
7361 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
7362 FND_MSG_PUB.ADD;
7363 END IF;
7364 raise FND_API.G_EXC_ERROR;
7365
7366 End If;
7367
7368 End If; --(l_object_version_number is not null) or (l_object_version_number <> FND_API.G_MISS_NUM)
7369
7370 If ((l_qte_header_rec.BATCH_PRICE_FLAG <> FND_API.G_FALSE) or (l_qte_header_rec.BATCH_PRICE_FLAG = FND_API.G_MISS_CHAR)) then
7371
7372 ASO_CONC_REQ_INT.Lock_Exists( p_quote_header_id => p_qte_header_rec.quote_header_id,
7373 x_status => x_status);
7374
7375 if (x_status = FND_API.G_TRUE) then
7376
7377 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7378 FND_MESSAGE.Set_Name('ASO', 'ASO_CONC_REQUEST_RUNNING');
7379 FND_MSG_PUB.ADD;
7380 end if;
7381 raise FND_API.G_EXC_ERROR;
7382
7383 end if;
7384 end if;
7385
7386 IF l_order_id is NOT NULL and l_order_id <> FND_API.G_MISS_NUM THEN
7387
7388 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7389 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UPDATE_QUOTE_SUBMITTED');
7390 FND_MSG_PUB.ADD;
7391 END IF;
7392 raise FND_API.G_EXC_ERROR;
7393
7394 END IF;
7395
7396 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7397 aso_debug_pub.add('Update_Quote - quote_number: '||to_char(l_qte_number), 1, 'N');
7398 END IF;
7399
7400 If p_qte_header_rec.QUOTE_SOURCE_CODE <> 'IStore Account' Then -- added for Bug 13473812
7401
7402 /*** Start : Code change done for Bug 11076978 ***/
7403
7404 If (p_qte_header_rec.cust_account_id IS NOT NULL AND
7405 p_qte_header_rec.cust_account_id <> FND_API.G_MISS_NUM ) Then
7406 Open C_cust_account_id(p_qte_header_rec.Quote_Header_Id);
7407 Fetch C_cust_account_id Into l_cust_account_id_db;
7408 Close C_cust_account_id;
7409 End If;
7410
7411 If l_cust_account_id_db <> p_qte_header_rec.cust_account_id Then
7412 l_control_rec.Change_Customer_flag := FND_API.G_TRUE;
7413 End If;
7414
7415 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7416 aso_debug_pub.add('Update_Quote - l_control_rec.Change_Customer_flag : ' ||l_control_rec.Change_Customer_flag,1,'Y');
7417 END IF;
7418
7419 /*** End : Code change done for Bug 11076978 ***/
7420
7421 End If;
7422
7423 /* Code change for Quoting Usability Sun ER Start */
7424
7425 If l_control_rec.Change_Customer_flag = FND_API.G_FALSE Then -- Code change done for Bug 11076978
7426
7427 l_qte_header_rec := p_qte_header_rec;
7428 l_hd_shipment_tbl := p_hd_shipment_tbl;
7429 l_hd_payment_tbl := p_hd_payment_tbl;
7430 l_hd_tax_detail_tbl := p_hd_tax_detail_tbl;
7431
7432 ElsIf l_control_rec.Change_Customer_flag = FND_API.G_TRUE Then -- Code change done for Bug 11076978
7433
7434 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7435 aso_debug_pub.add('Update_Quote - Change Customer Flow starts', 1, 'Y');
7436 END IF ;
7437
7438 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row ( p_qte_header_rec.Quote_Header_Id );
7439
7440 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows ( p_qte_header_id => p_qte_header_rec.Quote_Header_Id,
7441 p_qte_line_id => NULL );
7442
7443 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(p_qte_header_id =>p_qte_header_rec.Quote_Header_Id,p_qte_line_id =>NULL);
7444
7445 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows ( p_qte_header_id => p_qte_header_rec.Quote_Header_Id,
7446 p_qte_line_id => NULL,
7447 p_shipment_tbl => ASO_QUOTE_PUB.g_miss_shipment_tbl );
7448
7449 l_qte_header_rec.BATCH_PRICE_FLAG := FND_API.G_FALSE;
7450
7451 l_qte_header_rec.CUST_ACCOUNT_ID := P_Qte_Header_Rec.CUST_ACCOUNT_ID;
7452 l_qte_header_rec.CUST_PARTY_ID := P_Qte_Header_Rec.CUST_PARTY_ID;
7453 l_qte_header_rec.PARTY_ID := P_Qte_Header_Rec.CUST_PARTY_ID;
7454 l_qte_header_rec.SOLD_TO_PARTY_SITE_ID := P_Qte_Header_Rec.SOLD_TO_PARTY_SITE_ID;
7455
7456 l_qte_header_rec.PHONE_ID := Null;
7457
7458 l_qte_header_rec.INVOICE_TO_CUST_ACCOUNT_ID := P_Qte_Header_Rec.CUST_ACCOUNT_ID;
7459 l_qte_header_rec.INVOICE_TO_CUST_PARTY_ID := P_Qte_Header_Rec.CUST_PARTY_ID;
7460 l_qte_header_rec.INVOICE_TO_PARTY_ID := Null;
7461 l_qte_header_rec.INVOICE_TO_PARTY_SITE_ID := P_Qte_Header_Rec.SOLD_TO_PARTY_SITE_ID;
7462 l_qte_header_rec.INVOICE_TO_PARTY_NAME := Null;
7463 l_qte_header_rec.INVOICE_TO_CONTACT_FIRST_NAME := Null;
7464 l_qte_header_rec.INVOICE_TO_CONTACT_MIDDLE_NAME := Null;
7465 l_qte_header_rec.INVOICE_TO_CONTACT_LAST_NAME := Null;
7466 l_qte_header_rec.INVOICE_TO_ADDRESS1 := Null;
7467 l_qte_header_rec.INVOICE_TO_ADDRESS2 := Null;
7468 l_qte_header_rec.INVOICE_TO_ADDRESS3 := Null;
7469 l_qte_header_rec.INVOICE_TO_ADDRESS4 := Null;
7470 l_qte_header_rec.INVOICE_TO_COUNTRY_CODE := Null;
7471 l_qte_header_rec.INVOICE_TO_COUNTRY := Null;
7472 l_qte_header_rec.INVOICE_TO_CITY := Null;
7473 l_qte_header_rec.INVOICE_TO_POSTAL_CODE := Null;
7474 l_qte_header_rec.INVOICE_TO_STATE := Null;
7475 l_qte_header_rec.INVOICE_TO_PROVINCE := Null;
7476 l_qte_header_rec.INVOICE_TO_COUNTY := Null;
7477
7478 l_qte_header_rec.END_CUSTOMER_PARTY_ID := Null;
7479 l_qte_header_rec.END_CUSTOMER_PARTY_SITE_ID := Null;
7480 l_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID := Null;
7481 l_qte_header_rec.END_CUSTOMER_CUST_PARTY_ID := Null;
7482
7483 l_qte_header_rec.MARKETING_SOURCE_CODE_ID := Null;
7484 l_qte_header_rec.MARKETING_SOURCE_NAME := Null;
7485 l_qte_header_rec.MARKETING_SOURCE_CODE := Null;
7486
7487 /* commented for bug Bug 13064273
7488 l_qte_header_rec.PRICE_LIST_ID := P_Qte_Header_Rec.PRICE_LIST_ID;
7489 l_qte_header_rec.CURRENCY_CODE := P_Qte_Header_Rec.CURRENCY_CODE;
7490 */
7491
7492 -- Check for Pricing Agreement
7493 IF (l_qte_header_rec.contract_id IS NOT NULL AND
7494 l_qte_header_rec.contract_id <> FND_API.G_MISS_NUM) THEN
7495 Open C_AGREEMENT(l_qte_header_rec.CONTRACT_ID,l_qte_header_rec.INVOICE_TO_CUST_ACCOUNT_ID);
7496 Fetch C_AGREEMENT Into l_var;
7497
7498 If C_AGREEMENT%Found Then
7499 l_qte_header_rec.CONTRACT_ID := Null;
7500 End If;
7501 Close C_AGREEMENT;
7502 End If;
7503
7504 /* Start : Code change done for Bug 13064273 */
7505
7506 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7507 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - Price List defaulting starting', 1 , 'N' );
7508 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - Agreement Id : '||l_qte_header_rec.CONTRACT_ID, 1 , 'N' );
7509 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - Customer Account Id : '||l_qte_header_rec.CUST_ACCOUNT_ID, 1 , 'N' );
7510 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - Order Type Id : '||l_qte_header_rec.ORDER_TYPE_ID, 1 , 'N' );
7511 END IF;
7512
7513 Open C_Agreement_PL(l_qte_header_rec.CONTRACT_ID);
7514 Fetch C_Agreement_PL Into l_qte_header_rec.PRICE_LIST_ID,l_qte_header_rec.CURRENCY_CODE;
7515
7516 If C_Agreement_PL%FOUND then
7517
7518 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7519 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - Price List is defaulted based on Agreement', 1 , 'N' );
7520 END IF;
7521
7522 ElsIf C_Agreement_PL%NOTFOUND then
7523
7524 Open C_Customer_PL(l_qte_header_rec.CUST_ACCOUNT_ID);
7525 Fetch C_Customer_PL Into l_qte_header_rec.PRICE_LIST_ID,l_qte_header_rec.CURRENCY_CODE;
7526
7527 If C_Customer_PL%FOUND then
7528
7529 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7530 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - Price List is defaulted based on Customer Account', 1 , 'N' );
7531 END IF;
7532
7533 ElsIf C_Customer_PL%NOTFOUND then
7534
7535 Open C_Order_Type_PL(l_qte_header_rec.ORDER_TYPE_ID);
7536 Fetch C_Order_Type_PL Into l_qte_header_rec.PRICE_LIST_ID,l_qte_header_rec.CURRENCY_CODE;
7537
7538 If C_Order_Type_PL%FOUND then
7539 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7540 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - Price List is defaulted based on Order Type', 1 , 'N' );
7541 END IF;
7542 End If;
7543 Close C_Order_Type_PL;
7544
7545 End If;
7546 Close C_Customer_PL;
7547
7548 End If;
7549 Close C_Agreement_PL;
7550
7551 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7552 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - l_qte_header_rec.PRICE_LIST_ID : '||l_qte_header_rec.PRICE_LIST_ID, 1 , 'N' );
7553 aso_debug_pub.ADD ( 'Update_Quote , Change Customer Flow - l_qte_header_rec.CURRENCY_CODE : '||l_qte_header_rec.CURRENCY_CODE, 1 , 'N' );
7554 END IF;
7555
7556 /* End : Code change done for Bug 13064273 */
7557
7558 l_shipment_tbl(1).SHIP_TO_CUST_ACCOUNT_ID := P_Qte_Header_Rec.CUST_ACCOUNT_ID;
7559 l_shipment_tbl(1).SHIP_TO_CUST_PARTY_ID := P_Qte_Header_Rec.CUST_PARTY_ID;
7560 l_shipment_tbl(1).SHIP_TO_PARTY_ID := Null;
7561 l_shipment_tbl(1).SHIP_TO_PARTY_SITE_ID := P_Qte_Header_Rec.SOLD_TO_PARTY_SITE_ID;
7562 l_shipment_tbl(1).SHIP_TO_PARTY_NAME := Null;
7563 l_shipment_tbl(1).SHIP_TO_CONTACT_FIRST_NAME := Null;
7564 l_shipment_tbl(1).SHIP_TO_CONTACT_MIDDLE_NAME := Null;
7565 l_shipment_tbl(1).SHIP_TO_CONTACT_LAST_NAME := Null;
7566 l_shipment_tbl(1).SHIP_TO_ADDRESS1 := Null;
7567 l_shipment_tbl(1).SHIP_TO_ADDRESS2 := Null;
7568 l_shipment_tbl(1).SHIP_TO_ADDRESS3 := Null;
7569 l_shipment_tbl(1).SHIP_TO_ADDRESS4 := Null;
7570 l_shipment_tbl(1).SHIP_TO_COUNTRY_CODE := Null;
7571 l_shipment_tbl(1).SHIP_TO_COUNTRY := Null;
7572 l_shipment_tbl(1).SHIP_TO_CITY := Null;
7573 l_shipment_tbl(1).SHIP_TO_POSTAL_CODE := Null;
7574 l_shipment_tbl(1).SHIP_TO_STATE := Null;
7575 l_shipment_tbl(1).SHIP_TO_PROVINCE := Null;
7576 l_shipment_tbl(1).SHIP_TO_COUNTY := Null;
7577 l_shipment_tbl(1).SHIP_METHOD_CODE := Null;
7578 l_shipment_tbl(1).FREIGHT_TERMS_CODE := Null;
7579 l_shipment_tbl(1).FOB_CODE := Null;
7580 l_shipment_tbl(1).DEMAND_CLASS_CODE := Null;
7581 l_shipment_tbl(1).REQUEST_DATE_TYPE := Null;
7582 l_shipment_tbl(1).REQUEST_DATE := Null;
7583 l_shipment_tbl(1).SHIPMENT_PRIORITY_CODE := Null;
7584 l_shipment_tbl(1).SHIPPING_INSTRUCTIONS := Null;
7585 l_shipment_tbl(1).PACKING_INSTRUCTIONS := Null;
7586 l_shipment_tbl(1).OPERATION_CODE := 'UPDATE';
7587
7588 aso_debug_pub.add('Update_Quote - Change Customer Flow , Profile ASO_API_ENABLE_SECURITY : ' ||FND_PROFILE.VALUE ('ASO_API_ENABLE_SECURITY' ),1,'Y');
7589 aso_debug_pub.add('Update_Quote - Change Customer Flow , l_sales_team_prof : ' ||l_sales_team_prof,1,'Y');
7590
7591 If NVL ( FND_PROFILE.VALUE ('ASO_API_ENABLE_SECURITY' ), 'N' ) = 'Y' Then
7592 If (l_sales_team_prof = 'FULL' OR l_sales_team_prof = 'PARTIAL') Then
7593
7594 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7595 aso_debug_pub.ADD ( 'Update_Quote - Change Customer Flow , Before calling ASO_SALES_TEAM_PVT.Assign_Sales_Team ' , 1 , 'N' );
7596 END IF;
7597
7598 l_qte_header_rec.RESOURCE_ID := Null;
7599 l_qte_header_rec.RESOURCE_GRP_ID := Null;
7600
7601 ASO_SALES_TEAM_PVT.Assign_Sales_Team (
7602 P_Init_Msg_List => FND_API.G_FALSE,
7603 P_Commit => FND_API.G_FALSE,
7604 p_Qte_Header_Rec => l_qte_header_rec,
7605 P_Operation => 'UPDATE',
7606 x_Qte_Header_Rec => lx_qte_header_rec,
7607 x_return_status => x_return_status,
7608 x_msg_count => x_msg_count,
7609 x_msg_data => x_msg_data );
7610
7611 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7612 aso_debug_pub.add('Update_Quote - Change Customer Flow , After calling ASO_SALES_TEAM_PVT.Assign_Sales_Team , x_return_status: '||x_return_status, 1, 'N');
7613 END IF;
7614
7615 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
7616 RAISE FND_API.G_EXC_ERROR;
7617 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
7618 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7619 END IF;
7620
7621 l_qte_header_rec := lx_qte_header_rec;
7622 End If;
7623 End If;
7624
7625 If l_payment_tbl.Count > 0 Then
7626 If l_payment_tbl(1).PAYMENT_TYPE_CODE In ('CHECK','CREDIT_CARD') Then
7627 If l_payment_tbl(1).PAYMENT_TYPE_CODE = 'CREDIT_CARD' Then
7628 l_payment_tbl(1).CREDIT_CARD_CODE := Null;
7629 l_payment_tbl(1).CREDIT_CARD_HOLDER_NAME := Null;
7630 l_payment_tbl(1).CREDIT_CARD_EXPIRATION_DATE := Null;
7631 End If;
7632 l_payment_tbl(1).PAYMENT_TYPE_CODE := Null;
7633 l_payment_tbl(1).PAYMENT_REF_NUMBER := Null;
7634 End If;
7635
7636 OPEN c_pay_term_acct(P_Qte_Header_Rec.CUST_ACCOUNT_ID);
7637 FETCH c_pay_term_acct INTO l_payment_tbl(1).PAYMENT_TERM_ID;
7638 close c_pay_term_acct;
7639
7640 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7641 aso_debug_pub.add('Update_Quote - Change Customer Flow, l_payment_tbl(1).PAYMENT_TERM_ID : '||l_payment_tbl(1).PAYMENT_TERM_ID, 1, 'N');
7642 END IF;
7643
7644 l_payment_tbl(1).CUST_PO_NUMBER := Null;
7645 l_payment_tbl(1).cvv2 := Null;
7646 l_payment_tbl(1).OPERATION_CODE := 'UPDATE';
7647 End If;
7648
7649 If l_tax_detail_tbl.Count > 0 Then
7650 If l_tax_detail_tbl(1).TAX_EXEMPT_FLAG = 'E' Then
7651 l_tax_detail_tbl(1).TAX_EXEMPT_FLAG := Null;
7652 l_tax_detail_tbl(1).TAX_EXEMPT_NUMBER := Null;
7653 l_tax_detail_tbl(1).TAX_EXEMPT_REASON_CODE := Null;
7654 End If;
7655 l_tax_detail_tbl(1).OPERATION_CODE := 'UPDATE';
7656 End If;
7657
7658 l_qte_header_rec.Customer_Name_And_Title := NULL;
7659 l_qte_header_rec.Customer_Signature_Date := NULL;
7660 l_qte_header_rec.Supplier_Name_And_Title := NULL;
7661 l_qte_header_rec.Supplier_Signature_Date := NULL;
7662
7663 /*** Start : Code change done for Bug 11076978 ***/
7664 -- hyang defaulting framework begin
7665 IF l_control_rec.defaulting_fwk_flag = 'Y' THEN
7666
7667 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7668 aso_debug_pub.add('Update_Quote - Before defaulting framework', 1, 'Y');
7669 aso_debug_pub.add('Update_Quote - Populate defaulting control record from the header control record', 1, 'Y');
7670 END IF ;
7671
7672 l_def_control_rec.Dependency_Flag := l_control_rec.Dependency_Flag;
7673 l_def_control_rec.Defaulting_Flag := l_control_rec.Defaulting_Flag;
7674 l_def_control_rec.Application_Type_Code := l_control_rec.Application_Type_Code;
7675 l_def_control_rec.Defaulting_Flow_Code := 'UPDATE';
7676 l_def_control_rec.Last_Update_Date := P_Qte_Header_Rec.Last_Update_Date;
7677
7678 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7679 aso_debug_pub.add('Defaulting_Fwk_Flag - '||l_control_rec.Defaulting_Fwk_Flag, 1, 'Y');
7680 aso_debug_pub.add('Dependency_Flag - '||l_def_control_rec.Dependency_Flag, 1, 'Y');
7681 aso_debug_pub.add('Defaulting_Flag - '||l_def_control_rec.Defaulting_Flag, 1, 'Y');
7682 aso_debug_pub.add('Application_Type_Code - '||l_def_control_rec.Application_Type_Code, 1, 'Y');
7683 aso_debug_pub.add('Defaulting_Flow_Code - '||l_def_control_rec.Defaulting_Flow_Code, 1, 'Y');
7684 aso_debug_pub.add('Last_Update_Date - '||l_def_control_rec.Last_Update_Date, 1, 'Y');
7685 END IF ;
7686
7687 IF l_def_control_rec.application_type_code = 'QUOTING HTML'
7688 OR l_def_control_rec.application_type_code = 'QUOTING FORM' THEN
7689 l_db_object_name := G_QUOTE_HEADER_DB_NAME;
7690 ELSE
7691 l_control_rec.Defaulting_Fwk_Flag := 'N';
7692 END IF;
7693
7694 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7695 aso_debug_pub.add('Update_Quote - Pick '||l_db_object_name ||' based on calling application '||l_def_control_rec.application_type_code, 1, 'Y');
7696 END IF ;
7697
7698 IF l_shipment_tbl.count > 0 THEN
7699 l_hd_shipment_rec := l_shipment_tbl(1);
7700 END IF;
7701
7702 IF l_payment_tbl.count > 0 THEN
7703 l_hd_payment_rec := l_payment_tbl(1);
7704 END IF;
7705
7706 IF l_tax_detail_tbl.count > 0 THEN
7707 l_hd_tax_detail_rec := l_tax_detail_tbl(1);
7708 END IF;
7709
7710 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7711 aso_debug_pub.add('Update_Quote - Change Customer Flow , Before Call to Default_Entity', 1, 'Y');
7712 END IF ;
7713
7714 ASO_DEFAULTING_INT.Default_Entity (
7715 p_api_version => 1.0
7716 , p_control_rec => l_def_control_rec
7717 , p_database_object_name => l_db_object_name
7718 , p_quote_header_rec => l_qte_header_rec
7719 , p_header_misc_rec => l_hd_misc_rec
7720 , p_header_shipment_rec => l_hd_shipment_rec
7721 , p_header_payment_rec => l_hd_payment_rec
7722 , p_header_tax_detail_rec => l_hd_tax_detail_rec
7723 , x_quote_header_rec => lx_qte_header_rec -- code change done for Bug 12874975
7724 , x_header_misc_rec => lx_hd_misc_rec
7725 , x_header_shipment_rec => lx_hd_shipment_rec
7726 , x_header_payment_rec => lx_hd_payment_rec
7727 , x_header_tax_detail_rec => lx_hd_tax_detail_rec
7728 , x_quote_line_rec => lx_quote_line_rec
7729 , x_line_misc_rec => lx_ln_misc_rec
7730 , x_line_shipment_rec => lx_ln_shipment_rec
7731 , x_line_payment_rec => lx_ln_payment_rec
7732 , x_line_tax_detail_rec => lx_ln_tax_detail_rec
7733 , x_changed_flag => lx_changed_flag
7734 , x_return_status => x_return_status
7735 , x_msg_count => x_msg_count
7736 , x_msg_data => x_msg_data);
7737
7738 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7739 aso_debug_pub.add('Update_Quote - Change Customer Flow , After Call to Default_Entity , x_return_status : '||x_return_status, 1, 'Y');
7740 END IF ;
7741
7742 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7743
7744 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7745 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_DEFAULTING');
7746 FND_MSG_PUB.ADD;
7747 END IF;
7748
7749 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
7750 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7751 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
7752 RAISE FND_API.G_EXC_ERROR;
7753 END IF;
7754
7755 END IF;
7756
7757 l_qte_header_rec := lx_qte_header_rec; -- code change done for Bug 12874975
7758
7759 IF Shipment_Null_Rec_Exists(lx_hd_shipment_rec, l_db_object_name) THEN
7760 l_hd_shipment_tbl(1) := lx_hd_shipment_rec;
7761 END IF;
7762
7763 IF Payment_Null_Rec_Exists(lx_hd_payment_rec, l_db_object_name) THEN
7764 l_hd_payment_tbl(1) := lx_hd_payment_rec;
7765 END IF;
7766
7767 IF Tax_Detail_Null_Rec_Exists(lx_hd_tax_detail_rec, l_db_object_name) THEN
7768 l_hd_tax_detail_tbl(1) := lx_hd_tax_detail_rec;
7769 END IF;
7770
7771 ELSE
7772 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7773 aso_debug_pub.add('Update_Quote - Change Customer Flow , l_control_rec.defaulting_fwk_flag : N', 1, 'Y');
7774 END IF ;
7775
7776 l_hd_shipment_tbl := l_shipment_tbl;
7777 l_hd_payment_tbl := l_payment_tbl;
7778 l_hd_tax_detail_tbl := l_tax_detail_tbl;
7779
7780 END IF;
7781 -- hyang defaulting framework end
7782 /*** End : Code change done for Bug 11076978 ***/
7783
7784 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7785 aso_debug_pub.add('Update_Quote: Before call to aso_input_param_debug.print_quote_input procedure for change customer flow', 1, 'Y');
7786
7787 ASO_INPUT_PARAM_DEBUG.Print_quote_input(
7788 P_Quote_Header_Rec => l_qte_header_rec
7789 , P_hd_Price_Attributes_Tbl => ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl
7790 , P_hd_Payment_Tbl => l_hd_payment_tbl
7791 , P_hd_Shipment_tbl => l_hd_shipment_tbl
7792 , P_hd_Tax_Detail_Tbl => l_hd_tax_detail_tbl
7793 , P_hd_Sales_Credit_Tbl => ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl
7794 , P_Qte_Line_Tbl => ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL
7795 , P_Qte_Line_Dtl_Tbl => ASO_QUOTE_PUB.G_MISS_Qte_Line_Dtl_TBL
7796 , P_Price_Adjustment_Tbl => ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl
7797 , P_Ln_Price_Attributes_Tbl => ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl
7798 , P_Ln_Payment_Tbl => ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL
7799 , P_Ln_Shipment_Tbl => ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL
7800 , P_Ln_Tax_Detail_Tbl => ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl
7801 , P_ln_Sales_Credit_Tbl => ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl
7802 , P_Qte_Access_Tbl => ASO_QUOTE_PUB.G_MISS_QTE_ACCESS_TBL);
7803
7804 aso_debug_pub.add('Update_Quote: After call to aso_input_param_debug.print_quote_input procedure for change customer flow', 1, 'Y');
7805 END IF;
7806 End If;
7807 /* Code change for Quoting Usability Sun ER End */
7808
7809 OPEN c_qte_status (l_qte_status_id);
7810 FETCH C_qte_status INTO l_auto_version;
7811 CLOSE c_qte_status;
7812
7813 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7814 aso_debug_pub.add('Update_Quote - auto_version: '||l_auto_version, 1, 'N');
7815 END IF;
7816
7817 -- auto version check should be done only if the control rec is set
7818
7819 IF NVL(l_auto_version, 'Y') = 'Y' AND p_control_rec.auto_version_flag = FND_API.G_TRUE THEN
7820
7821 OPEN C_Qte_Version(l_qte_number);
7822 FETCH C_Qte_Version into l_qte_header_rec.quote_version;
7823 CLOSE C_Qte_Version;
7824
7825 l_qte_header_rec.quote_version := nvl(l_qte_header_rec.quote_version, 0) + 1;
7826
7827 ELSE
7828 l_auto_version := 'N';
7829
7830 END IF;
7831
7832 IF l_control_rec.defaulting_fwk_flag = 'N' THEN
7833
7834 /* Updating of Order type */
7835 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7836 aso_debug_pub.add('Update_Quote - p_qte_header_rec.order_type_id '||p_qte_header_rec.order_type_id, 1, 'N');
7837
7838 -- Change START
7839 -- Release 12 MOAC Changes : Bug 4500739
7840 -- Changes Done by : Girish
7841 -- Comments : Using HR EIT in place of org striped profile
7842
7843 -- aso_debug_pub.add('Update_Quote - Value of Order Type Profile'||to_number(fnd_profile.value('ASO_ORDER_TYPE_ID')), 1, 'N');
7844 aso_debug_pub.add('Update_Quote - Value of Order Type Profile'||to_number(ASO_UTILITY_PVT.GET_OU_ATTRIBUTE_VALUE(ASO_UTILITY_PVT.G_DEFAULT_ORDER_TYPE)), 1, 'N');
7845
7846 -- Change END
7847
7848 aso_debug_pub.add('Update_Quote - order_type_id from database '||l_order_type_id, 1, 'N');
7849 END IF;
7850
7851 IF p_qte_header_rec.order_type_id is null OR p_qte_header_rec.order_type_id = FND_API.G_MISS_NUM THEN
7852 IF l_order_type_id is NULL OR l_order_type_id = FND_API.G_MISS_NUM THEN
7853
7854 -- Change START
7855 -- Release 12 MOAC Changes : Bug 4500739
7856 -- Changes Done by : Girish
7857 -- Comments : Using HR EIT in place of org striped profile
7858
7859 --l_qte_header_rec.order_type_id := to_number(fnd_profile.value('ASO_ORDER_TYPE_ID'));
7860 l_qte_header_rec.order_type_id := to_number(ASO_UTILITY_PVT.GET_OU_ATTRIBUTE_VALUE(ASO_UTILITY_PVT.G_DEFAULT_ORDER_TYPE));
7861
7862 -- Change END
7863
7864 END IF;
7865 END IF;
7866
7867 END IF;
7868
7869 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7870 aso_debug_pub.add('Update_Quote - l_qte_header_rec.publish_flag '||l_qte_header_rec.publish_flag, 1, 'N');
7871 END IF;
7872
7873 IF l_qte_header_rec.publish_flag = 'Y' THEN
7874
7875 -- check for missing customer accounts in the quote
7876 ASO_CHECK_TCA_PVT.Check_Customer_Accounts (
7877 p_init_msg_list => fnd_api.g_false,
7878 p_qte_header_id => l_qte_header_rec.quote_header_id,
7879 x_return_status => x_return_status,
7880 x_msg_count => x_msg_count,
7881 x_msg_data => x_msg_data );
7882
7883 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7884 aso_debug_pub.add('Update_Quote - chk_cust_accts: x_return_status: '||x_return_status, 1, 'N');
7885 END IF;
7886
7887 IF x_return_status <> fnd_api.g_ret_sts_success THEN
7888 RAISE fnd_api.g_exc_error;
7889 END IF; -- end check_customer_accounts
7890
7891 -- assign the missing customer accounts to the quote
7892 ASO_CHECK_TCA_PVT.Assign_Customer_Accounts (
7893 p_init_msg_list => fnd_api.g_false,
7894 p_qte_header_id => l_qte_header_rec.quote_header_id,
7895 p_calling_api_flag => 1,
7896 x_return_status => x_return_status,
7897 x_msg_count => x_msg_count,
7898 x_msg_data => x_msg_data );
7899
7900 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7901 aso_debug_pub.add('Update_Quote - assign_cust_accts: x_return_status: '||x_return_status, 1, 'N');
7902 END IF;
7903
7904 IF x_return_status <> fnd_api.g_ret_sts_success THEN
7905 RAISE fnd_api.g_exc_error;
7906 END IF;
7907
7908 END IF; --l_qte_header_rec.publish_flag = 'Y' THEN
7909
7910
7911 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
7912
7913 -- party_id must exist and be active in HZ_PARTIES
7914 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7915 aso_debug_pub.add('Update_Quote - before validate_party: ', 1, 'N');
7916 END IF;
7917
7918 ASO_VALIDATE_PVT.Validate_Party (
7919 p_init_msg_list => FND_API.G_FALSE,
7920 p_party_id => l_qte_header_rec.party_id,
7921 p_party_usage => 'QUOTE_PARTY',
7922 x_return_status => x_return_status,
7923 x_msg_count => x_msg_count,
7924 x_msg_data => x_msg_data);
7925
7926 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7927
7928 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7929 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
7930 FND_MESSAGE.Set_Token('COLUMN', 'PARTY_ID', FALSE);
7931 FND_MSG_PUB.ADD;
7932 END IF;
7933 RAISE FND_API.G_EXC_ERROR;
7934
7935 END IF;
7936
7937 -- org_contact_id must be exist and active in HZ_ORG_CONTACTS
7938 ASO_VALIDATE_PVT.Validate_Contact (
7939 p_init_msg_list => FND_API.G_FALSE,
7940 p_contact_id => l_qte_header_rec.org_contact_id,
7941 p_contact_usage => 'ORG_CONTACT',
7942 x_return_status => x_return_status,
7943 x_msg_count => x_msg_count,
7944 x_msg_data => x_msg_data);
7945
7946 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7947
7948 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7949 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
7950 FND_MESSAGE.Set_Token('COLUMN', 'ORG_CONTACT_ID', FALSE);
7951 FND_MSG_PUB.ADD;
7952 END IF;
7953 RAISE FND_API.G_EXC_ERROR;
7954 END IF;
7955
7956 -- invoice_to_party_id must exist and be active in HZ_PARTIES and have the usage INVOICE.
7957
7958 ASO_VALIDATE_PVT.Validate_Party (
7959 p_init_msg_list => FND_API.G_FALSE,
7960 p_party_id => l_qte_header_rec.invoice_to_party_id,
7961 p_party_usage => 'INVOICE_TO_PARTY',
7962 x_return_status => x_return_status,
7963 x_msg_count => x_msg_count,
7964 x_msg_data => x_msg_data);
7965
7966 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7967
7968 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7969 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
7970 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_TO_PARTY_ID', FALSE);
7971 FND_MSG_PUB.ADD;
7972 END IF;
7973 RAISE FND_API.G_EXC_ERROR;
7974 END IF;
7975
7976 IF l_qte_header_rec.cust_account_id <> FND_API.G_MISS_NUM OR l_qte_header_rec.party_id <> FND_API.G_MISS_NUM THEN
7977
7978 IF l_qte_header_rec.cust_account_id <> FND_API.G_MISS_NUM THEN
7979 l_cust_account_id := l_qte_header_rec.cust_account_id;
7980 END IF;
7981
7982 IF l_qte_header_rec.party_id <> FND_API.G_MISS_NUM THEN
7983 l_party_id := l_qte_header_rec.party_id;
7984 END IF;
7985
7986 ASO_PARTY_INT.Validate_CustAccount (
7987 p_init_msg_list => FND_API.G_FALSE,
7988 p_party_id => l_party_id,
7989 p_cust_account_id => l_cust_account_id,
7990 x_return_status => x_return_status,
7991 x_msg_count => x_msg_count,
7992 x_msg_data => x_msg_data );
7993
7994 END IF;
7995
7996 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7997 RAISE FND_API.G_EXC_ERROR;
7998 END IF;
7999
8000
8001 /*** Start BugNo 8647883: R12.1.2 Service reference SUN ER ***/
8002
8003 -- Checking if lines table has service reference CUSTOMER_PRODUCT,PRODUCT_CATALOG
8004
8005 SELECT count(*)
8006 INTO ls_count
8007 FROM aso_quote_line_details a1,
8008 aso_quote_lines_all a2
8009 WHERE a2.quote_header_id = l_qte_header_rec.quote_header_id
8010 AND a1.quote_line_id = a2.quote_line_id
8011 AND SERVICE_REF_TYPE_CODE IN ('CUSTOMER_PRODUCT','PRODUCT_CATALOG');
8012
8013 IF ls_count > 0 then
8014 -- Fetching the value from DB for end customer and sold to for validation
8015 OPEN C_get_cust(l_qte_header_rec.quote_header_id);
8016 FETCH C_get_cust INTO ls_end_cust_account_id,ls_cust_account_id;
8017 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8018 aso_debug_pub.add('ASO_QUOTE_HEADERS_PVT UPDATE_QUOTE: header_id'||l_qte_header_rec.quote_header_id);
8019 aso_debug_pub.add('ASO_QUOTE_HEADERS_PVT UPDATE_QUOTE: cust Acct id'||ls_cust_account_id);
8020 aso_debug_pub.add('ASO_QUOTE_HEADERS_PVT UPDATE_QUOTE: end cust Acct id'||ls_end_cust_account_id);
8021 aso_debug_pub.add('ASO_QUOTE_HEADERS_PVT UPDATE_QUOTE: record end cust Acct id'||p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID);
8022 aso_debug_pub.add('ASO_QUOTE_HEADERS_PVT UPDATE_QUOTE: record end LAST_UPDATED_BY'||p_qte_header_rec.LAST_UPDATED_BY);
8023 END IF;
8024 IF C_get_cust%NOTFOUND THEN
8025 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8026 aso_debug_pub.add('ASO_QUOTE_HEADERS_PVT END CUST NOT FOUND');
8027 END IF;
8028 ls_cust_account_id := NULL;
8029 ls_end_cust_account_id:= NULL;
8030 END IF;
8031 CLOSE C_get_cust;
8032
8033
8034 -- Fetching the value from record structure of end customer for validation
8035 ls_ib_cust_account_id:=NULL;
8036 ls_ib_cust_account_id_orig:=NULL;
8037 ls_pc_cust_account_id:=NULL;
8038 ls_pc_cust_account_id_orig:=NULL;
8039
8040 IF ( (p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID is NULL) or ((p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID=FND_API.G_MISS_NUM) and (p_qte_header_rec.LAST_UPDATED_BY <> FND_API.G_MISS_NUM)) ) -- end customer is cleared
8041 OR
8042 ((p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID is NOT NULL ) and (p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM)) -- end customer is changed
8043
8044 THEN
8045 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8046 aso_debug_pub.add('UPDATE_QUOTE: End customer is changed');
8047 END IF;
8048
8049 IF (p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID is NULL) or (p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID=FND_API.G_MISS_NUM) -- Fetching sold to
8050 THEN
8051 ls_ib_cust_account_id:=NULL;
8052 IF p_qte_header_rec.CUST_ACCOUNT_ID <> FND_API.G_MISS_NUM THEN
8053 ls_pc_cust_account_id := p_qte_header_rec.CUST_ACCOUNT_ID;
8054 ELSE
8055 ls_pc_cust_account_id := ls_cust_account_id;
8056 END IF;
8057 ELSE -- Fetching end customer
8058 ls_ib_cust_account_id := p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID;
8059 ls_pc_cust_account_id := ls_ib_cust_account_id;
8060 END IF;
8061
8062 ls_pc_cust_account_id_orig := nvl(ls_end_cust_account_id, ls_cust_account_id); -- DB value of cust account, in case end customer is null use sold to customer
8063 ls_ib_cust_account_id_orig:= ls_end_cust_account_id;
8064
8065 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8066 aso_debug_pub.add('UPDATE_QUOTE: new ib cust: '|| ls_ib_cust_account_id);
8067 aso_debug_pub.add('UPDATE_QUOTE: original ib cust: '|| ls_ib_cust_account_id_orig);
8068 aso_debug_pub.add('UPDATE_QUOTE: new pc cust: '|| ls_pc_cust_account_id);
8069 aso_debug_pub.add('UPDATE_QUOTE: original pc cust: '|| ls_pc_cust_account_id_orig);
8070 END IF;
8071 END IF;
8072
8073 -- Install base validation
8074 -- Deleting the lines in case end customer is changed or cleared
8075 IF (ls_ib_cust_account_id is not NULL and ls_ib_cust_account_id_orig is not NULL and ls_ib_cust_account_id <> ls_ib_cust_account_id_orig )
8076 or (ls_ib_cust_account_id is null and ls_ib_cust_account_id_orig is not NULL)
8077 or (ls_ib_cust_account_id is not NULL and ls_ib_cust_account_id_orig is NULL)
8078
8079 THEN
8080 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8081 aso_debug_pub.add('UPDATE_QUOTE:install base validation');
8082
8083 END IF;
8084 for c1 in c_serv(l_qte_header_rec.quote_header_id)
8085 loop
8086 IF (c1.SERVICE_REF_TYPE_CODE = 'CUSTOMER_PRODUCT' ) THEN
8087 found:=0;
8088 FOR i IN 1..ls_qte_line_tbl.count LOOP
8089 if ls_qte_line_tbl(i).quote_line_id=c1.quote_line_id and
8090 ((ls_qte_line_tbl(i).END_CUSTOMER_CUST_ACCOUNT_ID = FND_API.G_MISS_NUM) or (ls_qte_line_tbl(i).END_CUSTOMER_CUST_ACCOUNT_ID is null)) then
8091 -- end customer is not there at line level
8092 ls_qte_line_tbl(i).operation_code:='DELETE';
8093 exit;
8094 found:=1;
8095 END IF;
8096 end loop;
8097 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8098 aso_debug_pub.add('UPDATE_QUOTE:install base validation found'||found);
8099
8100 END IF;
8101 if found=0 then
8102 l_qte_line_rec := aso_quote_pub.g_miss_qte_line_rec;
8103 l_qte_line_rec:=ASO_UTILITY_PVT.Query_Qte_Line_Row(c1.quote_line_id);
8104 if (l_qte_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID = FND_API.G_MISS_NUM) or (l_qte_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID is null) then
8105 l_qte_line_rec.operation_code:='DELETE';
8106 ls_qte_line_tbl(ls_qte_line_tbl.count+1):=l_qte_line_rec;
8107 end if;
8108 end if;
8109 END IF; -- customer product
8110 end loop;
8111 END IF;
8112
8113
8114
8115 -- Product Catalog validation
8116 -- Validating the lines as per service rules and deleting in case service validation fails for end customer
8117 -- IF (ls_cust_account_id is not null) or (ls_end_cust_account_id is not null )THEN
8118 IF ((ls_pc_cust_account_id is not NULL) and (ls_pc_cust_account_id_orig is not NULL) and (ls_pc_cust_account_id <> ls_pc_cust_account_id_orig ) )
8119 or (ls_pc_cust_account_id is null and ls_pc_cust_account_id_orig is not NULL)
8120 or (ls_pc_cust_account_id is not NULL and ls_pc_cust_account_id_orig is NULL)
8121 then
8122 for c1 in c_serv(l_qte_header_rec.quote_header_id)
8123 loop
8124 IF (c1.SERVICE_REF_TYPE_CODE = 'PRODUCT_CATALOG' ) THEN
8125 l_inventory_item_id:= c1.SERVICE_REF_LINE_ID;
8126 ls_service_inventory_item_id:=c1.inventory_item_id;
8127
8128
8129 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8130 aso_debug_pub.add('UPDATE_QUOTE:SERVICE_REF_TYPE_CODE '||c1.SERVICE_REF_TYPE_CODE);
8131 aso_debug_pub.add('UPDATE_QUOTE: PRODUCT_CATALOG service ref line id'||c1.SERVICE_REF_LINE_ID, 1, 'Y');
8132 aso_debug_pub.add('UPDATE_QUOTE: PRODUCT_CATALOG Servicable product'||l_inventory_item_id, 1, 'Y');
8133 aso_debug_pub.add('UPDATE_QUOTE: PRODUCT_CATALOG service item id'||ls_service_inventory_item_id, 1, 'Y');
8134 aso_debug_pub.add('UPDATE_QUOTE: PRODUCT_CATALOG DB customer id'||ls_cust_account_id, 1, 'Y');
8135 aso_debug_pub.add('UPDATE_QUOTE: PRODUCT_CATALOG DB end customer id'||ls_end_cust_account_id, 1, 'Y');
8136 aso_debug_pub.add('UPDATE_QUOTE: PRODUCT_CATALOG record structure end customer id'||ls_pc_cust_account_id, 1, 'Y');
8137 END IF;
8138
8139 l_check_service_rec.product_item_id := l_inventory_item_id;
8140 l_check_service_rec.service_item_id := c1.inventory_item_id;
8141 l_check_service_rec.customer_id := ls_pc_cust_account_id; --nvl(ls_end_cust_account_id,ls_cust_account_id);
8142 ASO_SERVICE_CONTRACTS_INT.Is_Service_Available(
8143 P_Api_Version_Number => 1.0 ,
8144 P_init_msg_list => p_init_msg_list,
8145 X_msg_Count => X_msg_count ,
8146 X_msg_Data => X_msg_data ,
8147 X_Return_Status => X_return_status ,
8148 p_check_service_rec => l_check_service_rec,
8149 X_Available_YN => l_Available_YN
8150 );
8151 IF l_Available_YN = 'N' THEN
8152 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8153 aso_debug_pub.add('UPDATE_QUOTE:SERVICE_not available');
8154 END IF;
8155
8156 found:=0;
8157 FOR i IN 1..ls_qte_line_tbl.count LOOP
8158 if ls_qte_line_tbl(i).quote_line_id=c1.quote_line_id and
8159 ((ls_qte_line_tbl(i).END_CUSTOMER_CUST_ACCOUNT_ID = FND_API.G_MISS_NUM) or (ls_qte_line_tbl(i).END_CUSTOMER_CUST_ACCOUNT_ID is null)) then
8160 -- end customer is not there at line level
8161 ls_qte_line_tbl(i).operation_code:='DELETE';
8162 exit;
8163 found:=1;
8164 END IF;
8165 end loop;
8166 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8167 aso_debug_pub.add('UPDATE_QUOTE:product base validation found'||found);
8168
8169 END IF;
8170 if found=0 then
8171 l_qte_line_rec := aso_quote_pub.g_miss_qte_line_rec;
8172 l_qte_line_rec:=ASO_UTILITY_PVT.Query_Qte_Line_Row(c1.quote_line_id);
8173 if (l_qte_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID = FND_API.G_MISS_NUM) or (l_qte_line_rec.END_CUSTOMER_CUST_ACCOUNT_ID is null) then
8174 l_qte_line_rec.operation_code:='DELETE';
8175 ls_qte_line_tbl(ls_qte_line_tbl.count+1):=l_qte_line_rec;
8176 end if;
8177 end if;
8178 END IF; -- service not available
8179 END IF; -- Product Catalog
8180 END LOOP; -- c_serv
8181 END IF; -- customer id not null
8182
8183 END IF; -- ls_count greater than 0
8184
8185 /*** End: BugNo 8647883: R12.1.2 Service reference SUN ER ***/
8186
8187
8188
8189 -- order_type must exist and be active in OE_ORDER_TYPES
8190
8191 ASO_TRADEIN_PVT.OrderType(
8192 p_init_msg_list => FND_API.G_FALSE,
8193 p_qte_header_rec => l_qte_header_rec,
8194 x_return_status => x_return_status,
8195 x_msg_count => x_msg_count,
8196 x_msg_data => x_msg_data);
8197
8198 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8199 RAISE FND_API.G_EXC_ERROR;
8200 END IF;
8201
8202 /*** Code for cursor C_Expire_Date and If condition added for Bug 13926015 ***/
8203
8204 Open C_Expire_Date(p_qte_header_rec.quote_header_id);
8205 Fetch C_Expire_Date Into l_Expire_Date;
8206 Close C_Expire_Date;
8207
8208 -- If l_Expire_Date <> to_char(p_qte_header_rec.quote_expiration_date,'DD-MON-RRRR') Then ,commented for bug 14099184
8209 If TRUNC(l_Expire_Date) <> TRUNC(p_qte_header_rec.quote_expiration_date) Then
8210
8211 ASO_VALIDATE_PVT.Validate_Quote_Exp_date(
8212 p_init_msg_list => FND_API.G_FALSE,
8213 p_quote_expiration_date => l_qte_header_rec.quote_expiration_date,
8214 x_return_status => x_return_status,
8215 x_msg_count => x_msg_count,
8216 x_msg_data => x_msg_data);
8217
8218 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8219
8220 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8221 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UPD_EXPIRATION_DATE');
8222 FND_MSG_PUB.ADD;
8223 END IF;
8224 RAISE FND_API.G_EXC_ERROR;
8225 END IF;
8226
8227 END IF;
8228 -- price list must exist and be active in OE_PRICE_LISTS
8229 ASO_VALIDATE_PVT.Validate_PriceList (
8230 p_init_msg_list => FND_API.G_FALSE,
8231 p_price_list_id => l_qte_header_rec.price_list_id,
8232 x_return_status => x_return_status,
8233 x_msg_count => x_msg_count,
8234 x_msg_data => x_msg_data);
8235
8236 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8237
8238 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8239 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
8240 FND_MESSAGE.Set_Token('COLUMN', 'PRICE_LIST_ID', FALSE);
8241 FND_MSG_PUB.ADD;
8242 END IF;
8243 RAISE FND_API.G_EXC_ERROR;
8244 END IF;
8245
8246 ASO_VALIDATE_PVT.Validate_Quote_Price_Exp(
8247 p_init_msg_list => FND_API.G_FALSE,
8248 p_price_list_id => l_qte_header_rec.price_list_id,
8249 p_quote_expiration_date => l_qte_header_rec.quote_expiration_date,
8250 x_return_status => x_return_status,
8251 x_msg_count => x_msg_count,
8252 x_msg_data => x_msg_data);
8253
8254 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8255
8256 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8257 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
8258 FND_MESSAGE.Set_Token('COLUMN', 'Price List Expires Before Quote', FALSE);
8259 FND_MSG_PUB.ADD;
8260 END IF;
8261 RAISE FND_API.G_EXC_ERROR;
8262 END IF;
8263
8264 -- if status is to be changed, a valid transition should exist.
8265 IF (l_qte_header_rec.quote_status_id IS NOT NULL
8266 AND l_qte_header_rec.quote_status_id <> FND_API.G_MISS_NUM
8267 AND l_qte_header_rec.quote_status_id <> l_qte_status_id) THEN
8268
8269 ASO_VALIDATE_PVT.Validate_Status_Transition(
8270 p_init_msg_list => FND_API.G_FALSE,
8271 p_source_status_id => l_qte_status_id,
8272 p_dest_status_id => l_qte_header_rec.quote_status_id,
8273 x_return_status => x_return_status,
8274 x_msg_count => x_msg_count,
8275 x_msg_data => x_msg_data);
8276
8277 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8278
8279 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8280 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_STATUS_TRANS');
8281 FND_MSG_PUB.ADD;
8282 END IF;
8283 RAISE FND_API.G_EXC_ERROR;
8284 END IF;
8285 END IF;
8286
8287
8288 FOR i in 1..p_hd_sales_credit_tbl.count LOOP
8289
8290 if aso_debug_pub.g_debug_flag = 'Y' then
8291 aso_debug_pub.add('p_hd_sales_credit_tbl('||i||').operation_code: '|| p_hd_sales_credit_tbl(i).operation_code,1,'Y');
8292 end if;
8293
8294 if (p_hd_sales_credit_tbl(i).operation_code = 'CREATE' or p_hd_sales_credit_tbl(i).operation_code = 'UPDATE') then
8295
8296 ASO_VALIDATE_PVT.Validate_Resource_id(
8297 p_init_msg_list => FND_API.G_FALSE,
8298 p_resource_id => p_hd_sales_credit_tbl(i).resource_id ,
8299 x_return_status => x_return_status,
8300 x_msg_count => x_msg_count,
8301 x_msg_data => x_msg_data);
8302
8303 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8304
8305 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8306 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_SALES_REP_ID');
8307 FND_MSG_PUB.ADD;
8308 END IF;
8309 RAISE FND_API.G_EXC_ERROR;
8310 END IF;
8311
8312
8313 ASO_VALIDATE_PVT.Validate_Resource_group_id(
8314 p_init_msg_list => FND_API.G_FALSE,
8315 p_resource_group_id => p_hd_sales_credit_tbl(i).resource_group_id,
8316 x_return_status => x_return_status,
8317 x_msg_count => x_msg_count,
8318 x_msg_data => x_msg_data);
8319
8320 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8321 RAISE FND_API.G_EXC_ERROR;
8322 END IF;
8323
8324
8325 ASO_VALIDATE_PVT.Validate_Salescredit_Type(
8326 p_init_msg_list => FND_API.G_FALSE,
8327 p_salescredit_type_id => p_hd_sales_credit_tbl(i).sales_credit_type_id,
8328 x_return_status => x_return_status,
8329 x_msg_count => x_msg_count,
8330 x_msg_data => x_msg_data);
8331
8332 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8333 RAISE FND_API.G_EXC_ERROR;
8334 END IF;
8335
8336
8337 ASO_VALIDATE_PVT.Validate_EmployPerson(
8338 p_init_msg_list => FND_API.G_FALSE,
8339 p_employee_id => p_hd_sales_credit_tbl(i).employee_person_id,
8340 x_return_status => x_return_status,
8341 x_msg_count => x_msg_count,
8342 x_msg_data => x_msg_data);
8343
8344 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8345 RAISE FND_API.G_EXC_ERROR;
8346 END IF;
8347
8348 end if;
8349
8350 END LOOP;
8351
8352 FOR i in 1..p_hd_quote_party_tbl.count LOOP
8353
8354 ASO_VALIDATE_PVT.Validate_Party_Type(
8355 p_init_msg_list => FND_API.G_FALSE,
8356 p_party_type => p_hd_quote_party_tbl(i).party_type,
8357 x_return_status => x_return_status,
8358 x_msg_count => x_msg_count,
8359 x_msg_data => x_msg_data);
8360
8361 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8362 RAISE FND_API.G_EXC_ERROR;
8363 END IF;
8364
8365 ASO_VALIDATE_PVT.Validate_Party(
8366 p_init_msg_list => FND_API.G_FALSE,
8367 p_party_id => p_hd_quote_party_tbl(i).party_id,
8368 p_party_usage => null,
8369 x_return_status => x_return_status,
8370 x_msg_count => x_msg_count,
8371 x_msg_data => x_msg_data);
8372
8373 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8374 RAISE FND_API.G_EXC_ERROR;
8375 END IF;
8376
8377 ASO_VALIDATE_PVT.Validate_Party_Object_Type(
8378 p_init_msg_list => FND_API.G_FALSE,
8379 p_party_object_type => p_hd_quote_party_tbl(i).party_object_type,
8380 x_return_status => x_return_status,
8381 x_msg_count => x_msg_count,
8382 x_msg_data => x_msg_data);
8383
8384 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8385 RAISE FND_API.G_EXC_ERROR;
8386 END IF;
8387
8388 END LOOP;
8389
8390 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
8391
8392 IF l_hd_Shipment_tbl.count > 0 THEN
8393 l_shipment_rec := l_hd_Shipment_tbl(1);
8394 END IF;
8395
8396 ASO_VALIDATE_PVT.Validate_item_tca_bsc(
8397 p_init_msg_list => FND_API.G_FALSE,
8398 p_qte_header_rec => l_qte_header_rec,
8399 p_shipment_rec => l_shipment_rec,
8400 p_operation_code => 'UPDATE',
8401 p_application_type_code => l_control_rec.application_type_code,
8402 x_return_status => x_return_status,
8403 x_msg_count => x_msg_count,
8404 x_msg_data => x_msg_data);
8405
8406 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8407 RAISE FND_API.G_EXC_ERROR;
8408 END IF;
8409
8410 END IF;
8411
8412 END IF;
8413
8414 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD THEN
8415
8416 IF l_qte_header_rec.currency_code IS NULL THEN
8417
8418 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8419 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
8420 FND_MESSAGE.Set_Token('COLUMN', 'CURRENCY_CODE', FALSE);
8421 FND_MSG_PUB.ADD;
8422 END IF;
8423 RAISE FND_API.G_EXC_ERROR;
8424 END IF;
8425
8426 -- tax_exempt_flag must be in 'E', 'R' and 'S'
8427 -- and tax_exempt_reason_code must exist if tax_exempt_flag is 'E'.
8428
8429 FOR i IN 1..l_hd_tax_detail_tbl.count LOOP
8430
8431 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
8432 p_init_msg_list => FND_API.G_FALSE,
8433 p_tax_exempt_flag => l_hd_tax_detail_tbl(i).tax_exempt_flag,
8434 p_tax_exempt_reason_code => l_hd_tax_detail_tbl(i).tax_exempt_reason_code,
8435 x_return_status => x_return_status,
8436 x_msg_count => x_msg_count,
8437 x_msg_data => x_msg_data);
8438
8439 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8440
8441 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8442 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
8443 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
8444 FND_MSG_PUB.ADD;
8445 END IF;
8446 RAISE FND_API.G_EXC_ERROR;
8447 END IF;
8448
8449 END LOOP;
8450
8451 FOR i IN 1..p_ln_tax_detail_tbl.count LOOP
8452
8453 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
8454 p_init_msg_list => FND_API.G_FALSE,
8455 p_tax_exempt_flag => p_ln_tax_detail_tbl(i).tax_exempt_flag,
8456 p_tax_exempt_reason_code => p_ln_tax_detail_tbl(i).tax_exempt_reason_code,
8457 x_return_status => x_return_status,
8458 x_msg_count => x_msg_count,
8459 x_msg_data => x_msg_data);
8460
8461 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8462
8463 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8464 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
8465 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
8466 FND_MSG_PUB.ADD;
8467 END IF;
8468
8469 RAISE FND_API.G_EXC_ERROR;
8470 END IF;
8471
8472 END LOOP;
8473
8474 FOR i in 1..p_hd_quote_party_tbl.count LOOP
8475
8476 ASO_VALIDATE_PVT.Validate_Party_Object_Id(
8477 p_init_msg_list => FND_API.G_FALSE,
8478 p_party_id => p_hd_quote_party_tbl(i).party_id,
8479 p_party_object_type => p_hd_quote_party_tbl(i).party_object_type,
8480 p_party_object_id => p_hd_quote_party_tbl(i).party_object_id,
8481 x_return_status => x_return_status,
8482 x_msg_count => x_msg_count,
8483 x_msg_data => x_msg_data);
8484
8485 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8486
8487 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8488 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
8489 FND_MESSAGE.Set_Token('INFO', 'PARTY OBJECT ID', FALSE);
8490 FND_MSG_PUB.ADD;
8491 END IF;
8492 RAISE FND_API.G_EXC_ERROR;
8493 END IF;
8494
8495 END LOOP;
8496
8497
8498 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
8499
8500 IF l_hd_Shipment_tbl.count > 0 THEN
8501 l_shipment_rec := l_hd_Shipment_tbl(1);
8502 END IF;
8503
8504 ASO_VALIDATE_PVT.Validate_record_tca_crs(
8505 p_init_msg_list => FND_API.G_FALSE,
8506 p_qte_header_rec => l_qte_header_rec,
8507 p_shipment_rec => l_shipment_rec,
8508 p_operation_code => 'UPDATE',
8509 p_application_type_code => l_control_rec.application_type_code,
8510 x_return_status => x_return_status,
8511 x_msg_count => x_msg_count,
8512 x_msg_data => x_msg_data);
8513
8514 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8515 RAISE FND_API.G_EXC_ERROR;
8516 END IF;
8517 END IF;
8518
8519 END IF;
8520
8521 IF l_hd_payment_tbl.count > 0 THEN
8522
8523 FOR payment_rec IN c_payment_rec LOOP
8524 l_payment_db_tbl(payment_rec.payment_id) := payment_rec.payment_option;
8525 END LOOP;
8526
8527 FOR i IN 1..l_hd_payment_tbl.count LOOP
8528
8529 IF l_hd_payment_tbl(i).operation_code = 'CREATE' THEN
8530
8531 l_payment_db_tbl(NVL(l_payment_db_tbl.last, 0)+1) := l_hd_payment_tbl(i).payment_option;
8532
8533 ELSIF l_hd_payment_tbl(i).operation_code = 'UPDATE' THEN
8534
8535 IF l_hd_payment_tbl(i).payment_id <> FND_API.G_MISS_NUM AND
8536 l_payment_db_tbl.exists(l_hd_payment_tbl(i).payment_id) AND
8537 l_hd_payment_tbl(i).payment_option <> FND_API.G_MISS_CHAR THEN
8538
8539 l_payment_db_tbl(l_hd_payment_tbl(i).payment_id) := l_hd_payment_tbl(i).payment_option;
8540 END IF;
8541
8542 ELSIF l_hd_payment_tbl(i).operation_code = 'DELETE' THEN
8543
8544 IF l_hd_payment_tbl(i).payment_id <> FND_API.G_MISS_NUM AND
8545 l_payment_db_tbl.exists(l_hd_payment_tbl(i).payment_id) THEN
8546
8547 l_payment_db_tbl.DELETE(l_hd_payment_tbl(i).payment_id);
8548 END IF;
8549
8550 END IF;
8551
8552 END LOOP;
8553
8554 IF (FND_PROFILE.Value('ASO_ENABLE_SPLIT_PAYMENT') = 'N') THEN
8555
8556 IF l_hd_payment_tbl.count > 1 THEN
8557
8558 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8559 FND_MESSAGE.Set_Name('ASO', 'ASO_API_SPLIT_PAYMENT');
8560 FND_MSG_PUB.ADD;
8561 END IF;
8562 RAISE FND_API.G_EXC_ERROR;
8563
8564 ELSIF l_hd_payment_tbl.count = 1 THEN
8565
8566 IF l_hd_payment_tbl(1).payment_option = 'SPLIT' THEN
8567
8568 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8569 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_PAYMENTS');
8570 FND_MSG_PUB.ADD;
8571 END IF;
8572 RAISE FND_API.G_EXC_ERROR;
8573 END IF;
8574
8575 END IF;-- l_payment_db_tbl
8576
8577 END IF;-- FND_PROFILE.Value
8578
8579
8580 IF (FND_PROFILE.Value('ASO_ENABLE_SPLIT_PAYMENT') = 'Y') THEN
8581
8582 IF l_hd_payment_tbl.count > 1 THEN
8583
8584 l_index := l_payment_db_tbl.first;
8585
8586 WHILE l_index IS NOT NULL LOOP
8587
8588 IF l_payment_db_tbl(l_index) <> 'SPLIT' THEN
8589
8590 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8591 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_PAYMENTS');
8592 FND_MSG_PUB.ADD;
8593 END IF;
8594 RAISE FND_API.G_EXC_ERROR;
8595 END IF;
8596 l_index := l_payment_db_tbl.next(l_index);
8597 END LOOP;
8598
8599 END IF;
8600 END IF; ---- FND_PROFILE.Value
8601
8602 END IF;
8603
8604
8605 IF l_hd_shipment_tbl.count > 0 THEN
8606
8607 FOR shipment_rec IN c_shipment_rec LOOP
8608 l_shipment_db_tbl(shipment_rec.shipment_id) := NULL;
8609 END LOOP;
8610
8611 FOR i IN 1..l_hd_shipment_tbl.count LOOP
8612
8613 IF l_hd_shipment_tbl(i).operation_code = 'CREATE' THEN
8614
8615 l_shipment_db_tbl(NVL(l_shipment_db_tbl.last,0)+1) := NULL;
8616 ELSIF l_hd_shipment_tbl(i).operation_code = 'DELETE' THEN
8617
8618 IF l_hd_shipment_tbl(i).shipment_id <> FND_API.G_MISS_NUM AND
8619 l_shipment_db_tbl.exists(l_hd_shipment_tbl(i).shipment_id) THEN
8620
8621 l_shipment_db_tbl.DELETE(l_hd_shipment_tbl(i).shipment_id);
8622 END IF;
8623 END IF;
8624
8625 END LOOP;
8626
8627 IF l_shipment_db_tbl.count > 1 THEN
8628
8629 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8630 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_SHIPMENTS');
8631 FND_MSG_PUB.ADD;
8632 END IF;
8633 RAISE FND_API.G_EXC_ERROR;
8634 END IF;
8635
8636 END IF;
8637
8638 -- Validate Tax; ( there should be only one rec having NOT NULL orig_tax_code)
8639 IF l_hd_tax_detail_tbl.count > 0 THEN
8640
8641 FOR tax_rec IN c_tax_rec LOOP
8642 l_tax_db_tbl(tax_rec.tax_detail_id) := NULL;
8643 END LOOP;
8644
8645 FOR i IN 1..l_hd_tax_detail_tbl.count LOOP
8646
8647 IF l_hd_tax_detail_tbl(i).operation_code ='CREATE' THEN
8648
8649 l_tax_db_tbl(NVL(l_tax_db_tbl.last,0)+1) := NULL;
8650
8651 ELSIF l_hd_tax_detail_tbl(i).operation_code ='DELETE' AND
8652 l_hd_tax_detail_tbl(i).tax_detail_id <> FND_API.G_MISS_NUM AND
8653 l_tax_db_tbl.exists(l_hd_tax_detail_tbl(i).tax_detail_id) THEN
8654
8655 l_tax_db_tbl.delete(l_hd_tax_detail_tbl(i).tax_detail_id);
8656 END IF;
8657
8658 END LOOP;
8659
8660 IF l_tax_db_tbl.count > 1 THEN
8661
8662 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8663 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_TAX_RECORDS');
8664 FND_MSG_PUB.ADD;
8665 END IF;
8666 RAISE FND_API.G_EXC_ERROR;
8667
8668 END IF;
8669
8670 END IF;
8671
8672
8673 IF l_auto_version = 'Y' THEN
8674
8675 l_old_header_rec := ASO_UTILITY_PVT.Query_Header_Row(l_qte_header_rec.QUOTE_HEADER_ID);
8676
8677 -- updating the existing version to a higher version
8678 -- this is done here because copy quote will fail to
8679 -- insert duplicate quote number/version
8680
8681 l_copy_quote_control_rec.new_version := FND_API.G_TRUE;
8682 l_copy_quote_header_rec.quote_header_id := l_old_header_rec.quote_header_id;
8683
8684 aso_copy_quote_pvt.copy_quote( P_Api_Version_Number => 1.0,
8685 P_Init_Msg_List => FND_API.G_FALSE,
8686 P_Commit => FND_API.G_FALSE,
8687 P_Copy_Quote_Header_Rec => l_copy_quote_header_rec,
8688 P_Copy_Quote_Control_Rec => l_copy_quote_control_rec,
8689 X_Qte_Header_Id => l_qte_header_id,
8690 X_Qte_Number => l_quote_number,
8691 X_Return_Status => l_return_status,
8692 X_Msg_Count => x_msg_count,
8693 X_Msg_Data => x_msg_data
8694 );
8695
8696 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8697 aso_debug_pub.add('Update_Quote: After copy_quote l_return_status: ' || l_return_status);
8698 aso_debug_pub.add('Update_Quote: After copy_quote l_qte_header_id: ' || l_qte_header_id);
8699 aso_debug_pub.add('Update_Quote: After copy_quote l_quote_number: ' || l_quote_number);
8700 END IF;
8701
8702 update aso_quote_headers_all
8703 set quote_version = l_qte_header_rec.quote_version + 1,
8704 max_version_flag = 'Y',
8705 creation_date = sysdate
8706 where quote_header_id = l_qte_header_rec.quote_header_id;
8707
8708 update aso_quote_headers_all
8709 set max_version_flag = 'N',
8710 quote_version = l_old_header_rec.quote_version,
8711 quote_status_id = l_old_header_rec.quote_status_id,
8712 creation_date = l_old_header_rec.creation_date,
8713 created_by = l_old_header_rec.created_by,
8714 last_update_date = sysdate,
8715 last_updated_by = g_user_id,
8716 last_update_login = g_login_id
8717 where quote_header_id = l_qte_header_id;
8718
8719 update aso_quote_headers_all
8720 set quote_version = l_qte_header_rec.quote_version,
8721 last_update_date = sysdate,
8722 created_by = g_user_id,
8723 last_updated_by = g_user_id,
8724 last_update_login = g_login_id
8725 where quote_header_id = l_qte_header_rec.quote_header_id;
8726
8727 open c_last_update_date(l_qte_header_rec.quote_header_id);
8728 fetch c_last_update_date into l_qte_header_rec.last_update_date;
8729 close c_last_update_date;
8730
8731 l_control_rec.last_update_date := l_qte_header_rec.last_update_date;
8732
8733 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8734 aso_debug_pub.add('Update_Quote: After updating aso_quote_headers_all table for auto versioning.');
8735 aso_debug_pub.add('l_qte_header_rec.last_update_date: '|| l_qte_header_rec.last_update_date);
8736 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
8737 END IF;
8738
8739 END IF;
8740
8741
8742 l_index := 1;
8743
8744 FOR i IN 1..p_price_adjustment_tbl.count LOOP
8745
8746 IF (p_price_adjustment_tbl(i).qte_line_index IS NULL OR
8747 p_price_adjustment_tbl(i).qte_line_index = FND_API.G_MISS_NUM) AND
8748 (p_price_adjustment_tbl(i).quote_line_id IS NULL OR
8749 p_price_adjustment_tbl(i).quote_line_id = FND_API.G_MISS_NUM) THEN
8750
8751 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(i);
8752 l_prc_index_link(l_index) := i;
8753 l_prc_index_link_rev(i) := l_index;
8754 l_index := l_index + 1;
8755 END IF;
8756
8757 END LOOP;
8758
8759 FOR i IN 1..p_price_adj_attr_tbl.count LOOP
8760
8761 IF (p_price_adj_attr_tbl(i).qte_line_index IS NULL OR
8762 p_price_adj_attr_tbl(i).qte_line_index = FND_API.G_MISS_NUM) THEN
8763
8764 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(i);
8765
8766 IF p_price_adj_attr_tbl(i).price_adj_index <> FND_API.G_MISS_NUM AND
8767 l_prc_index_link_rev.exists(p_price_adj_attr_tbl(i).price_adj_index) THEN
8768
8769 l_price_adj_attr_tbl(l_index).price_adj_index := l_prc_index_link_rev(l_price_adj_attr_tbl(l_index).price_adj_index);
8770 END IF;
8771
8772 l_index := l_index + 1;
8773 END IF;
8774
8775 END LOOP;
8776
8777
8778 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
8779
8780 IF l_hd_shipment_tbl.count > 0 THEN
8781 l_hd_shipment_tbl(1) := l_hd_shipment_tbl(1);
8782 l_shipment_rec := l_hd_shipment_tbl(1);
8783 END IF;
8784
8785 ASO_VALIDATE_PVT.Validate_record_tca_crs(
8786 p_init_msg_list => FND_API.G_FALSE,
8787 p_qte_header_rec => l_qte_header_rec,
8788 p_shipment_rec => l_shipment_rec,
8789 p_operation_code => 'UPDATE',
8790 p_application_type_code => l_control_rec.application_type_code,
8791 x_return_status => x_return_status,
8792 x_msg_count => x_msg_count,
8793 x_msg_data => x_msg_data);
8794
8795 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8796 RAISE FND_API.G_EXC_ERROR;
8797 END IF;
8798
8799 -- bug 5196952 validate the ship method code if the ship method gets updated or the org gets updated
8800 IF ((l_shipment_rec.ship_method_code is not null and l_shipment_rec.ship_method_code <> fnd_api.g_miss_char and l_shipment_rec.operation_code = 'UPDATE')
8801 or (P_Qte_Header_Rec.org_id is not null and P_Qte_Header_Rec.org_id <> fnd_api.g_miss_num)) THEN
8802
8803 -- get the value from db if not passed in
8804 IF (P_Qte_Header_Rec.org_id is null or P_Qte_Header_Rec.org_id = fnd_api.g_miss_num ) THEN
8805 OPEN c_org_id(l_qte_header_rec.quote_header_id);
8806 FETCH c_org_id into l_quote_org_id;
8807 CLOSE c_org_id;
8808 ELSE
8809 l_quote_org_id := P_Qte_Header_Rec.org_id;
8810 END IF;
8811
8812 -- get the master org id from the quote hdr org id
8813 OPEN c_inv_org_id(l_quote_org_id);
8814 FETCH c_inv_org_id into l_master_organization_id;
8815 CLOSE c_inv_org_id;
8816
8817 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8818 aso_debug_pub.add('Update_Quote - l_shipment_rec.ship_method_code: '|| l_shipment_rec.ship_method_code, 1, 'N');
8819 aso_debug_pub.add('Update_Quote - P_Qte_Header_Rec.org_id: '|| P_Qte_Header_Rec.org_id, 1, 'N');
8820 aso_debug_pub.add('Update_Quote - l_master_organization_id: '|| l_master_organization_id, 1, 'N');
8821 aso_debug_pub.add('Update_Quote - l_quote_org_id : '|| l_quote_org_id, 1, 'N');
8822 aso_debug_pub.add('Update_Quote - before validate ship_method_code ', 1, 'N');
8823 end if;
8824 ASO_VALIDATE_PVT.validate_ship_method_code
8825 (
8826 p_init_msg_list => fnd_api.g_false,
8827 p_qte_header_id => l_qte_header_rec.quote_header_id,
8828 p_qte_line_id => fnd_api.g_miss_num,
8829 p_organization_id => l_master_organization_id,
8830 p_ship_method_code => l_shipment_rec.ship_method_code,
8831 p_operation_code => l_shipment_rec.operation_code,
8832 x_return_status => x_return_status,
8833 x_msg_count => x_msg_count,
8834 x_msg_data => x_msg_data);
8835
8836 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8837 aso_debug_pub.add('Update_Quote - After validate ship_method_code ', 1, 'N');
8838 end if;
8839
8840 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8841 RAISE FND_API.G_EXC_ERROR;
8842 END IF;
8843 end if; -- end if for ship method code check
8844
8845 END IF;
8846
8847 ASO_CHECK_TCA_PVT.check_tca(
8848 p_api_version => 1.0,
8849 p_init_msg_list => FND_API.G_FALSE,
8850 P_Qte_Rec => l_qte_header_rec,
8851 p_Header_Shipment_Tbl => l_hd_Shipment_Tbl,
8852 P_Operation_Code => 'UPDATE',
8853 p_application_type_code => l_control_rec.application_type_code,
8854 x_return_status => x_return_status,
8855 x_msg_count => x_msg_count,
8856 x_msg_data => x_msg_data);
8857
8858 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8859 RAISE FND_API.G_EXC_ERROR;
8860 END IF;
8861
8862 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8863 aso_debug_pub.add('Update_Quote - before Validate_Agreement:l_qte_header_rec.contract_id: '||l_qte_header_rec.contract_id, 1, 'N');
8864 END IF;
8865
8866 IF (l_qte_header_rec.contract_id IS NOT NULL AND
8867 l_qte_header_rec.contract_id <> FND_API.G_MISS_NUM) THEN
8868
8869 ASO_VALIDATE_PVT.Validate_Agreement(
8870 p_init_msg_list => FND_API.G_FALSE,
8871 P_Agreement_Id => l_qte_header_rec.contract_id,
8872 x_return_status => x_return_status,
8873 x_msg_count => x_msg_count,
8874 x_msg_data => x_msg_data);
8875
8876 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8877 aso_debug_pub.add('Update_Quote - after Validate_Agreement:x_return_status: '||x_return_status, 1, 'N');
8878 END IF;
8879
8880 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8881 RAISE FND_API.G_EXC_ERROR;
8882 END IF;
8883
8884 END IF;
8885
8886 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8887 aso_debug_pub.add('Update_Quote: l_qte_header_rec.minisite_id: '|| l_qte_header_rec.minisite_id);
8888 END IF;
8889
8890 IF (l_qte_header_rec.minisite_id IS NOT NULL AND
8891 l_qte_header_rec.minisite_id <> FND_API.G_MISS_NUM) THEN
8892
8893 ASO_VALIDATE_PVT.Validate_MiniSite( p_init_msg_list => FND_API.G_FALSE,
8894 p_minisite_id => l_qte_header_rec.minisite_id,
8895 x_return_status => x_return_status,
8896 x_msg_count => x_msg_count,
8897 x_msg_data => x_msg_data);
8898
8899 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8900 aso_debug_pub.add('Update_Quote: After call to ASO_VALIDATE_PVT.Validate_MiniSite');
8901 aso_debug_pub.add('Update_Quote: x_return_status: '|| x_return_status);
8902 END IF;
8903
8904 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8905 RAISE FND_API.G_EXC_ERROR;
8906 END IF;
8907
8908 END IF;
8909
8910 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8911 aso_debug_pub.add('Update_Quote: Before call to update_rows procedures', 1, 'Y');
8912 END IF;
8913
8914 Update_Rows (
8915 p_qte_header_rec => l_qte_header_rec,
8916 p_Price_Attributes_Tbl => p_hd_price_attributes_tbl,
8917 P_Price_Adjustment_Tbl => l_price_adj_tbl,
8918 P_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl,
8919 P_Payment_Tbl => l_hd_payment_tbl,
8920 P_Shipment_Tbl => l_hd_shipment_tbl,
8921 P_Freight_Charge_Tbl => p_hd_freight_charge_tbl,
8922 P_Tax_Detail_Tbl => l_hd_tax_detail_tbl,
8923 P_hd_Attr_Ext_Tbl => P_hd_Attr_Ext_Tbl,
8924 P_sales_credit_tbl => p_hd_sales_credit_tbl,
8925 P_quote_party_tbl => p_hd_quote_party_tbl,
8926 P_Qte_Access_Tbl => P_Qte_Access_Tbl,
8927 x_qte_header_rec => x_qte_header_rec,
8928 x_Price_Attributes_Tbl => x_hd_price_attributes_tbl,
8929 x_Price_Adjustment_Tbl => l_price_adj_tbl_out,
8930 x_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl_out,
8931 x_Payment_Tbl => x_hd_payment_tbl,
8932 x_Shipment_Tbl => x_hd_shipment_tbl,
8933 x_Freight_Charge_Tbl => x_hd_freight_charge_tbl,
8934 x_Tax_Detail_Tbl => x_hd_tax_detail_tbl,
8935 x_hd_Attr_Ext_Tbl => x_hd_Attr_Ext_Tbl,
8936 x_sales_credit_tbl => x_hd_sales_credit_tbl,
8937 x_quote_party_tbl => x_hd_quote_party_tbl,
8938 x_Qte_Access_Tbl => x_Qte_Access_Tbl,
8939 X_Return_Status => l_return_status,
8940 X_Msg_Count => x_msg_count,
8941 X_Msg_Data => x_msg_data);
8942
8943 l_price_adj_tbl := l_price_adj_tbl_out;
8944 l_price_adj_attr_tbl := l_price_adj_attr_tbl_out;
8945
8946 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8947 aso_debug_pub.add('Update_Quote: After call to update_rows: l_return_status: ' || l_return_status, 1, 'Y');
8948 aso_debug_pub.add('Update_Quote: value of ASO_API_ENABLE_SECURITY: ' || FND_PROFILE.value('ASO_API_ENABLE_SECURITY'), 1, 'Y');
8949 END IF;
8950
8951 -- Add template rows to p_qte_line_tbl and p_qte_line_dtl tbales
8952
8953 if aso_debug_pub.g_debug_flag = 'Y' then
8954 aso_debug_pub.add('Update_Quote: p_template_tbl.count: ' || p_template_tbl.count, 1, 'Y');
8955 end if;
8956
8957 if p_template_tbl.count > 0 then
8958
8959 for i in 1..p_template_tbl.count loop
8960 l_template_tbl(i) := p_template_tbl(i).template_id;
8961 end loop;
8962
8963 if x_qte_header_rec.currency_code is null or x_qte_header_rec.currency_code = fnd_api.g_miss_char then
8964 x_qte_header_rec.currency_code := l_currency_code;
8965 end if;
8966
8967 if x_qte_header_rec.price_list_id is null or x_qte_header_rec.price_list_id = fnd_api.g_miss_num then
8968 x_qte_header_rec.price_list_id := l_price_list_id;
8969 end if;
8970
8971
8972 if x_qte_header_rec.cust_account_id is null or x_qte_header_rec.cust_account_id = fnd_api.g_miss_num then
8973 x_qte_header_rec.cust_account_id := l_cust_account_id;
8974 end if;
8975
8976 if aso_debug_pub.g_debug_flag = 'Y' then
8977 aso_debug_pub.add('Update_Quote: l_template_tbl.count: ' || l_template_tbl.count, 1, 'Y');
8978 aso_debug_pub.add('Update_Quote: Before call to aso_quote_templ_pvt.add_template_to_quote procedure', 1, 'Y');
8979 end if;
8980
8981 aso_quote_tmpl_pvt.add_template_to_quote(
8982 p_api_version_number => 1.0,
8983 p_init_msg_list => fnd_api.g_false,
8984 p_commit => fnd_api.g_false,
8985 p_validation_level => p_validation_level,
8986 p_update_flag => 'N',
8987 p_template_id_tbl => l_template_tbl,
8988 p_qte_header_rec => x_qte_header_rec,
8989 p_control_rec => p_control_rec,
8990 x_qte_line_tbl => lx_qte_line_tbl,
8991 x_qte_line_dtl_tbl => x_qte_line_dtl_tbl,
8992 x_return_status => x_return_status,
8993 x_msg_count => x_msg_count,
8994 x_msg_data => x_msg_data
8995 );
8996
8997
8998 if aso_debug_pub.g_debug_flag = 'Y' then
8999
9000 aso_debug_pub.add('Update_Quote: After call to aso_quote_templ_pvt.add_template_to_quote: x_return_status: '|| x_return_status, 1, 'Y');
9001 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl.count: ' || lx_qte_line_tbl.count, 1, 'Y');
9002 aso_debug_pub.add('Update_Quote: x_qte_line_dtl_tbl.count: ' || x_qte_line_dtl_tbl.count, 1, 'Y');
9003
9004 for i in 1 .. lx_qte_line_tbl.count loop
9005 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl('||i||').inventory_item_id: '|| lx_qte_line_tbl(i).inventory_item_id, 1, 'N');
9006 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl('||i||').uom_code: '|| lx_qte_line_tbl(i).uom_code, 1, 'N');
9007 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl('||i||').quantity: '|| lx_qte_line_tbl(i).quantity, 1, 'N');
9008 end loop;
9009
9010 for i in 1 .. x_qte_line_dtl_tbl.count loop
9011
9012 aso_debug_pub.add('Update_Quote: x_qte_line_dtl_tbl('||i||').qte_line_index: '|| x_qte_line_dtl_tbl(i).qte_line_index, 1, 'N');
9013 aso_debug_pub.add('Update_Quote: x_qte_line_dtl_tbl('||i||').ref_line_index: '|| x_qte_line_dtl_tbl(i).ref_line_index, 1, 'N');
9014 aso_debug_pub.add('Update_Quote: x_qte_line_dtl_tbl('||i||').service_ref_qte_line_index: '|| x_qte_line_dtl_tbl(i).service_ref_qte_line_index, 1, 'N');
9015 aso_debug_pub.add('Update_Quote: x_qte_line_dtl_tbl('||i||').service_ref_line_id: '|| x_qte_line_dtl_tbl(i).service_ref_line_id, 1, 'N');
9016
9017 end loop;
9018
9019 end if;
9020
9021
9022 if lx_qte_line_tbl.count > 0 then
9023
9024 l_qte_line_dtl_tbl_out := x_qte_line_dtl_tbl;
9025
9026 for i in 1 .. lx_qte_line_tbl.count loop
9027
9028 l_count := ls_qte_line_tbl.count; -- bug 9433340
9029
9030 ls_qte_line_tbl(l_count + 1) := lx_qte_line_tbl(i); -- bug 9433340
9031
9032 for j in 1 .. x_qte_line_dtl_tbl.count loop
9033
9034 if x_qte_line_dtl_tbl(j).qte_line_index = i then
9035 l_qte_line_dtl_tbl_out(j).qte_line_index := l_count + 1;
9036 end if;
9037
9038 if x_qte_line_dtl_tbl(j).ref_line_index = i then
9039 l_qte_line_dtl_tbl_out(j).ref_line_index := l_count + 1;
9040 end if;
9041
9042 if x_qte_line_dtl_tbl(j).service_ref_qte_line_index = i then
9043 l_qte_line_dtl_tbl_out(j).service_ref_qte_line_index := l_count + 1;
9044 end if;
9045
9046 if x_qte_line_dtl_tbl(j).top_model_line_index = i then
9047 l_qte_line_dtl_tbl_out(j).top_model_line_index := l_count + 1;
9048 end if;
9049
9050 if x_qte_line_dtl_tbl(j).ato_line_index = i then
9051 l_qte_line_dtl_tbl_out(j).ato_line_index := l_count + 1;
9052 end if;
9053
9054 end loop;
9055
9056 end loop;
9057
9058 if l_qte_line_dtl_tbl_out.count > 0 then
9059
9060 for i in 1 .. l_qte_line_dtl_tbl_out.count loop
9061 lx_qte_line_dtl_tbl(lx_qte_line_dtl_tbl.count + 1) := l_qte_line_dtl_tbl_out(i);
9062 end loop;
9063
9064 end if;
9065
9066 end if; -- if lx_qte_line_tbl.count > 0 then
9067
9068 end if; --if p_template_tbl.count > 0 then
9069
9070
9071 if aso_debug_pub.g_debug_flag = 'Y' then
9072
9073 aso_debug_pub.add('Update_Quote: ls_qte_line_tbl.count: ' || ls_qte_line_tbl.count, 1, 'Y'); -- bug 9433340
9074 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl.count: ' || lx_qte_line_dtl_tbl.count, 1, 'Y');
9075
9076 for i in 1 .. ls_qte_line_tbl.count loop -- bug 9433340
9077 aso_debug_pub.add('Update_Quote: ls_qte_line_tbl('||i||').inventory_item_id: '|| ls_qte_line_tbl(i).inventory_item_id, 1, 'N');
9078 aso_debug_pub.add('Update_Quote: ls_qte_line_tbl('||i||').uom_code: '|| ls_qte_line_tbl(i).uom_code, 1, 'N');
9079 aso_debug_pub.add('Update_Quote: ls_qte_line_tbl('||i||').quantity: '|| ls_qte_line_tbl(i).quantity, 1, 'N');
9080 end loop;
9081
9082 for i in 1 .. lx_qte_line_dtl_tbl.count loop
9083
9084 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl('||i||').qte_line_index: '|| lx_qte_line_dtl_tbl(i).qte_line_index, 1, 'N');
9085 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl('||i||').ref_line_index: '|| lx_qte_line_dtl_tbl(i).ref_line_index, 1, 'N');
9086 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl('||i||').service_ref_qte_line_index: '|| lx_qte_line_dtl_tbl(i).service_ref_qte_line_index, 1, 'N');
9087 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl('||i||').service_ref_line_id: '|| lx_qte_line_dtl_tbl(i).service_ref_line_id, 1, 'N');
9088 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl('||i||').ato_line_index: '|| lx_qte_line_dtl_tbl(i).ato_line_index, 1, 'N');
9089 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl('||i||').ato_line_id: '|| lx_qte_line_dtl_tbl(i).ato_line_id, 1, 'N');
9090 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl('||i||').top_model_line_index: '|| lx_qte_line_dtl_tbl(i).top_model_line_index, 1, 'N');
9091 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl('||i||').top_model_line_id: '|| lx_qte_line_dtl_tbl(i).top_model_line_id, 1, 'N');
9092
9093 end loop;
9094
9095 end if;
9096
9097 -- End of Add template rows
9098 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9099 aso_debug_pub.add('Update_Quote: value of p_qte_header_rec.quote_type: ' || p_qte_header_rec.quote_type, 1, 'Y');
9100 aso_debug_pub.add('Update_Quote: value of l_qte_header_rec.resource_id: ' || l_qte_header_rec.resource_id, 1, 'Y');
9101 aso_debug_pub.add('Update_Quote: value of l_qte_header_rec.resource_grp_id: ' || l_qte_header_rec.resource_grp_id, 1, 'Y');
9102 END IF;
9103
9104 IF (NVL(FND_PROFILE.value('ASO_API_ENABLE_SECURITY'),'N') = 'Y' AND NVL(p_qte_header_rec.quote_type, 'X') <> 'T') THEN
9105
9106 /* Bug4869321,4600313 */
9107 IF (l_qte_header_rec.resource_id IS NULL OR l_qte_header_rec.resource_id = FND_API.G_MISS_NUM) THEN
9108
9109 OPEN C_Get_Hdr_Resource_Id(l_qte_header_rec.quote_header_id);
9110 FETCH C_Get_Hdr_Resource_Id INTO l_qte_header_rec.resource_id;
9111 CLOSE C_Get_Hdr_Resource_Id;
9112
9113 END IF;
9114
9115 IF l_qte_header_rec.resource_id IS NOT NULL AND l_qte_header_rec.resource_id <> FND_API.G_MISS_NUM THEN
9116
9117 OPEN C_Check_Store_Status(l_qte_status_id, l_qte_header_rec.quote_status_id);
9118 FETCH C_Check_Store_Status INTO l_store_trans;
9119 CLOSE C_Check_Store_Status;
9120
9121 lx_qte_header_rec := x_qte_header_rec;
9122
9123 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9124 aso_debug_pub.add('Update_Quote - before assign_sales_team l_store_trans: '||l_store_trans, 1, 'Y');
9125 aso_debug_pub.add('Update_Quote - before assign_sales_team l_sales_team_prof: '||l_sales_team_prof, 1, 'Y');
9126 END IF;
9127
9128 IF (l_store_trans IS NOT NULL AND l_store_trans = 'Y') AND
9129 (l_sales_team_prof = 'FULL' OR l_sales_team_prof = 'PARTIAL') THEN
9130
9131
9132 ASO_SALES_TEAM_PVT.Assign_Sales_Team (
9133 P_Init_Msg_List => FND_API.G_FALSE,
9134 P_Commit => FND_API.G_FALSE,
9135 p_Qte_Header_Rec => x_qte_header_rec,
9136 P_Operation => 'UPDATE',
9137 x_Qte_Header_Rec => lx_qte_header_rec,
9138 x_return_status => x_return_status,
9139 x_msg_count => x_msg_count,
9140 x_msg_data => x_msg_data);
9141
9142 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
9143 RAISE FND_API.G_EXC_ERROR;
9144 END IF;
9145
9146 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9147 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9148 END IF;
9149
9150 ELSE -- store_trans, sales_team_prof
9151
9152 l_qte_access_rec := ASO_SECURITY_INT.G_MISS_QTE_ACCESS_REC;
9153 -- l_qte_access_rec.QUOTE_NUMBER := l_qte_header_rec.quote_number;
9154 l_qte_access_rec.QUOTE_NUMBER := l_qte_number;
9155 l_qte_access_rec.RESOURCE_ID := l_qte_header_rec.resource_id;
9156 l_qte_access_rec.RESOURCE_GRP_ID := l_qte_header_rec.resource_grp_id;
9157 l_qte_access_rec.CREATED_BY := G_USER_ID;
9158 l_qte_access_rec.CREATION_DATE := SYSDATE;
9159 l_qte_access_rec.LAST_UPDATED_BY := G_USER_ID;
9160 l_qte_access_rec.LAST_UPDATE_LOGIN := G_LOGIN_ID;
9161 l_qte_access_rec.LAST_UPDATE_DATE := SYSDATE;
9162 l_qte_access_rec.REQUEST_ID := l_qte_header_rec.request_id;
9163 l_qte_access_rec.PROGRAM_APPLICATION_ID := l_qte_header_rec.program_application_id;
9164 l_qte_access_rec.PROGRAM_ID := l_qte_header_rec.program_id;
9165 l_qte_access_rec.PROGRAM_UPDATE_DATE := l_qte_header_rec.program_update_date;
9166
9167 IF (l_store_trans IS NOT NULL AND l_store_trans = 'Y') THEN
9168 l_qte_access_rec.KEEP_FLAG := 'N';
9169 END IF;
9170
9171 -- bug 4867690 if primary salesrep is changed then new prim salesrep should have full access
9172 l_qte_access_rec.UPDATE_ACCESS_FLAG := 'Y';
9173 -- bug 4923573
9174 l_qte_access_rec.batch_price_flag := FND_API.G_FALSE;
9175 l_qte_access_tbl(1) := l_qte_access_rec;
9176
9177 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9178 aso_debug_pub.add('Update_Quote: before Add_Resource: l_qte_header_rec.resource_id: ' || l_qte_header_rec.resource_id, 1, 'Y');
9179 aso_debug_pub.add('Update_Quote: before Add_Resource', 1, 'Y');
9180 END IF;
9181
9182 ASO_SECURITY_INT.Add_Resource(
9183 P_INIT_MSG_LIST => FND_API.G_FALSE,
9184 P_COMMIT => FND_API.G_FALSE,
9185 P_Qte_Access_tbl => l_qte_access_tbl,
9186 X_Qte_Access_tbl => l_qte_access_tbl_out,
9187 X_RETURN_STATUS => x_return_status,
9188 X_msg_count => X_msg_count,
9189 X_msg_data => X_msg_data);
9190
9191 l_qte_access_tbl := l_qte_access_tbl_out;
9192
9193 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9194 aso_debug_pub.add('Update_Quote: after Add_Resource: x_return_status: ' || x_return_status, 1, 'Y');
9195 END IF;
9196
9197 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9198 RAISE FND_API.G_EXC_ERROR;
9199 END IF;
9200
9201 open c_last_update_date(x_qte_header_rec.quote_header_id);
9202 fetch c_last_update_date into x_qte_header_rec.last_update_date;
9203 close c_last_update_date;
9204
9205 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
9206
9207 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9208 aso_debug_pub.add('Update_Quote: After call to Add_Resource.');
9209 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
9210 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
9211 END IF;
9212
9213 END IF; -- steam_prof, store_trans
9214
9215 OPEN C_Get_SCredit_Exists(x_qte_header_rec.quote_header_id);
9216 FETCH C_Get_SCredit_Exists INTO l_scredit_exists;
9217 CLOSE C_Get_SCredit_Exists;
9218
9219 aso_debug_pub.add('l_scredit_exists: '||l_scredit_exists);
9220
9221 IF x_hd_sales_credit_tbl.count < 1 AND (l_scredit_exists = 'N' OR l_scredit_exists IS NULL) THEN
9222
9223 OPEN C_Get_Quota_Credit_Type;
9224 FETCH C_Get_Quota_Credit_Type INTO l_quota_id;
9225 CLOSE C_Get_Quota_Credit_Type;
9226
9227 aso_debug_pub.add('l_quota_id: '||l_quota_id);
9228 x_hd_sales_credit_tbl(1) := ASO_QUOTE_PUB.G_MISS_SALES_CREDIT_REC;
9229 aso_debug_pub.add('after assign x_hd_sales_credit_tbl.count: '||x_hd_sales_credit_tbl.count);
9230
9231 ASO_SALES_CREDITS_PKG.Insert_Row(
9232 p_CREATION_DATE => SYSDATE,
9233 p_CREATED_BY => G_USER_ID,
9234 p_LAST_UPDATED_BY => G_USER_ID,
9235 p_LAST_UPDATE_DATE => SYSDATE,
9236 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
9237 p_REQUEST_ID => FND_API.G_MISS_NUM,
9238 p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM,
9239 p_PROGRAM_ID => FND_API.G_MISS_NUM,
9240 p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE,
9241 px_SALES_CREDIT_ID => x_hd_sales_credit_tbl(1).Sales_Credit_Id,
9242 p_QUOTE_HEADER_ID => l_qte_header_rec.QUOTE_HEADER_ID,
9243 p_QUOTE_LINE_ID => FND_API.G_MISS_NUM,
9244 p_PERCENT => 100,
9245 p_RESOURCE_ID => l_qte_header_rec.RESOURCE_ID,
9246 p_RESOURCE_GROUP_ID => l_qte_header_rec.RESOURCE_GRP_ID,
9247 p_EMPLOYEE_PERSON_ID => FND_API.G_MISS_NUM,
9248 p_SALES_CREDIT_TYPE_ID => l_quota_id,
9249 p_ATTRIBUTE_CATEGORY_CODE => FND_API.G_MISS_CHAR,
9250 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
9251 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
9252 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
9253 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
9254 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
9255 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
9256 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
9257 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
9258 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
9259 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
9260 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
9261 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
9262 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
9263 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
9264 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
9265 p_ATTRIBUTE16 => FND_API.G_MISS_CHAR,
9266 p_ATTRIBUTE17 => FND_API.G_MISS_CHAR,
9267 p_ATTRIBUTE18 => FND_API.G_MISS_CHAR,
9268 p_ATTRIBUTE19 => FND_API.G_MISS_CHAR,
9269 p_ATTRIBUTE20 => FND_API.G_MISS_CHAR,
9270 p_SYSTEM_ASSIGNED_FLAG => 'N',
9271 p_CREDIT_RULE_ID => FND_API.G_MISS_NUM,
9272 p_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM);
9273
9274 aso_debug_pub.add('After Insert SCred ');
9275 END IF; -- sales_cred_tbl.count
9276
9277 END IF; -- resource_id
9278
9279 END IF;
9280
9281 -- end security changes
9282
9283 -- Related Quote Objects Changes
9284 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9285 aso_debug_pub.add('Before processing object relationship ', 1, 'Y');
9286 END IF;
9287
9288 IF P_Related_Obj_Tbl.count > 0 THEN
9289
9290 For i in 1..P_Related_Obj_Tbl.count LOOP
9291
9292 l_related_obj_rec := P_Related_Obj_Tbl(i);
9293
9294
9295 -- logic to populate the operation code
9296 Open c_obj_id(l_qte_header_rec.quote_header_id);
9297 Fetch c_obj_id INTO l_obj_id;
9298 IF c_obj_id%NOTFOUND THEN
9299 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9300 aso_debug_pub.add(' Setting the operation code for rel obj tbl ', 1, 'Y');
9301 aso_debug_pub.add(' Obj id in rel obj rec is : '|| to_char(l_related_obj_rec.object_id), 1, 'Y');
9302 END IF;
9303 IF l_related_obj_rec.object_id IS NOT NULL THEN
9304 l_related_obj_rec.operation_code := 'CREATE';
9305 END IF;
9306
9307
9308 ELSE
9309 IF ((l_obj_id IS NOT NULL) AND (l_obj_id <> l_related_obj_rec.object_id)
9310 AND (l_related_obj_rec.object_id IS NOT NULL) ) THEN
9311 l_related_obj_rec.operation_code := 'UPDATE';
9312 END IF;
9313
9314 IF (( l_obj_id is NOT NULL) AND (l_related_obj_rec.object_id IS NULL) ) THEN
9315 l_related_obj_rec.operation_code := 'DELETE';
9316 END IF;
9317
9318 IF ( l_obj_id = l_related_obj_rec.object_id) then
9319 l_related_obj_rec.operation_code := null;
9320 END IF;
9321
9322 END IF;
9323 Close c_obj_id;
9324
9325 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9326 aso_debug_pub.add(' the operation code for rel obj tbl '||l_related_obj_rec.operation_code, 1, 'Y');
9327 END IF;
9328
9329
9330
9331 IF l_related_obj_rec.operation_code = 'CREATE' THEN
9332
9333 l_related_obj_rec.quote_object_id := l_qte_header_rec.quote_header_id;
9334 x_related_obj_rec := l_related_obj_rec;
9335
9336
9337 ASO_RLTSHIP_PUB.Create_Object_Relationship(
9338 P_Api_Version_Number => 1.0,
9339 P_Init_Msg_List => FND_API.G_FALSE,
9340 P_Commit => FND_API.G_FALSE,
9341 p_validation_level => p_validation_level,
9342 P_RELATED_OBJ_Rec => l_related_obj_rec,
9343 X_related_object_id => x_related_obj_rec.related_object_id,
9344 X_Return_Status => X_Return_Status,
9345 X_Msg_Count => X_Msg_Count,
9346 X_Msg_Data => X_Msg_Data);
9347
9348 X_Related_Obj_Tbl(i) := x_related_obj_rec;
9349
9350 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9351 aso_debug_pub.add('Update_Quote: After call to Create_Object_Relationship: x_return_status: '||x_return_status, 1, 'N');
9352 END IF;
9353
9354 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
9355 RAISE FND_API.G_EXC_ERROR;
9356 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9357 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9358 END IF;
9359
9360 ELSIF l_related_obj_rec.operation_code = 'UPDATE' THEN
9361
9362 IF ((l_related_obj_rec.related_object_id = NULL OR l_related_obj_rec.related_object_id = FND_API.G_MISS_NUM)
9363 OR (l_related_obj_rec.last_update_date = null or l_related_obj_rec.last_update_date = FND_API.G_MISS_DATE))THEN
9364 Open c_related_obj_id(l_qte_header_rec.quote_header_id);
9365 Fetch c_related_obj_id INTO l_related_obj_rec.related_object_id,l_related_obj_rec.last_update_date;
9366 Close c_related_obj_id;
9367 END IF;
9368 IF (l_related_obj_rec.quote_object_id = null or l_related_obj_rec.quote_object_id = FND_API.G_MISS_NUM) THEN
9369 l_related_obj_rec.quote_object_id := l_qte_header_rec.quote_header_id;
9370 END IF;
9371 ASO_RLTSHIP_PUB.Update_Object_Relationship(
9372 P_Api_Version_Number => 1.0,
9373 P_Init_Msg_List => FND_API.G_FALSE,
9374 P_Commit => FND_API.G_FALSE,
9375 p_validation_level => p_validation_level,
9376 P_RELATED_OBJ_Rec => l_related_obj_rec,
9377 X_Return_Status => X_Return_Status,
9378 X_Msg_Count => X_Msg_Count,
9379 X_Msg_Data => X_Msg_Data);
9380
9381 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9382 aso_debug_pub.add('Update_Quote: After call to Update_Object_Relationship: x_return_status: '||x_return_status, 1, 'N');
9383 END IF;
9384
9385 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
9386 RAISE FND_API.G_EXC_ERROR;
9387 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9388 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9389 END IF;
9390
9391 ELSIF l_related_obj_rec.operation_code = 'DELETE' THEN
9392
9393 IF l_related_obj_rec.related_object_id = NULL OR l_related_obj_rec.related_object_id = FND_API.G_MISS_NUM THEN
9394 Open c_related_obj_id(l_qte_header_rec.quote_header_id);
9395 Fetch c_related_obj_id INTO l_related_obj_rec.related_object_id,l_related_obj_rec.last_update_date;
9396 Close c_related_obj_id;
9397 END IF;
9398 l_related_obj_rec.quote_object_id := l_qte_header_rec.quote_header_id;
9399
9400 ASO_RLTSHIP_PUB.Delete_Object_Relationship(
9401 P_Api_Version_Number => 1.0,
9402 P_Init_Msg_List => FND_API.G_FALSE,
9403 P_Commit => FND_API.G_FALSE,
9404 p_validation_level => p_validation_level,
9405 P_RELATED_OBJ_Rec => l_related_obj_rec,
9406 X_Return_Status => X_Return_Status,
9407 X_Msg_Count => X_Msg_Count,
9408 X_Msg_Data => X_Msg_Data);
9409
9410 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9411 aso_debug_pub.add('Update_Quote: After call to Delete_Object_Relationship: x_return_status: '||x_return_status, 1, 'N');
9412 END IF;
9413
9414 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
9415 RAISE FND_API.G_EXC_ERROR;
9416 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9417 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9418 END IF;
9419
9420 END IF;
9421 END LOOP;
9422
9423
9424 END IF; -- end if for P_Related_Obj_Tbl.count
9425
9426
9427 -- end Related Quote Object Changes
9428
9429 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9430 aso_debug_pub.add('before validate quote percent: validation level: '||P_validation_level, 1, 'Y');
9431 END IF;
9432
9433
9434 -- sales credits
9435
9436 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
9437 IF x_hd_sales_credit_tbl.count > 0 THEN
9438 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9439 aso_debug_pub.add('Setting the qte hdr id in x_hd_sales_credit_tbl to : '|| x_qte_header_rec.QUOTE_HEADER_ID, 1, 'Y');
9440 END IF;
9441
9442 x_hd_sales_credit_tbl(1).quote_header_id := x_qte_header_rec.QUOTE_HEADER_ID;
9443
9444 ASO_VALIDATE_PVT.Validate_Quote_Percent(
9445 p_init_msg_list => FND_API.G_FALSE,
9446 p_sales_credit_tbl => x_hd_sales_credit_tbl,
9447 x_return_status => x_return_status,
9448 x_msg_count => x_msg_count,
9449 x_msg_data => x_msg_data
9450 );
9451 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
9452 RAISE FND_API.G_EXC_ERROR;
9453 END IF;
9454 END IF;
9455 END IF;
9456
9457 -- end sales credits
9458
9459
9460 l_index := X_Price_Adjustment_tbl.count+1;
9461 FOR i IN 1.. l_Price_Adj_tbl.count LOOP
9462 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(i);
9463 l_index := l_index+1;
9464 END LOOP;
9465 FOR j IN 1..l_prc_index_link.count LOOP
9466 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id
9467 := l_price_adj_tbl(j).price_adjustment_id;
9468 END LOOP;
9469 l_index := X_Price_Adj_Attr_tbl.count+1;
9470 FOR i IN 1.. l_Price_Adj_Attr_tbl.count LOOP
9471 x_Price_Adj_Attr_tbl(l_index) := l_Price_Adj_Attr_tbl(i);
9472 l_index := l_index+1;
9473 END LOOP;
9474
9475
9476 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9477 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9478 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9479 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
9480 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER UPDATE ROW', TRUE);
9481 FND_MSG_PUB.ADD;
9482 END IF;
9483 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9484 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
9485 x_return_status := FND_API.G_RET_STS_ERROR;
9486 RAISE FND_API.G_EXC_ERROR;
9487 END IF;
9488
9489 -- Update Quote Lines
9490
9491 FOR i IN 1 .. ls_qte_line_tbl.count LOOP
9492
9493 l_qte_line_rec := ls_qte_line_tbl(i);
9494
9495 /* Start : Code change for Bug 9847694
9496 Added validation like - If service line is having reference with Install Base
9497 then End Customer will not be allowed at Service Line
9498 */
9499 If nvl(fnd_profile.value('ASO_FILTER_SERVICE_RF_END_CUST'),'N')= 'Y' Then
9500
9501 If (l_qte_line_rec.end_customer_cust_account_id Is Not Null And
9502 l_qte_line_rec.end_customer_cust_account_id <> FND_API.G_MISS_NUM) Then
9503
9504 If (l_qte_line_rec.item_type_code Is Not Null And
9505 l_qte_line_rec.item_type_code <> fnd_api.g_miss_char) Then
9506 l_item_type_code := l_qte_line_rec.item_type_code;
9507 Else
9508 Open c_item_type_code(l_qte_line_rec.quote_line_id);
9509 Fetch c_item_type_code Into l_item_type_code;
9510 Close c_item_type_code;
9511 End if;
9512
9513 If l_item_type_code = 'SRV' Then
9514
9515 Open c_service_ref_type_code(l_qte_line_rec.quote_line_id);
9516 Fetch c_service_ref_type_code Into l_service_ref_type_code;
9517 Close c_service_ref_type_code;
9518
9519 If l_service_ref_type_code = 'CUSTOMER_PRODUCT' Then
9520 FND_MESSAGE.Set_Name('ASO', 'ASO_IB_END_CUST_CHG_NA');
9521 FND_MSG_PUB.ADD;
9522 RAISE FND_API.G_EXC_ERROR;
9523 End If;
9524 End If;
9525 End If;
9526 End If;
9527 /* End : Code change for Bug 9847694 */
9528
9529 /* Code change for Quoting Usability Sun ER Start */
9530
9531 -- Validation check for Trade in product
9532 If l_control_rec.Change_Customer_flag = FND_API.G_TRUE Then -- Code change done for Bug 11076978
9533
9534 l_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(l_qte_line_rec.quote_line_id);
9535
9536 IF (l_qte_line_rec.item_type_code = 'STD' ) and (l_qte_line_rec.line_category_code = 'RETURN' )THEN
9537 IF (l_line_dtl_tbl(1).INSTANCE_ID IS NOT NULL) Then
9538 l_qte_line_rec.operation_code:='DELETE';
9539 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9540 aso_debug_pub.ADD ('Update_Quote:Trade in from install Base Check Failed' , 1, 'N' );
9541 END IF;
9542 End IF;
9543 End IF; -- Trade in
9544
9545 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9546 aso_debug_pub.add('Copy_Line_Rows:Call TO CZ_NETWORK_API_PUB.Is_Container ');
9547 END IF;
9548
9549 -- Validation check for Container Model
9550 cz_network_api_pub.is_container(p_api_version => 1.0
9551 ,p_inventory_item_id => ls_qte_line_tbl( i ).inventory_item_id
9552 ,p_organization_id => ls_qte_line_tbl( i ).organization_id
9553 ,p_appl_param_rec => l_appl_param_rec
9554 ,x_return_value => l_return_value
9555 ,x_return_status => l_return_status
9556 ,x_msg_count => x_msg_count
9557 ,x_msg_data => x_msg_data );
9558
9559 IF ( l_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
9560 IF l_return_value = 'Y' THEN
9561 l_qte_line_rec.operation_code:='DELETE';
9562 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9563 aso_debug_pub.ADD ('Update_Quote : Container Model Check Failed' , 1, 'N' );
9564 END IF;
9565 END IF;
9566 ELSE
9567 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9568 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_ERROR ) THEN
9569 FND_MESSAGE.Set_Name ('ASO' , 'ASO_API_UNEXP_ERROR' );
9570 FND_MESSAGE.Set_Token ( 'ROW' , 'ASO_COPYLINE AFTER_CONFIG_COPY' , TRUE );
9571 FND_MSG_PUB.ADD;
9572 END IF;
9573 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9574 END IF;
9575
9576 If l_qte_line_rec.service_item_flag = 'Y' Then
9577
9578 -- Validation check for service reference - Install Base and Pending Order
9579 If (l_line_dtl_tbl(1).service_ref_type_code = 'CUSTOMER_PRODUCT') Or
9580 (l_line_dtl_tbl(1).service_ref_type_code = 'PENDING_ORDER') Then
9581 l_qte_line_rec.operation_code:='DELETE';
9582
9583 -- Validation check for service reference - Product Catalog
9584 ElsIf l_line_dtl_tbl(1).service_ref_type_code = 'PRODUCT_CATALOG' Then
9585
9586 l_check_service_rec.product_item_id := l_line_dtl_tbl(1).SERVICE_REF_LINE_ID;
9587 l_check_service_rec.customer_id := P_Qte_Header_Rec.CUST_ACCOUNT_ID;
9588 l_check_service_rec.service_item_id := l_qte_line_rec.INVENTORY_ITEM_ID;
9589
9590 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9591 aso_debug_pub.ADD( 'Update_Quote:Before calling ASO_SERVICE_CONTRACTS_INT.Is_Service_Available for IB', 1 , 'N' );
9592 END IF;
9593
9594 ASO_SERVICE_CONTRACTS_INT.is_service_available (
9595 P_Api_Version_Number => 1.0 ,
9596 P_init_msg_list => p_init_msg_list ,
9597 X_msg_Count => x_msg_count ,
9598 X_msg_Data => x_msg_data ,
9599 X_Return_Status => x_return_status ,
9600 p_check_service_rec => l_check_service_rec,
9601 X_Available_YN => l_Available_YN );
9602
9603 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9604 aso_debug_pub.ADD( 'Update_Quote:After calling ASO_SERVICE_CONTRACTS_INT.Is_Service_Available for IB', 1 , 'N' );
9605 END IF;
9606
9607 If nvl(l_Available_YN, 'N') = 'N' Then
9608 l_qte_line_rec.operation_code:='DELETE';
9609 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9610 aso_debug_pub.add('Update_Quote: PC SERVICE not available');
9611 END IF;
9612 End If;
9613
9614 -- Validation check for service reference - Quote
9615 ElsIf l_line_dtl_tbl(1).service_ref_type_code = 'QUOTE' Then
9616
9617 open c_service_ref_quote(l_qte_line_rec.quote_line_id);
9618 fetch c_service_ref_quote into l_check_service_rec.product_item_id;
9619 close c_service_ref_quote;
9620
9621 l_check_service_rec.customer_id := P_Qte_Header_Rec.CUST_ACCOUNT_ID;
9622 l_check_service_rec.service_item_id := l_qte_line_rec.INVENTORY_ITEM_ID;
9623
9624 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9625 aso_debug_pub.ADD( 'Update_Quote:Before calling ASO_SERVICE_CONTRACTS_INT.Is_Service_Available for Quote', 1 , 'N' );
9626 END IF;
9627
9628 ASO_SERVICE_CONTRACTS_INT.is_service_available (
9629 P_Api_Version_Number => 1.0 ,
9630 P_init_msg_list => p_init_msg_list ,
9631 X_msg_Count => x_msg_count ,
9632 X_msg_Data => x_msg_data ,
9633 X_Return_Status => x_return_status ,
9634 p_check_service_rec => l_check_service_rec,
9635 X_Available_YN => l_Available_YN );
9636
9637 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9638 aso_debug_pub.ADD( 'Update_Quote:After calling ASO_SERVICE_CONTRACTS_INT.Is_Service_Available for Quote', 1 , 'N' );
9639 END IF;
9640
9641 If nvl(l_Available_YN, 'N') = 'N' Then
9642 l_qte_line_rec.operation_code:='DELETE';
9643 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9644 aso_debug_pub.add('Update_Quote: Quote SERVICE Not Available');
9645 END IF;
9646 End If;
9647 End If;
9648 END IF;
9649 End If; -- Change_Customer_flag is TRUE
9650 /* Code change for Quoting Usability Sun ER End */
9651
9652 -- New code for Batch Validation 05/24/2002
9653
9654 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9655 aso_debug_pub.add('UPDATE_QUOTE: l_qte_header_rec.Call_batch_validation_flag: '|| l_qte_header_rec.Call_batch_validation_flag,1,'N');
9656 END IF;
9657
9658 IF l_qte_header_rec.Call_batch_validation_flag = FND_API.G_TRUE THEN
9659
9660 IF l_qte_line_rec.operation_code IN ('UPDATE','DELETE') THEN
9661
9662 OPEN c_qte_line(l_qte_line_rec.quote_line_id);
9663 FETCH c_qte_line into l_qln_id;
9664 IF c_qte_line%FOUND THEN
9665
9666 l_batch_qte_line_rec := ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC;
9667 l_batch_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row(l_qte_line_rec.quote_line_id);
9668
9669 l_add_line := FND_API.G_FALSE;
9670 l_add_model_line := FND_API.G_FALSE;
9671
9672 IF l_batch_qte_line_rec.item_type_code IN ('MDL','CFG') THEN
9673
9674 l_batch_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
9675 l_batch_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(l_qte_line_rec.quote_line_id);
9676 IF l_batch_qte_line_dtl_tbl.count > 0 THEN
9677 IF l_batch_qte_line_dtl_tbl(1).config_header_id IS NOT NULL AND
9678 l_batch_qte_line_dtl_tbl(1).config_revision_num IS NOT NULL THEN
9679
9680 --l_add_line := FND_API.G_TRUE;
9681
9682 IF l_batch_qte_line_rec.item_type_code = 'MDL' THEN
9683 -- If user wants to delete the model line itself then no need to call batch validation
9684 -- becuase deletion model line will delete the all other configuration lines and
9685 -- the configuration from CZ
9686 IF (l_qte_line_rec.operation_code = 'UPDATE') AND
9687 (l_qte_line_rec.quantity <> FND_API.G_MISS_NUM) AND
9688 (l_batch_qte_line_rec.quantity <> l_qte_line_rec.quantity) THEN
9689
9690 IF l_search_qte_line_tbl.EXISTS(l_qte_line_rec.quote_line_id) THEN
9691 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9692 aso_debug_pub.add('UPDATE_QUOTE: Model line exist in the l_search_qte_line_tbl, no need to add again',1,'N');
9693 END IF;
9694 l_add_line := FND_API.G_TRUE;
9695 ELSE
9696 --Add root model line of this configured line to the pl/sql table
9697 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9698 aso_debug_pub.add('UPDATE_QUOTE: Model line does not exist in the l_search_qte_line_tbl, need to add into it',1,'N');
9699 END IF;
9700 l_search_qte_line_tbl(l_qte_line_rec.quote_line_id).quote_line_id
9701 := l_qte_line_rec.quote_line_id;
9702 l_add_line := FND_API.G_TRUE;
9703 l_add_model_line := FND_API.G_TRUE;
9704 l_model_line_id := l_qte_line_rec.quote_line_id;
9705 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9706 aso_debug_pub.add('UPDATE_QUOTE: Model line does not exist: l_model_line_id: '|| l_model_line_id,1,'N');
9707 END IF;
9708
9709 END IF;
9710
9711 ELSIF l_qte_line_rec.operation_code = 'DELETE' THEN
9712
9713 l_delete_qte_line_tbl(l_qte_line_rec.quote_line_id).quote_line_id
9714 := l_qte_line_rec.quote_line_id;
9715 END IF;
9716
9717 ELSE -- Children line l_batch_qte_line_rec.item_type_code = 'CFG'
9718
9719 if l_qte_line_rec.operation_code = 'DELETE' and l_batch_qte_line_rec.config_model_type = 'N'
9720 and l_batch_qte_line_dtl_tbl(1).config_delta = 0 THEN
9721
9722 l_deactivate_counter := l_deactivate_counter + 1;
9723 l_deactivate_quote_line_tbl(l_deactivate_counter).quote_line_id := l_qte_line_rec.quote_line_id;
9724 l_deactivate_quote_line_tbl(l_deactivate_counter).quote_header_id := l_batch_qte_line_rec.quote_header_id;
9725
9726 else
9727
9728 -- Get the root model line for this children line
9729
9730 OPEN c_model_line( l_batch_qte_line_dtl_tbl(1).config_header_id,
9731 l_batch_qte_line_dtl_tbl(1).config_revision_num );
9732 FETCH c_model_line INTO l_model_line_id;
9733
9734 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9735 aso_debug_pub.add('UPDATE_QUOTE: c_model_line: l_model_line_id: '||l_model_line_id,1,'N');
9736 END IF;
9737
9738 IF c_model_line%FOUND AND l_model_line_id is NOT NULL THEN
9739
9740 IF (l_qte_line_rec.operation_code = 'UPDATE') AND
9741 (l_qte_line_rec.quantity <> FND_API.G_MISS_NUM) AND
9742 (l_batch_qte_line_rec.quantity <> l_qte_line_rec.quantity) THEN
9743
9744 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9745 aso_debug_pub.add('UPDATE_QUOTE: Children line having operation_code = UPDATE',1,'N');
9746 END IF;
9747 l_add_line := FND_API.G_TRUE;
9748 IF l_search_qte_line_tbl.EXISTS(l_model_line_id) THEN
9749 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9750 aso_debug_pub.add('UPDATE_QUOTE: Model line exist in the l_model_qte_line_tbl, no need to add again',1,'N');
9751 END IF;
9752 ELSE
9753 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9754 aso_debug_pub.add('UPDATE_QUOTE: Model line does not exist in the l_model_qte_line_tbl, need to add again',1,'N');
9755 END IF;
9756 --Add root model line of this configured line to the pl/sql table
9757 l_add_model_line := FND_API.G_TRUE;
9758 l_search_qte_line_tbl(l_model_line_id).quote_line_id := l_model_line_id;
9759 END IF;
9760
9761 ELSIF l_qte_line_rec.operation_code = 'DELETE' THEN
9762
9763 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9764 aso_debug_pub.add('UPDATE_QUOTE: Children line having operation_code = DELETE',1,'N');
9765 END IF;
9766
9767 l_add_line := FND_API.G_TRUE;
9768
9769 IF l_search_qte_line_tbl.EXISTS(l_model_line_id) THEN
9770 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9771 aso_debug_pub.add('UPDATE_QUOTE: Model line exist in the l_model_qte_line_tbl, no need to add again',1,'N');
9772 END IF;
9773 ELSE
9774 --Add root model line of this configured line to the pl/sql table
9775 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9776 aso_debug_pub.add('UPDATE_QUOTE: Model line does not exist in the l_model_qte_line_tbl, need to add into it',1,'N');
9777 END IF;
9778 l_add_model_line := FND_API.G_TRUE;
9779 l_search_qte_line_tbl(l_model_line_id).quote_line_id := l_model_line_id;
9780 END IF;
9781
9782 END IF;
9783
9784 ELSE
9785 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9786 aso_debug_pub.add('UPDATE_QUOTE: c_model_line: Model line does not exist for this config line',1,'N');
9787 END IF;
9788 END IF; --c_model_line%FOUND AND l_model_line_id is NOT NULL
9789 CLOSE c_model_line;
9790
9791 end if; --l_qte_line_rec.operation_code = 'DELETE' and l_batch_qte_line_rec.config_model_type = 'N' and l_batch_qte_line_dtl_tbl(1).config_delta = 0 THEN
9792
9793 END IF; --l_batch_qte_line_rec.item_type_code = 'MDL'
9794
9795 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9796 aso_debug_pub.add('UPDATE_QUOTE: Before Adding line to l_model_qte_line_tbl',1,'N');
9797 aso_debug_pub.add('UPDATE_QUOTE: Before Adding line to l_model_qte_line_tbl: l_add_model_line: '||l_add_model_line,1,'N');
9798 END IF;
9799
9800 IF l_add_model_line = FND_API.G_TRUE THEN
9801
9802 l_model_index := l_model_index + 1;
9803 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9804 aso_debug_pub.add('UPDATE_QUOTE: Inside IF l_add_model_line = FND_API.G_TRUE: l_model_index: '||l_model_index,1,'N');
9805 END IF;
9806 l_model_qte_line_tbl(l_model_index).quote_line_id := l_model_line_id;
9807 l_model_qte_line_dtl_tbl(l_model_index).config_header_id
9808 := l_batch_qte_line_dtl_tbl(1).config_header_id;
9809 l_model_qte_line_dtl_tbl(l_model_index).config_revision_num
9810 := l_batch_qte_line_dtl_tbl(1).config_revision_num;
9811 END IF;
9812
9813 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9814 aso_debug_pub.add('UPDATE_QUOTE: Before Adding line to l_p_batch_qte_line_tbl',1,'N');
9815 aso_debug_pub.add('UPDATE_QUOTE: Before Adding line to l_p_batch_qte_line_tbl: l_add_line: '||l_add_line,1,'N');
9816 END IF;
9817 IF l_add_line = FND_API.G_TRUE THEN
9818 l_batch_index := l_batch_index + 1;
9819 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9820 aso_debug_pub.add('UPDATE_QUOTE: Inside IF l_add_line = FND_API.G_TRUE: l_batch_index: '||l_batch_index,1,'N');
9821 END IF;
9822 l_p_batch_qte_line_tbl(l_batch_index) := l_batch_qte_line_rec;
9823 l_p_batch_qte_line_tbl(l_batch_index).operation_code := l_qte_line_rec.operation_code;
9824 l_p_batch_qte_line_tbl(l_batch_index).quantity := l_qte_line_rec.quantity;
9825 l_p_batch_qte_line_dtl_tbl(l_batch_index) := l_batch_qte_line_dtl_tbl(1);
9826 END IF;
9827
9828 END IF; --config_header_id and config_revision_num IS NOT NULL
9829
9830 END IF;--l_batch_qte_line_dtl_tbl.count > 0
9831
9832 END IF; --l_batch_qte_line_rec.item_type_code IN ('MDL','CFG')
9833
9834 END IF; --c_qte_line%FOUND
9835 CLOSE c_qte_line;
9836
9837 END IF;--l_qte_line_rec.operation_code IN ('UPDATE','DELETE')
9838
9839 END IF; --l_qte_header_rec.Call_batch_validation_flag = FND_API.G_TRUE
9840
9841
9842 --End New code for Batch Validation 05/24/2002
9843
9844
9845 IF l_qte_line_rec.operation_code = 'CREATE' THEN
9846 -- line detail info
9847 l_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
9848 l_index := 1;
9849 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
9850 IF lx_qte_line_dtl_tbl(j).qte_line_index = i THEN
9851 l_qte_line_dtl_tbl(l_index) := lx_qte_line_dtl_tbl(j);
9852 l_index := l_index + 1;
9853 END IF;
9854 END LOOP;
9855
9856 -- line attributes ext
9857 l_line_attr_ext_tbl := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL;
9858 l_index := 1;
9859 FOR j IN 1..p_line_attr_ext_tbl.count LOOP
9860 IF p_line_attr_ext_tbl(j).qte_line_index = i THEN
9861 l_line_attr_ext_tbl(l_index) := p_line_attr_ext_tbl(j);
9862 l_index := l_index + 1;
9863 END IF;
9864 END LOOP;
9865
9866 -- price attr info
9867 l_index := 1;
9868 l_price_attr_tbl := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl;
9869 FOR j IN 1..p_ln_price_attributes_tbl.count LOOP
9870 IF p_ln_price_attributes_tbl(j).qte_line_index = i THEN
9871 l_price_attr_tbl(l_index) := p_ln_price_attributes_tbl(j);
9872 l_index := l_index + 1;
9873 END IF;
9874 END LOOP;
9875
9876 -- modifier info
9877 l_price_adj_tbl := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl;
9878 l_prc_index_link := G_Miss_Link_Tbl;
9879 l_prc_index_link_rev := G_Miss_Link_Tbl;
9880 l_index := 1;
9881 FOR j IN 1..p_price_adjustment_tbl.count LOOP
9882 IF p_price_adjustment_tbl(j).qte_line_index = i THEN
9883 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(j);
9884 l_prc_index_link(l_index) := j;
9885 l_prc_index_link_rev(j) := l_index;
9886 l_index := l_index + 1;
9887 END IF;
9888 END LOOP;
9889 -- BC4J Fix
9890 l_price_adj_attr_tbl:= ASO_QUOTE_PUB.G_Miss_Price_Adj_Attr_Tbl;
9891 l_index := 1;
9892 FOR j IN 1..p_price_adj_attr_tbl.count LOOP
9893 IF p_price_adj_attr_tbl(j).price_adj_index <> FND_API.G_MISS_NUM
9894 AND l_prc_index_link_rev.exists(p_price_adj_attr_tbl(j).price_adj_index) THEN
9895 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(j);
9896 l_price_adj_attr_tbl(l_index).price_adj_index :=
9897 l_prc_index_link_rev(l_price_adj_attr_tbl(l_index).price_adj_index);
9898 l_index := l_index + 1;
9899 END IF;
9900 END LOOP;
9901
9902 -- payment info
9903 l_payment_tbl := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL;
9904 l_index := 1;
9905 FOR j IN 1..p_ln_payment_tbl.count LOOP
9906 IF p_ln_payment_tbl(j).qte_line_index = i THEN
9907 l_payment_tbl(l_index) := p_ln_payment_tbl(j);
9908 l_index := l_index +1;
9909 END IF;
9910 END LOOP;
9911 -- only when payment_option is SPLIT, there can be more than one record
9912 -- for line payment.
9913 IF l_index > 2 AND l_payment_tbl(1).payment_option <> 'SPLIT' THEN
9914 RAISE FND_API.G_EXC_ERROR;
9915 END IF;
9916
9917
9918 -- shipment info
9919 l_shipment_tbl := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL;
9920 l_shp_index_link := G_Miss_Link_Tbl;
9921 l_index := 1;
9922 FOR j IN 1..p_ln_shipment_tbl.count LOOP
9923 IF p_ln_shipment_tbl(j).qte_line_index = i THEN
9924 l_shipment_tbl(l_index) := p_ln_shipment_tbl(j);
9925 l_shp_index_link(j) := l_index;
9926 l_index := l_index+1;
9927 END IF;
9928 END LOOP;
9929
9930
9931 -- freight charge info
9932 l_freight_charge_tbl := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl;
9933 l_index := 1;
9934 FOR j IN 1..p_ln_freight_charge_tbl.count LOOP
9935 IF p_ln_freight_charge_tbl(j).qte_line_index = i THEN
9936 l_freight_charge_tbl(l_index) := p_ln_freight_charge_tbl(j);
9937 IF p_ln_freight_charge_tbl(j).shipment_index <> FND_API.G_MISS_NUM
9938 AND l_shp_index_link.EXISTS(p_ln_freight_charge_tbl(j).shipment_index) THEN
9939 l_freight_charge_tbl(l_index).shipment_index :=
9940 l_shp_index_link(p_ln_freight_charge_tbl(j).shipment_index);
9941 ELSE
9942 null;
9943 END IF;
9944 l_index := l_index+1;
9945 END IF;
9946 END LOOP;
9947
9948
9949 -- tax info
9950 l_tax_detail_tbl := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl;
9951 l_index := 1;
9952 FOR j IN 1..p_ln_tax_detail_tbl.count LOOP
9953 IF p_ln_tax_detail_tbl(j).qte_line_index = i THEN
9954 l_tax_detail_tbl(l_index) := p_ln_tax_detail_tbl(j);
9955 IF p_ln_tax_detail_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
9956 l_shp_index_link.EXISTS(p_ln_tax_detail_tbl(j).shipment_index) THEN
9957 l_tax_detail_tbl(l_index).shipment_index :=
9958 l_shp_index_link(p_ln_tax_detail_tbl(j).shipment_index);
9959 ELSE
9960 null;
9961 END IF;
9962 l_index := l_index+1;
9963 END IF;
9964 END LOOP;
9965 l_sales_credit_tbl := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl;
9966
9967 l_index := 1;
9968 FOR j IN 1..p_ln_sales_credit_tbl.count LOOP
9969 IF p_ln_sales_credit_tbl(j).qte_line_index = i THEN
9970 l_sales_credit_tbl(l_index) := p_ln_sales_credit_tbl(j);
9971 l_index := l_index +1;
9972 END IF;
9973 END LOOP;
9974
9975
9976 l_quote_party_tbl := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl;
9977
9978 l_index := 1;
9979 FOR j IN 1..p_ln_quote_party_tbl.count LOOP
9980 IF p_ln_quote_party_tbl(j).qte_line_index = i THEN
9981 l_quote_party_tbl(l_index) := p_ln_quote_party_tbl(j);
9982 IF p_ln_quote_party_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
9983 p_ln_quote_party_tbl(j).shipment_index IS NOT NULL AND
9984 l_shp_index_link.EXISTS(p_ln_quote_party_tbl(j).shipment_index) THEN
9985 l_quote_party_tbl(l_index).shipment_index := l_shp_index_link(p_ln_quote_party_tbl(j).shipment_index);
9986 END IF;
9987 l_index := l_index +1;
9988 END IF;
9989 END LOOP;
9990
9991 -- EDU
9992 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9993 aso_debug_pub.add('Update_Quote (create_quote_lines) - before Validate_Commitment ', 1, 'N');
9994 END IF;
9995 ASO_VALIDATE_PVT.Validate_Commitment(
9996 P_Init_Msg_List => FND_API.G_FALSE,
9997 P_Qte_Header_Rec => x_qte_header_rec,
9998 P_Qte_Line_Rec => l_qte_line_rec,
9999 X_Return_Status => l_return_status,
10000 X_Msg_Count => x_msg_count,
10001 X_Msg_Data => x_msg_data);
10002 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10003 aso_debug_pub.add('Update_Quote - after Validate_Commitment: l_return_status: '||l_return_status, 1, 'N');
10004 END IF;
10005 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10006 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10007 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10008 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
10009 x_return_status := FND_API.G_RET_STS_ERROR;
10010 RAISE FND_API.G_EXC_ERROR;
10011 END IF;
10012 -- EDU
10013
10014
10015 open c_last_update_date(x_qte_header_rec.quote_header_id);
10016 fetch c_last_update_date into l_control_rec.last_update_date;
10017 close c_last_update_date;
10018
10019 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10020 aso_debug_pub.add('Update_Quote: Before call to Create_Quote_Lines');
10021 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
10022 END IF;
10023
10024 -- create quote line
10025 ASO_QUOTE_LINES_PVT.Create_Quote_Lines (
10026 P_Api_Version_Number => 1.0,
10027 p_validation_level => p_validation_level,
10028 p_control_rec => l_control_rec,
10029 p_update_header_flag => FND_API.G_FALSE,
10030 p_qte_header_rec => l_qte_header_rec,
10031 P_qte_Line_Rec => l_qte_line_rec,
10032 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
10033 P_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl,
10034 P_price_attributes_tbl => l_price_attr_tbl,
10035 P_Price_Adj_Tbl => l_price_adj_tbl,
10036 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
10037 P_Payment_Tbl => l_payment_tbl,
10038 P_Shipment_Tbl => l_shipment_tbl,
10039 P_Freight_Charge_Tbl => l_freight_charge_tbl,
10040 P_Tax_Detail_Tbl => l_tax_detail_tbl,
10041 P_quote_party_tbl => l_quote_party_tbl ,
10042 P_sales_Credit_tbl => l_sales_Credit_tbl ,
10043 x_qte_Line_Rec => l_qte_line_rec_out,
10044 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
10045 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
10046 x_price_attributes_tbl => l_price_attr_tbl_out,
10047 x_Price_Adj_Tbl => l_price_adj_tbl_out,
10048 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
10049 x_Payment_Tbl => l_payment_tbl_out,
10050 x_Shipment_Tbl => l_shipment_tbl_out,
10051 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
10052 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
10053 X_quote_party_tbl => l_quote_party_tbl_out ,
10054 X_sales_Credit_tbl => l_sales_Credit_tbl_out ,
10055 X_Return_Status => l_return_status,
10056 X_Msg_Count => x_msg_count,
10057 X_Msg_Data => x_msg_data);
10058
10059 l_qte_line_rec := l_qte_line_rec_out;
10060 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
10061 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
10062 l_price_attr_tbl := l_price_attr_tbl_out;
10063 l_price_adj_tbl := l_price_adj_tbl_out;
10064 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
10065 l_payment_tbl := l_payment_tbl_out;
10066 l_shipment_tbl := l_shipment_tbl_out;
10067 l_freight_charge_tbl := l_freight_charge_tbl_out;
10068 l_tax_detail_tbl := l_tax_detail_tbl_out;
10069 l_quote_party_tbl := l_quote_party_tbl_out;
10070 l_sales_Credit_tbl := l_sales_Credit_tbl_out;
10071
10072
10073
10074 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10075 aso_debug_pub.add('Update_Quote - after create_quote_lines return_status: '||l_return_status, 1, 'Y');
10076 END IF;
10077
10078 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10079 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10080 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10081 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
10082 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
10083 FND_MSG_PUB.ADD;
10084 END IF;
10085 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10086
10087 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
10088 x_return_status := FND_API.G_RET_STS_ERROR;
10089 RAISE FND_API.G_EXC_ERROR;
10090 END IF;
10091
10092
10093 open c_last_update_date(x_qte_header_rec.quote_header_id);
10094 fetch c_last_update_date into x_qte_header_rec.last_update_date;
10095 close c_last_update_date;
10096
10097 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
10098
10099 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10100 aso_debug_pub.add('Update_Quote: After call to Create_Quote_Lines');
10101 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
10102 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
10103 END IF;
10104
10105
10106 For j IN 1..lx_qte_line_dtl_tbl.count LOOP
10107 IF lx_qte_line_dtl_tbl(j).SERVICE_REF_QTE_LINE_INDEX = i THEN
10108 lx_qte_line_dtl_tbl(j).SERVICE_REF_LINE_ID := l_qte_line_rec.quote_line_id;
10109 END IF;
10110 END LOOP;
10111
10112 -- For bundle configurator Changes Added 02/18/02
10113 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
10114 IF lx_qte_line_dtl_tbl(j).REF_LINE_INDEX = i THEN
10115 lx_qte_line_dtl_tbl(j).REF_LINE_ID := l_qte_line_rec.quote_line_id;
10116 END IF;
10117 END LOOP;
10118 -- End bundle configurator Changes 02/18/02
10119
10120 -- P1 bug 10261431
10121 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
10122 IF lx_qte_line_dtl_tbl(j).TOP_MODEL_LINE_INDEX = i THEN
10123 lx_qte_line_dtl_tbl(j).TOP_MODEL_LINE_ID := l_qte_line_rec.quote_line_id;
10124 l_top_model_line_id:= l_qte_line_rec.quote_line_id;
10125 END IF;
10126 END LOOP;
10127
10128 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
10129 IF lx_qte_line_dtl_tbl(j).ATO_LINE_INDEX = i THEN
10130 lx_qte_line_dtl_tbl(j).ATO_LINE_ID := l_qte_line_rec.quote_line_id;
10131 l_ato_line_id:= l_qte_line_rec.quote_line_id;
10132 END IF;
10133 END LOOP;
10134
10135 if (l_qte_line_rec.item_type_code='MDL') and (i=1) then
10136 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10137 aso_debug_pub.add('Update_Quote: After call to Create_Quote_Lines updating the data for MDL line');
10138 end if;
10139 update aso_quote_line_details
10140 set top_model_line_id=l_top_model_line_id,ato_line_id=l_ato_line_id
10141 where quote_line_id=l_qte_line_rec.quote_line_id;
10142 end if;
10143 -- P1 bug 10261431
10144
10145
10146 X_Qte_Line_Tbl(x_qte_line_tbl.count+1) := l_qte_line_rec;
10147 l_index := X_Qte_Line_Dtl_Tbl.count+1;
10148 FOR j IN 1.. l_qte_line_dtl_tbl.count LOOP
10149 x_qte_line_dtl_tbl(l_index) := l_qte_line_dtl_tbl(j);
10150 l_index := l_index+1;
10151 END LOOP;
10152 l_index := X_Line_Attr_Ext_Tbl.count+1;
10153 FOR j IN 1.. l_Line_Attr_Ext_tbl.count LOOP
10154 x_Line_Attr_Ext_tbl(l_index) := l_Line_Attr_Ext_tbl(j);
10155 l_index := l_index+1;
10156 END LOOP;
10157 l_index := X_ln_Price_Attributes_Tbl.count+1;
10158 FOR j IN 1.. l_Price_Attr_tbl.count LOOP
10159 x_ln_Price_Attributes_tbl(l_index) := l_Price_Attr_tbl(j);
10160 l_index := l_index+1;
10161 END LOOP;
10162 l_index := X_Price_Adjustment_tbl.count+1;
10163 FOR j IN 1.. l_Price_Adj_tbl.count LOOP
10164 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(j);
10165 l_index := l_index+1;
10166 END LOOP;
10167 l_index := X_Price_Adj_Attr_tbl.count+1;
10168 FOR i IN 1.. l_Price_Adj_Attr_tbl.count LOOP
10169 x_Price_Adj_Attr_tbl(l_index) := l_Price_Adj_Attr_tbl(i);
10170 l_index := l_index+1;
10171 END LOOP;
10172 l_index := X_LN_payment_Tbl.count+1;
10173 FOR j IN 1.. l_payment_tbl.count LOOP
10174 x_ln_payment_tbl(l_index) := l_payment_tbl(j);
10175 l_index := l_index+1;
10176 END LOOP;
10177 l_index := X_LN_shipment_Tbl.count+1;
10178 FOR j IN 1.. l_shipment_tbl.count LOOP
10179 x_ln_shipment_tbl(l_index) := l_shipment_tbl(j);
10180 l_index := l_index+1;
10181 END LOOP;
10182 l_index := X_LN_freight_charge_Tbl.count+1;
10183 FOR j IN 1.. l_freight_charge_tbl.count LOOP
10184 x_ln_freight_charge_tbl(l_index) := l_freight_charge_tbl(j);
10185 l_index := l_index+1;
10186 END LOOP;
10187 l_index := X_LN_tax_detail_Tbl.count+1;
10188 FOR j IN 1.. l_tax_detail_tbl.count LOOP
10189 x_ln_tax_detail_tbl(l_index) := l_tax_detail_tbl(j);
10190 l_index := l_index+1;
10191 END LOOP;
10192
10193 l_index := X_ln_sales_Credit_Tbl.count+1;
10194 FOR j IN 1.. l_sales_Credit_tbl.count LOOP
10195 x_ln_sales_Credit_tbl(l_index) := l_sales_Credit_tbl(j);
10196 l_index := l_index+1;
10197 END LOOP;
10198 l_index := X_ln_quote_party_Tbl.count+1;
10199 FOR j IN 1.. l_quote_party_tbl.count LOOP
10200 x_ln_quote_party_tbl(l_index) := l_quote_party_tbl(j);
10201 l_index := l_index+1;
10202 END LOOP;
10203
10204 FOR j IN 1..l_prc_index_link.count LOOP
10205 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id
10206 := l_price_adj_tbl(j).price_adjustment_id;
10207 END LOOP;
10208 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10209 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10210 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10211 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
10212 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
10213 FND_MSG_PUB.ADD;
10214 END IF;
10215 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10216 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
10217 x_return_status := FND_API.G_RET_STS_ERROR;
10218 RAISE FND_API.G_EXC_ERROR;
10219 END IF;
10220
10221
10222 ELSIF l_qte_line_rec.operation_code = 'UPDATE' THEN
10223
10224
10225 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10226 aso_debug_pub.add('Update_Quote - if operation_code is update ', 1, 'N');
10227 END IF;
10228
10229 l_qte_line_id := l_qte_line_rec.quote_line_id;
10230 -- line detail info
10231 l_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
10232 l_index := 1;
10233 FOR j IN 1 .. lx_qte_line_dtl_tbl.count LOOP
10234 IF lx_qte_line_dtl_tbl(j).quote_line_id = l_qte_line_id THEN
10235 l_qte_line_dtl_tbl(l_index) := lx_qte_line_dtl_tbl(j);
10236 l_index := l_index + 1;
10237 END IF;
10238 END LOOP;
10239
10240 -- line attributes ext
10241 l_line_attr_ext_tbl := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL;
10242 l_index := 1;
10243 FOR j IN 1..p_line_attr_ext_tbl.count LOOP
10244 IF p_line_attr_ext_tbl(j).quote_line_id = l_qte_line_id THEN
10245 l_line_attr_ext_tbl(l_index) := p_line_attr_ext_tbl(j);
10246 l_index := l_index + 1;
10247 END IF;
10248 END LOOP;
10249
10250 -- price attr info
10251 l_price_attr_tbl := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl;
10252 l_index := 1;
10253 FOR j IN 1..p_ln_price_attributes_tbl.count LOOP
10254 IF p_ln_price_attributes_tbl(j).quote_line_id = l_qte_line_id THEN
10255 l_price_attr_tbl(l_index) := p_ln_price_attributes_tbl(j);
10256 l_index := l_index + 1;
10257 END IF;
10258 END LOOP;
10259
10260 -- modifier info
10261 l_price_adj_tbl := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl;
10262 l_prc_index_link := G_Miss_Link_Tbl;
10263 l_prc_index_link_rev := G_Miss_Link_Tbl;
10264 l_index := 1;
10265 FOR j IN 1..p_price_adjustment_tbl.count LOOP
10266 IF p_price_adjustment_tbl(j).quote_line_id = l_qte_line_id THEN
10267 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(j);
10268 l_prc_index_link(l_index) := j;
10269 l_prc_index_link_rev(j) := l_index;
10270 l_index := l_index + 1;
10271 END IF;
10272 END LOOP;
10273 l_index := 1;
10274
10275 -- BC4J Fix
10276 l_price_adj_attr_tbl:= ASO_QUOTE_PUB.G_Miss_Price_Adj_Attr_Tbl;
10277
10278 FOR j IN 1..p_price_adj_attr_tbl.count LOOP
10279 IF p_price_adj_attr_tbl(j).qte_line_index = i THEN
10280 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(j);
10281 IF p_price_adj_attr_tbl(j).price_adj_index <> FND_API.G_MISS_NUM
10282 AND l_prc_index_link_rev.exists(p_price_adj_attr_tbl(j).price_adj_index) THEN
10283 l_price_adj_attr_tbl(l_index).price_adj_index :=
10284 l_prc_index_link_rev(l_price_adj_attr_tbl(l_index).price_adj_index);
10285 END IF;
10286 l_index := l_index + 1;
10287 END IF;
10288 END LOOP;
10289
10290
10291 -- payment info
10292 l_payment_tbl := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL;
10293 l_index := 1;
10294 FOR j IN 1..p_ln_payment_tbl.count LOOP
10295 IF p_ln_payment_tbl(j).quote_line_id = l_qte_line_id THEN
10296 l_payment_tbl(l_index) := p_ln_payment_tbl(j);
10297 l_index := l_index +1;
10298 END IF;
10299 END LOOP;
10300
10301 -- shipment info
10302 l_shipment_tbl := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL;
10303 l_shp_index_link := G_Miss_Link_Tbl;
10304 l_index := 1;
10305 FOR j IN 1..p_ln_shipment_tbl.count LOOP
10306 IF p_ln_shipment_tbl(j).quote_line_id = l_qte_line_id THEN
10307 l_shipment_tbl(l_index) := p_ln_shipment_tbl(j);
10308 l_shp_index_link(j) := l_index;
10309 l_index := l_index +1;
10310 END IF;
10311 END LOOP;
10312
10313 l_sales_credit_tbl := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl;
10314
10315 l_index := 1;
10316 FOR j IN 1..p_ln_sales_credit_tbl.count LOOP
10317 IF p_ln_sales_credit_tbl(j).qte_line_index = i
10318 OR p_ln_sales_credit_tbl(j).quote_line_id = l_qte_line_id THEN
10319 l_sales_credit_tbl(l_index) := p_ln_sales_credit_tbl(j);
10320 l_index := l_index +1;
10321 END IF;
10322 END LOOP;
10323
10324
10325 l_quote_party_tbl := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl;
10326
10327 l_index := 1;
10328 FOR j IN 1..p_ln_quote_party_tbl.count LOOP
10329 IF p_ln_quote_party_tbl(j).qte_line_index = i THEN
10330 l_quote_party_tbl(l_index) := p_ln_quote_party_tbl(j);
10331 IF p_ln_quote_party_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
10332 p_ln_quote_party_tbl(j).shipment_index IS NOT NULL AND
10333 l_shp_index_link.EXISTS(p_ln_quote_party_tbl(j).shipment_index) THEN
10334 l_quote_party_tbl(l_index).shipment_index := l_shp_index_link(p_ln_quote_party_tbl(j).shipment_index);
10335 END IF;
10336 l_index := l_index +1;
10337 END IF;
10338 END LOOP;
10339 -- freight charge info
10340 l_freight_charge_tbl := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl;
10341 l_index := 1;
10342 FOR j IN 1..p_ln_freight_charge_tbl.count LOOP
10343 IF p_ln_freight_charge_tbl(j).quote_line_id = l_qte_line_id THEN
10344 l_freight_charge_tbl(l_index) := p_ln_freight_charge_tbl(j);
10345 IF l_freight_charge_tbl(l_index).shipment_index IS NOT NULL AND
10346 l_freight_charge_tbl(l_index).shipment_index <> FND_API.G_MISS_NUM THEN
10347 IF p_ln_freight_charge_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
10348 l_shp_index_link.EXISTS(p_ln_freight_charge_tbl(j).shipment_index) THEN
10349 l_freight_charge_tbl(l_index).shipment_index :=
10350 l_shp_index_link(p_ln_freight_charge_tbl(j).shipment_index);
10351 ELSE
10352 null;
10353 END IF;
10354 END IF;
10355 l_index := l_index+1;
10356 END IF;
10357 END LOOP;
10358
10359
10360 -- tax info
10361 l_tax_detail_tbl := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl;
10362 l_index := 1;
10363 FOR j IN 1..p_ln_tax_detail_tbl.count LOOP
10364 IF p_ln_tax_detail_tbl(j).quote_line_id = l_qte_line_id THEN
10365 l_tax_detail_tbl(l_index) := p_ln_tax_detail_tbl(j);
10366 IF l_tax_detail_tbl(l_index).shipment_index IS NOT NULL AND
10367 l_tax_detail_tbl(l_index).shipment_index <> FND_API.G_MISS_NUM THEN
10368 IF p_ln_tax_detail_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
10369 l_shp_index_link.EXISTS(p_ln_tax_detail_tbl(j).shipment_index) THEN
10370 l_tax_detail_tbl(l_index).shipment_index :=
10371 l_shp_index_link(p_ln_tax_detail_tbl(j).shipment_index);
10372 ELSE
10373 null;
10374 END IF;
10375 END IF;
10376 l_index := l_index+1;
10377 END IF;
10378 END LOOP;
10379
10380 -- EDU
10381 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10382 aso_debug_pub.add('Update_Quote (update_quote_lines) - before Validate_Commitment ', 1, 'N');
10383 END IF;
10384 ASO_VALIDATE_PVT.Validate_Commitment(
10385 P_Init_Msg_List => FND_API.G_FALSE,
10386 P_Qte_Header_Rec => x_qte_header_rec,
10387 P_Qte_Line_Rec => l_qte_line_rec,
10388 X_Return_Status => l_return_status,
10389 X_Msg_Count => x_msg_count,
10390 X_Msg_Data => x_msg_data);
10391 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10392 aso_debug_pub.add('Update_Quote (upd_qte_ln)- after Validate_Commitment: l_return_status: '||l_return_status, 1, 'N');
10393 END IF;
10394 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10395 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10396 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10397 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
10398 x_return_status := FND_API.G_RET_STS_ERROR;
10399 RAISE FND_API.G_EXC_ERROR;
10400 END IF;
10401 -- EDU
10402
10403 -- update quote line (need to do the following validation:
10404 -- 1. each line has at least one shipment rec
10405 -- 2. each line has only one tax_detail rec in which to set the tax
10406 -- exempt info.
10407
10408 open c_last_update_date(x_qte_header_rec.quote_header_id);
10409 fetch c_last_update_date into l_control_rec.last_update_date;
10410 close c_last_update_date;
10411
10412 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10413 aso_debug_pub.add('Update_Quote: Before call to Update_Quote_Line');
10414 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
10415 END IF;
10416
10417
10418 ASO_QUOTE_LINES_PVT.Update_Quote_Line (
10419 P_Api_Version_Number => 1.0,
10420 p_validation_level => p_validation_level,
10421 p_control_rec => l_control_rec,
10422 p_update_header_flag => FND_API.G_FALSE,
10423 p_qte_header_rec => l_qte_header_rec,
10424 P_qte_Line_Rec => l_qte_line_rec,
10425 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
10426 P_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl,
10427 P_price_attributes_tbl => l_price_attr_tbl,
10428 P_Price_Adj_Tbl => l_price_adj_tbl,
10429 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
10430 P_Payment_Tbl => l_payment_tbl,
10431 P_Shipment_Tbl => l_shipment_tbl,
10432 P_Freight_Charge_Tbl => l_freight_charge_tbl,
10433 P_Tax_Detail_Tbl => l_tax_detail_tbl,
10434 P_quote_party_tbl => l_quote_party_tbl ,
10435 P_sales_Credit_tbl => l_sales_Credit_tbl ,
10436 x_qte_Line_Rec => l_qte_line_rec_out,
10437 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
10438 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
10439 x_price_attributes_tbl => l_price_attr_tbl_out,
10440 x_Price_Adj_Tbl => l_price_adj_tbl_out,
10441 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
10442 x_Payment_Tbl => l_payment_tbl_out,
10443 x_Shipment_Tbl => l_shipment_tbl_out,
10444 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
10445 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
10446 X_quote_party_tbl => l_quote_party_tbl_out ,
10447 X_sales_Credit_tbl => l_sales_Credit_tbl_out ,
10448 X_Return_Status => l_return_status,
10449 X_Msg_Count => x_msg_count,
10450 X_Msg_Data => x_msg_data);
10451
10452
10453 l_qte_line_rec := l_qte_line_rec_out;
10454 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
10455 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
10456 l_price_attr_tbl := l_price_attr_tbl_out;
10457 l_price_adj_tbl := l_price_adj_tbl_out;
10458 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
10459 l_payment_tbl := l_payment_tbl_out;
10460 l_shipment_tbl := l_shipment_tbl_out;
10461 l_freight_charge_tbl := l_freight_charge_tbl_out;
10462 l_tax_detail_tbl := l_tax_detail_tbl_out;
10463 l_quote_party_tbl := l_quote_party_tbl_out;
10464 l_sales_Credit_tbl := l_sales_Credit_tbl_out;
10465
10466
10467 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10468 aso_debug_pub.add('Update_Quote: after update_quote_line: l_return_status: '||l_return_status);
10469 END IF;
10470
10471 open c_last_update_date(x_qte_header_rec.quote_header_id);
10472 fetch c_last_update_date into x_qte_header_rec.last_update_date;
10473 close c_last_update_date;
10474
10475 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
10476
10477 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10478 aso_debug_pub.add('Update_Quote: After call to Update_Quote_Line');
10479 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
10480 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
10481 END IF;
10482
10483
10484 X_Qte_Line_Tbl(x_qte_line_tbl.count+1) := l_qte_line_rec;
10485 l_index := X_Qte_Line_Dtl_Tbl.count+1;
10486
10487 FOR j IN 1.. l_qte_line_dtl_tbl.count LOOP
10488 x_qte_line_dtl_tbl(l_index) := l_qte_line_dtl_tbl(j);
10489 l_index := l_index+1;
10490 END LOOP;
10491 l_index := X_Line_Attr_Ext_Tbl.count+1;
10492 FOR j IN 1.. l_Line_Attr_Ext_tbl.count LOOP
10493 x_Line_Attr_Ext_tbl(l_index) := l_Line_Attr_Ext_tbl(j);
10494 l_index := l_index+1;
10495 END LOOP;
10496 l_index := X_ln_Price_Attributes_Tbl.count+1;
10497 FOR j IN 1.. l_Price_Attr_tbl.count LOOP
10498 x_ln_Price_Attributes_tbl(l_index) := l_Price_Attr_tbl(j);
10499 l_index := l_index+1;
10500 END LOOP;
10501 l_index := X_Price_Adjustment_tbl.count+1;
10502 FOR j IN 1.. l_Price_Adj_tbl.count LOOP
10503 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(j);
10504 l_index := l_index+1;
10505 END LOOP;
10506 l_index := X_Price_Adj_Attr_tbl.count+1;
10507 FOR i IN 1.. l_Price_Adj_Attr_tbl.count LOOP
10508 x_Price_Adj_Attr_tbl(l_index) := l_Price_Adj_Attr_tbl(i);
10509 l_index := l_index+1;
10510 END LOOP;
10511 l_index := X_LN_payment_Tbl.count+1;
10512 FOR j IN 1.. l_payment_tbl.count LOOP
10513 x_ln_payment_tbl(l_index) := l_payment_tbl(j);
10514 l_index := l_index+1;
10515 END LOOP;
10516 l_index := X_Ln_shipment_Tbl.count+1;
10517 FOR j IN 1.. l_shipment_tbl.count LOOP
10518 x_ln_shipment_tbl(l_index) := l_shipment_tbl(j);
10519 l_index := l_index+1;
10520 END LOOP;
10521 l_index := X_LN_freight_charge_Tbl.count+1;
10522 FOR j IN 1.. l_freight_charge_tbl.count LOOP
10523 x_ln_freight_charge_tbl(l_index) := l_freight_charge_tbl(j);
10524 l_index := l_index+1;
10525 END LOOP;
10526 l_index := X_LN_tax_detail_Tbl.count+1;
10527 FOR j IN 1.. l_tax_detail_tbl.count LOOP
10528 x_ln_tax_detail_tbl(l_index) := l_tax_detail_tbl(j);
10529 l_index := l_index+1;
10530 END LOOP;
10531
10532 l_index := X_ln_sales_Credit_Tbl.count+1;
10533 FOR j IN 1.. l_sales_Credit_tbl.count LOOP
10534 x_ln_sales_Credit_tbl(l_index) := l_sales_Credit_tbl(j);
10535 l_index := l_index+1;
10536 END LOOP;
10537 l_index := X_ln_quote_party_Tbl.count+1;
10538 FOR j IN 1.. l_quote_party_tbl.count LOOP
10539 x_ln_quote_party_tbl(l_index) := l_quote_party_tbl(j);
10540 l_index := l_index+1;
10541 END LOOP;
10542
10543
10544
10545 FOR j IN 1..l_prc_index_link.count LOOP
10546 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id
10547 := l_price_adj_tbl(j).price_adjustment_id;
10548 END LOOP;
10549 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10550 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10551 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10552 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
10553 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER UPDATE QLN', TRUE);
10554 FND_MSG_PUB.ADD;
10555 END IF;
10556 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10557 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
10558 x_return_status := FND_API.G_RET_STS_ERROR;
10559 RAISE FND_API.G_EXC_ERROR;
10560 END IF;
10561
10562
10563 ELSIF l_qte_line_rec.operation_code = 'DELETE' THEN
10564
10565
10566 OPEN c_qte_line(l_qte_line_rec.quote_line_id);
10567 FETCH c_qte_line into l_qln_id;
10568
10569 IF c_qte_line%FOUND and l_qln_id <>FND_API.G_MISS_NUM THEN
10570
10571 open c_last_update_date(x_qte_header_rec.quote_header_id);
10572 fetch c_last_update_date into l_control_rec.last_update_date;
10573 close c_last_update_date;
10574
10575 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10576 aso_debug_pub.add('Update_Quote: Before call to Delete_Quote_Line');
10577 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
10578 END IF;
10579
10580 -- Refer bug 10217258 rassharm
10581 --bugrassharm
10582 IF NVL(FND_PROFILE.VALUE('QP_LIMITS_INSTALLED'),'N') = 'Y' THEN
10583
10584 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10585 aso_debug_pub.add('Update_Quote: Reverse Limits limit installed'||l_qte_line_rec.quote_line_id||'item type'||l_qte_line_rec.item_type_code);
10586 aso_debug_pub.add('Update_Quote RASSHARM: Reverse Limits for handling l_qln_id'||l_qln_id);
10587 END IF;
10588
10589
10590 QP_UTIL_PUB.Reverse_Limits (p_action_code => 'CANCEL',
10591 p_cons_price_request_code => 'ASO-'||l_qte_line_rec.quote_header_id||'-'||l_qte_line_rec.quote_line_id,
10592 p_orig_ordered_qty => l_qte_line_rec.quantity,
10593 p_amended_qty => NULL,
10594 p_ret_price_request_code => NULL,
10595 p_returned_qty => NULL,
10596 x_return_status => l_return_status,
10597 x_return_message => x_msg_data
10598 );
10599
10600
10601 open c_qte_line_type(l_qte_line_rec.quote_line_id);
10602 fetch c_qte_line_type into l_item_type_code1;
10603 close c_qte_line_type;
10604
10605 aso_debug_pub.add('Update_Quote RASSHARM: Reverse Limits for handling CFG items'||l_item_type_code1);
10606
10607 if (l_item_type_code1='MDL') or (l_item_type_code1='CFG') then
10608
10609 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10610 aso_debug_pub.add('Update_Quote: Reverse Limits for handling CFG items');
10611 END IF;
10612 for c1 in
10613 (
10614 select quote_line_id from aso_quote_line_Details
10615 where ref_type_code='CONFIG'
10616 and (top_model_line_id=l_qln_id or ref_line_id=l_qln_id)
10617 and top_model_line_id<>quote_line_id
10618 )
10619 loop
10620 select nvl(quantity,0) into l_qty from aso_Quote_lines_all where quote_line_id=c1.quote_line_id;
10621 aso_debug_pub.add('rassharm Update_Quote: Reverse Limits for handling CFG items quote_line_id'||c1.quote_line_id||' *** qty'||l_qty);
10622 QP_UTIL_PUB.Reverse_Limits (p_action_code => 'CANCEL',
10623 p_cons_price_request_code => 'ASO-'||l_qte_line_rec.quote_header_id||'-'||c1.quote_line_id,
10624 p_orig_ordered_qty => l_qty,
10625 p_amended_qty => NULL,
10626 p_ret_price_request_code => NULL,
10627 p_returned_qty => NULL,
10628 x_return_status => l_return_status,
10629 x_return_message => x_msg_data
10630 );
10631
10632 end loop;
10633 end if; -- MDL
10634
10635 end if; -- profile if limit installed
10636
10637
10638 ASO_QUOTE_LINES_PVT.Delete_Quote_Line (
10639 P_Api_Version_Number => 1.0,
10640 p_control_rec => l_control_rec,
10641 p_update_header_flag => FND_API.G_FALSE,
10642 P_qte_Line_Rec => l_qte_line_rec,
10643 X_Return_Status => l_return_status,
10644 X_Msg_Count => x_msg_count,
10645 X_Msg_Data => x_msg_data);
10646
10647
10648 END IF;
10649 CLOSE c_qte_line;
10650
10651 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10652 aso_debug_pub.add('Update_Quote: after Delete_Quote_Line: l_return_status: '||l_return_status);
10653 END IF;
10654
10655 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10656
10657 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10658
10659 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10660 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
10661 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER DELETE QLN', TRUE);
10662 FND_MSG_PUB.ADD;
10663 END IF;
10664 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10665
10666 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
10667
10668 x_return_status := FND_API.G_RET_STS_ERROR;
10669 RAISE FND_API.G_EXC_ERROR;
10670
10671 END IF;
10672
10673 open c_last_update_date(x_qte_header_rec.quote_header_id);
10674 fetch c_last_update_date into x_qte_header_rec.last_update_date;
10675 close c_last_update_date;
10676
10677 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
10678
10679 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10680 aso_debug_pub.add('Update_Quote: After call to Update_Quote_Line');
10681 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
10682 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
10683 END IF;
10684
10685 END IF;
10686
10687 END LOOP;
10688
10689
10690 --New code for Batch Validate 05/24/2002
10691
10692 -- Now call batch validate for each configuration at the end quote_line_tbl LOOP
10693
10694 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10695 aso_debug_pub.add('UPDATE_QUOTE: l_qte_header_rec.Call_batch_validation_flag: '||l_qte_header_rec.Call_batch_validation_flag,1,'N');
10696 END IF;
10697
10698 IF l_qte_header_rec.Call_batch_validation_flag = FND_API.G_TRUE THEN
10699
10700 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10701 aso_debug_pub.add('UPDATE_QUOTE: l_model_qte_line_tbl.count: '||l_model_qte_line_tbl.count,1,'N');
10702 aso_debug_pub.add('UPDATE_QUOTE: l_p_batch_qte_line_tbl.count: '||l_p_batch_qte_line_tbl.count,1,'N');
10703 aso_debug_pub.add('UPDATE_QUOTE: l_p_batch_qte_line_dtl_tbl.count: '||l_p_batch_qte_line_dtl_tbl.count,1,'N');
10704 END IF;
10705
10706
10707 FOR i IN 1..l_model_qte_line_tbl.count LOOP
10708 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10709 aso_debug_pub.add('UPDATE_QUOTE: l_model_qte_line_tbl('||i||').quote_line_id: '||l_model_qte_line_tbl(i).quote_line_id,1,'N');
10710 aso_debug_pub.add('UPDATE_QUOTE: l_model_qte_line_dtl_tbl('||i||').config_header_id: '||l_model_qte_line_dtl_tbl(i).config_header_id,1,'N');
10711 aso_debug_pub.add('UPDATE_QUOTE: l_model_qte_line_dtl_tbl('||i||').config_revision_num: '||l_model_qte_line_dtl_tbl(i).config_revision_num,1,'N');
10712 END IF;
10713
10714 l_send_qte_line_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL;
10715 l_send_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
10716 l_send_index := 0;
10717
10718 IF l_delete_qte_line_tbl.EXISTS(l_model_qte_line_tbl(i).quote_line_id) THEN
10719
10720 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10721 aso_debug_pub.add('UPDATE_QUOTE: Model line exist in l_delete_qte_line_tbl so it is already deleted along with children lines');
10722 END IF;
10723
10724 ELSE
10725
10726 FOR j IN 1..l_p_batch_qte_line_dtl_tbl.count LOOP
10727 IF l_p_batch_qte_line_dtl_tbl(j).config_header_id = l_model_qte_line_dtl_tbl(i).config_header_id AND
10728 l_p_batch_qte_line_dtl_tbl(j).config_revision_num = l_model_qte_line_dtl_tbl(i).config_revision_num THEN
10729
10730 l_send_index := l_send_index + 1;
10731 l_send_qte_line_tbl(l_send_index) := l_p_batch_qte_line_tbl(j);
10732 l_send_qte_line_dtl_tbl(l_send_index) := l_p_batch_qte_line_dtl_tbl(j);
10733
10734 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10735 aso_debug_pub.add('UPDATE_QUOTE: l_p_batch_qte_line_tbl('||j||').quote_line_id: '||l_p_batch_qte_line_tbl(j).quote_line_id,1,'N');
10736 aso_debug_pub.add('UPDATE_QUOTE: l_p_batch_qte_line_tbl('||j||').quantity: '||l_p_batch_qte_line_tbl(j).quantity,1,'N');
10737 aso_debug_pub.add('UPDATE_QUOTE: l_p_batch_qte_line_dtl_tbl('||j||').component_code: '||l_p_batch_qte_line_dtl_tbl(j).component_code,1,'N');
10738 END IF;
10739 END IF;
10740 END LOOP;
10741
10742 l_control_rec_bv.header_pricing_event := null;
10743 l_control_rec_bv.calculate_tax_flag := 'N';
10744 l_control_rec_bv.defaulting_fwk_flag := 'N';
10745
10746 -- Call Batch Validation procedure
10747 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10748 aso_debug_pub.add('UPDATE_QUOTE: Before call to Validate_Configuration',1,'N');
10749 END IF;
10750
10751 ASO_CFG_INT.Validate_Configuration
10752 ( P_Api_Version_Number => 1.0,
10753 P_Init_Msg_List => FND_API.G_FALSE,
10754 P_Commit => FND_API.G_FALSE,
10755 p_control_rec => l_control_rec_bv,
10756 P_model_line_id => l_model_qte_line_tbl(i).quote_line_id,
10757 P_Qte_Line_Tbl => l_send_qte_line_tbl,
10758 P_Qte_Line_Dtl_Tbl => l_send_qte_line_dtl_tbl,
10759 X_config_header_id => l_config_header_id,
10760 X_config_revision_num => l_config_revision_num,
10761 X_valid_configuration_flag => l_valid_configuration_flag,
10762 X_complete_configuration_flag => l_complete_configuration_flag,
10763 X_return_status => l_return_status,
10764 X_msg_count => x_msg_count,
10765 X_msg_data => x_msg_data
10766 );
10767
10768 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10769 aso_debug_pub.add('UPDATE_QUOTE: After call to Validate_Configuration: l_return_status: '||l_return_status,1,'Y');
10770 aso_debug_pub.add('UPDATE_QUOTE: l_config_header_id: '|| l_config_header_id,1,'N');
10771 aso_debug_pub.add('UPDATE_QUOTE: l_config_revision_num: '|| l_config_revision_num,1,'N');
10772 aso_debug_pub.add('UPDATE_QUOTE: l_valid_configuration_flag: '|| l_valid_configuration_flag,1,'N');
10773 aso_debug_pub.add('UPDATE_QUOTE: l_complete_configuration_flag: '|| l_complete_configuration_flag,1,'N');
10774 END IF;
10775
10776 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10777
10778 open c_config_exist_in_cz(l_config_header_id, l_config_revision_num);
10779 fetch c_config_exist_in_cz into l_new_config_hdr_id;
10780
10781 if c_config_exist_in_cz%found then
10782
10783 close c_config_exist_in_cz;
10784
10785 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10786 aso_debug_pub.add('Update Quote: A higher version exist for this configuration so deleting it from CZ');
10787 END IF;
10788
10789 ASO_CFG_INT.DELETE_CONFIGURATION_AUTO( P_API_VERSION_NUMBER => 1.0,
10790 P_INIT_MSG_LIST => FND_API.G_FALSE,
10791 P_CONFIG_HDR_ID => l_config_header_id,
10792 P_CONFIG_REV_NBR => l_config_revision_num,
10793 X_RETURN_STATUS => x_return_status,
10794 X_MSG_COUNT => x_msg_count,
10795 X_MSG_DATA => x_msg_data);
10796
10797 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10798 aso_debug_pub.add('After call to ASO_CFG_INT.DELETE_CONFIGURATION_AUTO: x_Return_Status: ' || x_Return_Status);
10799 END IF;
10800
10801 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10802
10803 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10804 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
10805 FND_MESSAGE.Set_Token('OBJECT', 'CONFIGURATION', FALSE);
10806 FND_MSG_PUB.ADD;
10807 END IF;
10808
10809 RAISE FND_API.G_EXC_ERROR;
10810
10811 END IF;
10812
10813 else
10814 close c_config_exist_in_cz;
10815 end if;
10816
10817 END IF;
10818
10819 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
10820 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10821 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10822 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
10823 x_return_status := FND_API.G_RET_STS_ERROR;
10824 RAISE FND_API.G_EXC_ERROR;
10825 END IF;
10826
10827 END IF; --l_delete_qte_line_tbl.EXISTS
10828 END LOOP; --l_model_qte_line_tbl.count
10829
10830 --call Aso_Config_Operations_Int.Config_Operations procedure
10831 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10832 aso_debug_pub.add('Update_Quote: l_deactivate_quote_line_tbl.count: ' || l_deactivate_quote_line_tbl.count);
10833 END IF;
10834
10835 if l_deactivate_quote_line_tbl.count > 0 then
10836
10837 l_control_rec_bv.header_pricing_event := null;
10838 l_control_rec_bv.calculate_tax_flag := 'N';
10839 l_control_rec_bv.defaulting_fwk_flag := 'N';
10840
10841 l_deactivate_qte_header_rec := x_qte_header_rec;
10842
10843 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10844 aso_debug_pub.add('Before call to Aso_Config_Operations_Int.Config_Operations.', 1, 'Y');
10845 END IF;
10846
10847 Aso_Config_Operations_Int.Config_Operations(
10848 p_api_version_number => 1.0,
10849 p_init_msg_list => FND_API.G_FALSE,
10850 p_commit => FND_API.G_FALSE,
10851 p_validation_level => p_validation_level,
10852 p_control_rec => l_control_rec_bv,
10853 p_qte_header_rec => l_deactivate_qte_header_rec,
10854 p_qte_line_tbl => l_deactivate_quote_line_tbl,
10855 p_instance_tbl => l_deactivate_instance_tbl,
10856 p_operation_code => aso_quote_pub.g_deactivate,
10857 p_delete_flag => fnd_api.g_false,
10858 x_Qte_Header_Rec => x_Qte_Header_Rec,
10859 x_return_status => x_return_status,
10860 x_msg_count => x_msg_count,
10861 x_msg_data => x_msg_data);
10862 /*
10863
10864 ASO_CONFIG_OPERATIONS_PVT.Deactivate_from_quote(
10865 P_Api_Version_Number => 1.0,
10866 P_Init_Msg_List => FND_API.G_FALSE,
10867 P_Commit => FND_API.G_FALSE,
10868 p_validation_level => p_validation_level,
10869 P_Control_Rec => l_control_rec_bv,
10870 P_Qte_Header_Rec => l_deactivate_qte_header_rec,
10871 P_Qte_line_tbl => l_deactivate_quote_line_tbl,
10872 p_delete_flag => fnd_api.g_false,
10873 X_qte_header_rec => x_Qte_Header_Rec,
10874 X_Return_Status => X_Return_Status,
10875 X_Msg_Count => X_Msg_Count,
10876 X_Msg_Data => X_Msg_Data );
10877 */
10878
10879 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10880 aso_debug_pub.add('After call to Aso_Config_Operations_Int.Config_Operations: x_Return_Status: ' || x_Return_Status, 1, 'Y');
10881 END IF;
10882
10883 end if;
10884
10885 --End of call to Aso_Config_Operations_Int.Config_Operations procedure
10886
10887 END IF; -- l_qte_header_rec.Call_batch_validation_flag = FND_API.G_TRUE
10888
10889 --End of New code for Batch Validate 05/24/2002
10890
10891
10892 -- update price adj relationships
10893 FOR i IN 1..p_price_adj_rltship_tbl.count LOOP
10894 l_price_adj_rltship_rec := p_price_adj_rltship_tbl(i);
10895 l_index := l_price_adj_rltship_rec.qte_line_index;
10896 IF l_index IS NOT NULL AND l_index >=1 AND
10897 l_index <= x_qte_line_tbl.count THEN
10898 l_price_adj_rltship_rec.quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
10899 END IF;
10900 l_index := l_price_adj_rltship_rec.price_adj_index;
10901 IF l_index IS NOT NULL AND l_index >=1 AND
10902 l_index <= x_price_adjustment_tbl.count THEN
10903 l_price_adj_rltship_rec.price_adjustment_id :=
10904 l_price_adjustment_tbl(l_index).price_adjustment_id;
10905 END IF;
10906 l_index := l_price_adj_rltship_rec.RLTD_PRICE_ADJ_INDEX;
10907 IF l_index IS NOT NULL AND l_index >=1 AND
10908 l_index <= x_price_adjustment_tbl.count THEN
10909 l_price_adj_rltship_rec.rltd_price_adj_id :=
10910 l_price_adjustment_tbl(l_index).price_adjustment_id;
10911 END IF;
10912 IF l_price_adj_rltship_rec.operation_code = 'CREATE' THEN
10913 -- BC4J Fix
10914 --l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID := NULL;
10915 ASO_PRICE_RLTSHIPS_PKG.Insert_Row(
10916 px_ADJ_RELATIONSHIP_ID => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID,
10917 p_creation_date => sysdate,
10918 p_CREATED_BY => G_USER_ID,
10919 p_LAST_UPDATE_DATE => sysdate,
10920 p_LAST_UPDATED_BY => G_USER_ID,
10921 p_LAST_UPDATE_LOGIN => G_USER_ID,
10922 p_PROGRAM_APPLICATION_ID=> l_price_adj_rltship_rec.PROGRAM_APPLICATION_ID,
10923 p_PROGRAM_ID => l_price_adj_rltship_rec.PROGRAM_ID,
10924 p_PROGRAM_UPDATE_DATE => l_price_adj_rltship_rec.PROGRAM_UPDATE_DATE,
10925 p_REQUEST_ID => l_price_adj_rltship_rec.REQUEST_ID,
10926 p_QUOTE_LINE_ID => l_price_adj_rltship_rec.quote_line_id,
10927 p_PRICE_ADJUSTMENT_ID => l_price_adj_rltship_rec.price_adjustment_id,
10928 p_RLTD_PRICE_ADJ_ID => l_price_adj_rltship_rec.rltd_price_adj_id,
10929 p_QUOTE_SHIPMENT_ID => l_price_adj_rltship_rec.quote_shipment_id,
10930 p_OBJECT_VERSION_NUMBER => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER
10931 );
10932 ELSIF l_price_adj_rltship_rec.operation_code = 'UPDATE' THEN
10933 ASO_PRICE_RLTSHIPS_PKG.Update_Row(
10934 p_ADJ_RELATIONSHIP_ID => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID,
10935 p_creation_date => l_price_adj_rltship_rec.creation_date,
10936 p_CREATED_BY => G_USER_ID,
10937 p_LAST_UPDATE_DATE => sysdate,
10938 p_LAST_UPDATED_BY => G_USER_ID,
10939 p_LAST_UPDATE_LOGIN => G_USER_ID,
10940 p_PROGRAM_APPLICATION_ID=> l_price_adj_rltship_rec.PROGRAM_APPLICATION_ID,
10941 p_PROGRAM_ID => l_price_adj_rltship_rec.PROGRAM_ID,
10942 p_PROGRAM_UPDATE_DATE => l_price_adj_rltship_rec.PROGRAM_UPDATE_DATE,
10943 p_REQUEST_ID => l_price_adj_rltship_rec.REQUEST_ID,
10944 p_QUOTE_LINE_ID => l_price_adj_rltship_rec.quote_line_id,
10945 p_PRICE_ADJUSTMENT_ID => l_price_adj_rltship_rec.price_adjustment_id,
10946 p_RLTD_PRICE_ADJ_ID => l_price_adj_rltship_rec.rltd_price_adj_id,
10947 p_QUOTE_SHIPMENT_ID => l_price_adj_rltship_rec.quote_shipment_id,
10948 p_OBJECT_VERSION_NUMBER => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER
10949 );
10950 ELSIF l_price_adj_rltship_rec.operation_code = 'DELETE' THEN
10951 ASO_PRICE_RLTSHIPS_PKG.Delete_Row(
10952 p_ADJ_RELATIONSHIP_ID => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID);
10953
10954 END IF;
10955 X_Price_Adj_Rltship_Tbl(i) := l_price_adj_rltship_rec;
10956
10957
10958 END LOOP;
10959
10960 --start bug8235510
10961 for i in 1 ..x_qte_line_dtl_tbl.count
10962 loop
10963 aso_debug_pub.ADD('x_qte_line_dtl_tbl.quot_line_id' || x_qte_line_dtl_tbl(i).quote_line_id);
10964 aso_debug_pub.ADD('x_qte_line_dtl_tbl.quot_line_detail_id' || x_qte_line_dtl_tbl(i).quote_line_detail_id);
10965 aso_debug_pub.ADD('x_qte_line_dtl_tbl.ref_line_id' || x_qte_line_dtl_tbl(i).ref_line_id);
10966 end loop;
10967 FOR i in 1..x_qte_line_tbl.count LOOP
10968 l_line_rltship_rec := ASO_QUOTE_PUB.G_Miss_Line_Rltship_Rec;
10969 x_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(x_qte_line_tbl(i).quote_line_id);
10970 IF x_qte_line_dtl_tbl.count > 0 THEN
10971 IF x_qte_line_dtl_tbl(1).ref_line_id IS NOT NULL AND x_qte_line_dtl_tbl(1).ref_line_id <> FND_API.G_MISS_NUM THEN
10972 -- Adding a check to find if find line relationship already exists bug 12608111 to avoid data corruption in aso_line_relationships
10973 select count(*) into ct_rel
10974 from aso_line_relationships
10975 where quote_line_id = x_qte_line_dtl_tbl(1).ref_line_id
10976 and related_quote_line_id = x_qte_line_dtl_tbl(1).quote_line_id
10977 and relationship_type_code='CONFIG';
10978 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10979 aso_debug_pub.add('before l_line_rltship_rec Create_Line_Rltship ct_rel'||ct_rel);
10980 end if;
10981 if ct_rel=0 then
10982 l_line_rltship_rec.OPERATION_CODE := 'CREATE';
10983 l_line_rltship_rec.QUOTE_LINE_ID := x_qte_line_dtl_tbl(1).ref_line_id;
10984 l_line_rltship_rec.RELATED_QUOTE_LINE_ID := x_qte_line_dtl_tbl(1).quote_line_id;
10985 l_line_rltship_rec.RELATIONSHIP_TYPE_CODE := 'CONFIG';
10986
10987 ASO_LINE_RLTSHIP_PVT.Create_Line_Rltship(
10988 P_Api_Version_Number => 1.0,
10989 P_Init_Msg_List => FND_API.G_FALSE,
10990 P_Commit => FND_API.G_FALSE,
10991 P_Validation_Level => p_validation_level,
10992 P_Line_Rltship_Rec => l_line_rltship_rec,
10993 X_LINE_RELATIONSHIP_ID => lx_line_relationship_id,
10994 X_Return_Status => x_return_status,
10995 X_Msg_Count => x_msg_count,
10996 X_Msg_Data => x_msg_data
10997 );
10998 end if; -- ct_rel=0
10999 end if;
11000 end if;
11001 end loop;
11002 --end bug8235510
11003 -- update line relationships
11004 FOR i IN 1..p_line_rltship_tbl.count LOOP
11005 l_line_rltship_rec := p_line_rltship_tbl(i);
11006 l_index := l_line_rltship_rec.qte_line_index;
11007 IF l_index IS NOT NULL AND l_index >=1 AND
11008 l_index <= x_qte_line_tbl.count THEN
11009 l_line_rltship_rec.quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
11010 END IF;
11011 l_index := l_line_rltship_rec.related_qte_line_index;
11012 IF l_index IS NOT NULL AND l_index >=1 AND
11013 l_index <= x_qte_line_tbl.count THEN
11014 l_line_rltship_rec.related_quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
11015 END IF;
11016 IF l_line_rltship_rec.operation_code = 'CREATE' THEN
11017 -- BC4J Fix
11018 --l_line_rltship_rec.LINE_RELATIONSHIP_ID := NULL;
11019 ASO_LINE_RELATIONSHIPS_PKG.Insert_Row(
11020 px_LINE_RELATIONSHIP_ID => l_line_rltship_rec.LINE_RELATIONSHIP_ID,
11021 p_CREATION_DATE => SYSDATE,
11022 p_CREATED_BY => G_USER_ID,
11023 p_LAST_UPDATED_BY => G_USER_ID,
11024 p_LAST_UPDATE_DATE => SYSDATE,
11025 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
11026 p_REQUEST_ID => l_line_rltship_rec.REQUEST_ID,
11027 p_PROGRAM_APPLICATION_ID => l_line_rltship_rec.PROGRAM_APPLICATION_ID,
11028 p_PROGRAM_ID => l_line_rltship_rec.PROGRAM_ID,
11029 p_PROGRAM_UPDATE_DATE =>l_line_rltship_rec.PROGRAM_UPDATE_DATE,
11030 p_QUOTE_LINE_ID => l_line_rltship_rec.quote_line_id,
11031 p_RELATED_QUOTE_LINE_ID => l_line_rltship_rec.RELATED_QUOTE_LINE_ID,
11032 p_RECIPROCAL_FLAG => l_line_rltship_rec.RECIPROCAL_FLAG,
11033 P_RELATIONSHIP_TYPE_CODE =>l_line_rltship_rec.RELATIONSHIP_TYPE_CODE,
11034 p_OBJECT_VERSION_NUMBER => l_line_rltship_rec.OBJECT_VERSION_NUMBER
11035 );
11036 ELSIF l_line_rltship_rec.operation_code = 'UPDATE' THEN
11037 ASO_LINE_RELATIONSHIPS_PKG.Update_Row(
11038 p_LINE_RELATIONSHIP_ID => l_line_rltship_rec.LINE_RELATIONSHIP_ID,
11039 p_CREATION_DATE => l_line_rltship_rec.creation_date,
11040 p_CREATED_BY => G_USER_ID,
11041 p_LAST_UPDATED_BY => G_USER_ID,
11042 p_LAST_UPDATE_DATE => SYSDATE,
11043 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
11044 p_REQUEST_ID => l_line_rltship_rec.REQUEST_ID,
11045 p_PROGRAM_APPLICATION_ID => l_line_rltship_rec.PROGRAM_APPLICATION_ID,
11046 p_PROGRAM_ID => l_line_rltship_rec.PROGRAM_ID,
11047 p_PROGRAM_UPDATE_DATE =>l_line_rltship_rec.PROGRAM_UPDATE_DATE,
11048 p_QUOTE_LINE_ID => l_line_rltship_rec.quote_line_id,
11049 p_RELATED_QUOTE_LINE_ID => l_line_rltship_rec.RELATED_QUOTE_LINE_ID,
11050 p_RECIPROCAL_FLAG => l_line_rltship_rec.RECIPROCAL_FLAG,
11051 P_RELATIONSHIP_TYPE_CODE =>l_line_rltship_rec.RELATIONSHIP_TYPE_CODE,
11052 p_OBJECT_VERSION_NUMBER => l_line_rltship_rec.OBJECT_VERSION_NUMBER
11053 );
11054 ELSIF l_line_rltship_rec.operation_code = 'DELETE' THEN
11055 ASO_LINE_RELATIONSHIPS_PKG.delete_Row(
11056 p_LINE_RELATIONSHIP_ID => l_line_rltship_rec.LINE_RELATIONSHIP_ID);
11057 END IF;
11058 X_line_Rltship_Tbl(i) := l_line_rltship_rec;
11059
11060 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11061 aso_debug_pub.add('Update_Quote: l_line_rltship_rec.quote_line_id: '||l_line_rltship_rec.quote_line_id);
11062 aso_debug_pub.add('Update_Quote: l_line_rltship_rec.related_quote_line_id: '||l_line_rltship_rec.related_quote_line_id);
11063 END IF;
11064
11065 if l_line_rltship_rec.relationship_type_code = 'CONFIG' and
11066 (l_line_rltship_rec.operation_code = 'CREATE' or
11067 l_line_rltship_rec.operation_code = 'UPDATE') then
11068
11069 update aso_quote_line_details
11070 set ref_type_code = 'CONFIG',
11071 ref_line_id = l_line_rltship_rec.quote_line_id,
11072 last_update_date = sysdate,
11073 last_updated_by = g_user_id,
11074 last_update_login = g_login_id
11075 where quote_line_id = l_line_rltship_rec.related_quote_line_id;
11076
11077 end if;
11078
11079 END LOOP;
11080
11081 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11082 aso_debug_pub.add('Update_Quote: x_qte_header_rec.quote_header_id: '|| x_qte_header_rec.quote_header_id);
11083 END IF;
11084
11085 update aso_quote_line_details
11086 set ref_type_code = 'CONFIG',
11087 last_update_date = sysdate,
11088 last_updated_by = g_user_id,
11089 last_update_login = g_login_id
11090 where config_header_id is not null
11091 and config_revision_num is not null
11092 and ref_type_code is null
11093 and quote_line_id in (select quote_line_id from aso_quote_lines_all
11094 where item_type_code = 'MDL'
11095 and quote_header_id = x_qte_header_rec.quote_header_id);
11096
11097 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11098 aso_debug_pub.add('Update_Quote: Validating line type if Order type has changed');
11099 aso_debug_pub.add('Update_Quote: l_qte_header_rec.order_type_id: '||l_qte_header_rec.order_type_id);
11100 END IF;
11101
11102
11103 IF ((l_order_type_id <> l_qte_header_rec.order_type_id) AND (l_qte_header_rec.order_type_id <> FND_API.G_MISS_NUM)) then
11104
11105 For quote_lines_rec IN c_quote_lines(l_qte_header_rec.quote_header_id) LOOP
11106
11107 l_ln_rec.quote_line_id := quote_lines_rec.quote_line_id;
11108 l_ln_rec.order_line_type_id := quote_lines_rec.order_line_type_id;
11109 l_ln_rec.line_category_code := quote_lines_rec.line_category_code;
11110
11111
11112 --Validate_ln_type_for_ord_type
11113
11114 ASO_validate_PVT.Validate_ln_type_for_ord_type(
11115 p_init_msg_list => FND_API.G_FALSE,
11116 p_qte_header_rec => l_qte_header_rec,
11117 P_Qte_Line_rec => l_ln_rec,
11118 x_return_status => x_return_status,
11119 x_msg_count => x_msg_count,
11120 x_msg_data => x_msg_data);
11121
11122 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
11123 RAISE FND_API.G_EXC_ERROR;
11124 END IF;
11125 --Validate_ln_category_code
11126
11127 ASO_validate_PVT.Validate_ln_category_code(
11128 p_init_msg_list => FND_API.G_FALSE,
11129 p_qte_header_rec => l_qte_header_rec,
11130 P_Qte_Line_rec => l_ln_rec,
11131 x_return_status => x_return_status,
11132 x_msg_count => x_msg_count,
11133 x_msg_data => x_msg_data);
11134
11135 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
11136 RAISE FND_API.G_EXC_ERROR;
11137 END IF;
11138
11139
11140 END LOOP;
11141 End if;
11142
11143
11144 aso_validate_pvt.Validate_po_line_number
11145 (
11146 p_init_msg_list => fnd_api.g_false,
11147 p_qte_header_rec => l_qte_header_rec,
11148 x_return_status => x_return_status,
11149 x_msg_count => x_msg_count,
11150 x_msg_data => x_msg_data);
11151
11152 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
11153 RAISE FND_API.G_EXC_ERROR;
11154 END IF;
11155
11156
11157
11158 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11159 aso_debug_pub.add('Update_Quote - before header_pricing ', 1, 'N');
11160 END IF;
11161
11162 IF l_control_rec.header_pricing_event IS NOT NULL AND
11163 l_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR THEN
11164
11165 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11166 aso_debug_pub.add('Update_Quote - in header_pricing ', 1, 'N');
11167 END IF;
11168
11169 l_pricing_control_rec.request_type := p_control_rec.pricing_request_type;
11170 l_pricing_control_rec.pricing_event := p_control_rec.header_pricing_event;
11171 l_pricing_control_rec.price_mode := p_control_rec.price_mode;
11172
11173 --New Code for to call overload pricing_order
11174
11175 lv_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
11176 lv_hd_price_attr_tbl := aso_utility_pvt.query_price_attr_rows(x_qte_header_rec.quote_header_id,null);
11177 lv_hd_shipment_tbl := aso_utility_pvt.query_shipment_rows(x_qte_header_rec.quote_header_id,null);
11178
11179 if lv_hd_shipment_tbl.count = 1 then
11180 lv_hd_shipment_rec := lv_hd_shipment_tbl(1);
11181 end if;
11182
11183 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11184 aso_debug_pub.add('Update_Quote: Before call to ASO_PRICING_INT.Pricing_Order');
11185 aso_debug_pub.add('Update_Quote: x_qte_line_tbl.count: ' || x_qte_line_tbl.count);
11186 END IF;
11187
11188 ASO_PRICING_INT.Pricing_Order(
11189 P_Api_Version_Number => 1.0,
11190 P_Init_Msg_List => fnd_api.g_false,
11191 P_Commit => fnd_api.g_false,
11192 p_control_rec => l_pricing_control_rec,
11193 p_qte_header_rec => lv_qte_header_rec,
11194 p_hd_shipment_rec => lv_hd_shipment_rec,
11195 p_hd_price_attr_tbl => lv_hd_price_attr_tbl,
11196 p_qte_line_tbl => x_qte_line_tbl,
11197 --p_line_rltship_tbl => l_line_rltship_tbl,
11198 --p_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
11199 --p_ln_shipment_tbl => ln_shipment_tbl,
11200 --p_ln_price_attr_tbl => l_ln_price_attr_tbl,
11201 x_qte_header_rec => lx_qte_header_rec,
11202 x_qte_line_tbl => lx_qte_line_tbl,
11203 x_qte_line_dtl_tbl => lx_qte_line_dtl_tbl,
11204 x_price_adj_tbl => l_price_adj_tbl_out,
11205 x_price_adj_attr_tbl => l_Price_Adj_Attr_Tbl_out,
11206 x_price_adj_rltship_tbl => lx_price_adj_rltship_tbl,
11207 x_return_status => l_return_status,
11208 x_msg_count => x_msg_count,
11209 x_msg_data => x_msg_data );
11210
11211
11212 x_qte_line_tbl := lx_qte_line_tbl;
11213
11214 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11215 aso_debug_pub.add('Update_Quote: After call to ASO_PRICING_INT.Pricing_Order');
11216 aso_debug_pub.add('Update_Quote: l_return_status: ' || l_return_status);
11217 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl.count: ' || lx_qte_line_tbl.count);
11218 aso_debug_pub.add('Update_Quote: x_qte_line_tbl.count: ' || x_qte_line_tbl.count);
11219 END IF;
11220
11221 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
11222
11223 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
11224
11225 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11226
11227 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
11228 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
11229 FND_MSG_PUB.ADD;
11230
11231 END IF;
11232
11233 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11234
11235 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
11236
11237 x_return_status := FND_API.G_RET_STS_ERROR;
11238 RAISE FND_API.G_EXC_ERROR;
11239
11240 END IF;
11241
11242 END IF;
11243
11244
11245 /*New Pricing Changes to update the date*/
11246
11247
11248 IF p_control_rec.header_pricing_event = 'BATCH' and
11249 p_control_rec.price_mode='ENTIRE_QUOTE' THEN
11250
11251 l_price_updated_date_flag := fnd_api.g_true;
11252
11253 END IF;
11254
11255
11256 -- kchervel calculating tax for the whole quote
11257 IF p_control_rec.calculate_tax_flag = 'Y' THEN
11258
11259 --Added the IF Condition below to facilitate TAX calculation changes .
11260 IF l_qte_line_tbl.count >0 then
11261 l_lines:=1;
11262 else
11263 SELECT
11264 COUNT(QUOTE_HEADER_ID)
11265 INTO
11266 l_lines
11267 FROM
11268 ASO_QUOTE_LINES_ALL
11269 WHERE
11270 QUOTE_HEADER_ID=x_qte_header_rec.quote_header_id;
11271 END IF;
11272
11273 --Commented the Below lines by Anoop on 15th August
11274 /* l_tax_control_rec.tax_level := 'SHIPPING';
11275 l_tax_control_rec.update_DB := 'Y';
11276 ASO_TAX_INT.Calculate_Tax(
11277 P_Api_Version_Number => 1.0,
11278 p_quote_header_id => x_qte_header_rec.quote_header_id,
11279 P_Tax_Control_Rec => l_tax_control_rec,
11280 x_tax_amount => x_tax_amount ,
11281 x_tax_detail_tbl => l_tax_detail_tbl,
11282 X_Return_Status => x_return_status ,
11283 X_Msg_Count => x_msg_count ,
11284 X_Msg_Data => x_msg_data );
11285 */
11286
11287
11288 --Changed the call to Tax API as a part of eTAX by Anoop Rajan on August 9 2005
11289 IF l_lines>0 then
11290 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11291 aso_debug_pub.add('Update_Quote: Before call to tax engine');
11292
11293 aso_debug_pub.add('Calculate Tax Flag : '|| p_control_rec.calculate_tax_flag);
11294 END IF;
11295 ASO_TAX_INT.CALCULATE_TAX_WITH_GTT ( p_API_VERSION_NUMBER => 1.0,
11296 p_qte_header_id => x_qte_header_rec.quote_header_id,
11297 x_return_status => x_return_status ,
11298 X_Msg_Count => x_msg_count ,
11299 X_Msg_Data => x_msg_data );
11300
11301 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11302 aso_debug_pub.add('Update_Quote: After call to tax engine');
11303 END IF;
11304 else
11305 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11306 aso_debug_pub.add('Update_Quote: NO LINE RECORDS.SO TAX NOT CALCULATED : x_return_status: '|| x_return_status, 1, 'Y');
11307 END IF;
11308 end if;
11309
11310 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
11311 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11312 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
11313 FND_MESSAGE.Set_Token('API', 'CALCULATE_TAX_WITH_GTT', FALSE);
11314 FND_MSG_PUB.ADD;
11315 END IF;
11316
11317 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
11318 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11319 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
11320 RAISE FND_API.G_EXC_ERROR;
11321 END IF;
11322
11323 END IF;
11324
11325 END IF; -- tax flag set
11326
11327
11328 /*New Tax Changes to update the date*/
11329
11330 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11331
11332 aso_debug_pub.add('Update_Quote: control record parameter values');
11333 aso_debug_pub.add('p_control_rec.header_pricing_event: ' || p_control_rec.header_pricing_event);
11334 aso_debug_pub.add('p_control_rec.price_mode: ' || p_control_rec.price_mode);
11335 aso_debug_pub.add('p_control_rec.calculate_tax_flag: ' || p_control_rec.calculate_tax_flag);
11336 aso_debug_pub.add('l_price_updated_date_flag: ' || l_price_updated_date_flag);
11337
11338 END IF;
11339
11340 IF p_control_rec.calculate_tax_flag = 'Y' THEN
11341
11342 IF l_price_updated_date_flag = fnd_api.g_true THEN
11343
11344 update aso_quote_headers_all
11345 set tax_updated_date = sysdate,
11346 price_updated_date = sysdate,
11347 recalculate_flag = 'N'
11348 where quote_header_id = x_qte_header_rec.quote_header_id;
11349
11350 ELSE
11351
11352 update aso_quote_headers_all
11353 set tax_updated_date = sysdate
11354 where quote_header_id = x_qte_header_rec.quote_header_id;
11355
11356 END IF;
11357
11358 ELSIF l_price_updated_date_flag = fnd_api.g_true THEN
11359
11360 update aso_quote_headers_all
11361 set price_updated_date = sysdate,
11362 recalculate_flag = 'N'
11363 where quote_header_id = x_qte_header_rec.quote_header_id;
11364
11365 END IF;
11366
11367
11368
11369 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
11370 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
11371 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
11372 -- IF calculate_tax_flag = 'N', not summation on line level tax,
11373 -- just take the value of l_qte_header_rec.total_tax as the total_tax
11374 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
11375 -- just take the value of l_qte_header_rec.total_freight_charge
11376 -- (or l_hd_shipment_tbl(1).total_freight_charge???) as the TOTAL_SHIPPING_CHARGE
11377
11378
11379 IF p_control_rec.calculate_tax_flag = 'N' AND
11380 l_qte_header_rec.total_tax IS NOT NULL THEN
11381 l_calculate_tax := 'N';
11382 END IF;
11383 IF p_control_rec.calculate_freight_charge_flag = 'N' AND
11384 l_qte_header_rec.total_shipping_charge IS NOT NULL THEN
11385 l_calculate_freight_charge := 'N';
11386 END IF;
11387
11388
11389 -- Start of PNPL Changes
11390 x_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
11391
11392 l_installment_option := oe_sys_parameters.value(param_name => 'INSTALLMENT_OPTIONS',
11393 p_org_id =>x_qte_header_rec.org_id);
11394
11395 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11396 aso_debug_pub.add('Update_Quote - Value of Installment Option Param: '||l_installment_option, 1, 'Y');
11397 END IF;
11398
11399 IF ( (l_installment_option = 'ENABLE_PAY_NOW') and (nvl(x_qte_header_rec.quote_type,'X') <> 'T')
11400 and ((p_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR and p_control_rec.header_pricing_event is not null)
11401 or (p_control_rec.calculate_tax_flag = 'Y')) ) then
11402
11403 l_call_ar_api := fnd_api.g_true;
11404
11405 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11406 aso_debug_pub.add('Update_Quote - p_control_rec.header_pricing_event: '||p_control_rec.header_pricing_event, 1, 'Y');
11407 aso_debug_pub.add('Update_Quote - p_control_rec.price_mode : '||p_control_rec.price_mode, 1, 'Y');
11408 aso_debug_pub.add('Update_Quote - l_qte_line_tbl.count : '||l_qte_line_tbl.count, 1, 'Y');
11409 END IF;
11410
11411 -- check if price_mode is change_line, if so then call ar api only if some lines are being created or updated
11412 IF (p_control_rec.header_pricing_event = 'BATCH' and p_control_rec.price_mode = 'CHANGE_LINE') THEN
11413 if (l_qte_line_tbl.count > 0) then
11414 l_call_ar_api := fnd_api.g_false;
11415 for i in 1..l_qte_line_tbl.count loop
11416 if (l_qte_line_tbl(i).operation_code = 'CREATE' or l_qte_line_tbl(i).operation_code = 'UPDATE') then
11417 l_call_ar_api := fnd_api.g_true;
11418 exit;
11419 end if;
11420 end loop;
11421 else
11422 l_call_ar_api := fnd_api.g_false;
11423 end if;
11424 END IF;
11425
11426 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11427 aso_debug_pub.add('Update_Quote - l_call_ar_api: '|| l_call_ar_api, 1, 'Y');
11428 END IF;
11429
11430 IF (l_call_ar_api = fnd_api.g_true ) then
11431
11432 For quote_lines_rec IN c_quote_lines(x_qte_header_rec.quote_header_id) LOOP
11433
11434 -- resetting the line term id variable
11435 l_line_term_id := null;
11436
11437 -- get the line freight charges
11438 l_line_shipping_charge := aso_shipping_int.get_line_freight_charges( x_qte_header_rec.quote_header_id,
11439 quote_lines_rec.quote_line_id );
11440
11441 -- get the line tax
11442 open c_tax_line(x_qte_header_rec.quote_header_id,quote_lines_rec.quote_line_id);
11443 fetch c_tax_line into l_line_tax;
11444 close c_tax_line;
11445
11446 -- get the payment term id for the line
11447 open get_line_payment_term(x_qte_header_rec.quote_header_id,quote_lines_rec.quote_line_id);
11448 fetch get_line_payment_term into l_line_term_id;
11449 close get_line_payment_term;
11450
11451 -- if line term id is null then get it from header
11452 If l_line_term_id is null THEN
11453 open get_hdr_payment_term(x_qte_header_rec.quote_header_id);
11454 fetch get_hdr_payment_term into l_line_term_id;
11455 close get_hdr_payment_term;
11456 END IF;
11457
11458 l_line_amount := quote_lines_rec.line_quote_price * quote_lines_rec.quantity;
11459
11460
11461 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11462 aso_debug_pub.add('Update_Quote - ********** Input to AR_VIEW_TERM_GRP.pay_now_amounts follows ********** ', 1, 'Y');
11463 aso_debug_pub.add('Update_Quote - quote_lines_rec.quote_line_id: '||quote_lines_rec.quote_line_id, 1, 'Y');
11464 aso_debug_pub.add('Update_Quote - l_line_amount: '||l_line_amount, 1, 'Y');
11465 aso_debug_pub.add('Update_Quote - l_line_shipping_charge: '||l_line_shipping_charge, 1, 'Y');
11466 aso_debug_pub.add('Update_Quote - l_line_tax: '||l_line_tax, 1, 'Y');
11467 aso_debug_pub.add('Update_Quote - l_line_term_id: '||l_line_term_id, 1, 'Y');
11468 END IF;
11469
11470 IF (l_line_term_id is not null and l_line_term_id <> fnd_api.g_miss_num) then
11471
11472 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11473 aso_debug_pub.add('Update_Quote: before call to AR_VIEW_TERM_GRP.pay_now_amounts', 1, 'Y');
11474 END IF;
11475
11476 -- Call the AR API to get the amounts
11477 AR_VIEW_TERM_GRP.pay_now_amounts(
11478 p_api_version => 1.0,
11479 p_init_msg_list => p_init_msg_list,
11480 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
11481 p_term_id => l_line_term_id,
11482 p_currency_code => x_qte_header_rec.currency_code,
11483 p_line_amount => l_line_amount,
11484 p_tax_amount => l_line_tax,
11485 p_freight_amount => l_line_shipping_charge,
11486 x_pay_now_line_amount => l_paynow_amount,
11487 x_pay_now_tax_amount => l_paynow_tax,
11488 x_pay_now_freight_amount => l_paynow_charges,
11489 x_pay_now_total_amount => l_paynow_total,
11490 X_Return_Status => x_return_status ,
11491 X_Msg_Count => x_msg_count ,
11492 X_Msg_Data => x_msg_data );
11493
11494 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11495 aso_debug_pub.add('Update_Quote: After call to AR_VIEW_TERM_GRP.pay_now_amounts: x_return_status: '|| x_return_status, 1, 'Y'); END IF;
11496
11497 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
11498
11499 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11500 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
11501 FND_MESSAGE.Set_Token('API', 'AR_PayNow_Amounts', FALSE);
11502 FND_MSG_PUB.ADD;
11503 END IF;
11504
11505 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
11506 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11507 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
11508 RAISE FND_API.G_EXC_ERROR;
11509 END IF;
11510
11511 END IF;
11512
11513 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11514 aso_debug_pub.add('Update_Quote - Output from AR_VIEW_TERM_GRP.pay_now_amounts follows:', 1, 'Y');
11515 aso_debug_pub.add('Update_Quote - l_paynow_amount: '||l_paynow_amount, 1, 'Y');
11516 aso_debug_pub.add('Update_Quote - l_paynow_charges: '||l_paynow_charges, 1, 'Y');
11517 aso_debug_pub.add('Update_Quote - l_paynow_tax: '||l_paynow_tax, 1, 'Y');
11518 aso_debug_pub.add('Update_Quote - l_paynow_total: '||l_paynow_total, 1, 'Y');
11519 aso_debug_pub.add('Update_Quote - ************ End PNPL Processing ************ ', 1, 'Y');
11520 END IF;
11521
11522
11523 -- Update the corresponding columns in the line table
11524 update aso_quote_lines_all
11525 set line_paynow_charges = l_paynow_charges,
11526 line_paynow_tax = l_paynow_tax,
11527 line_paynow_subtotal = l_paynow_amount,
11528 last_update_date = sysdate,
11529 last_updated_by = fnd_global.user_id,
11530 last_update_login = fnd_global.conc_login_id
11531 where quote_line_id = quote_lines_rec.quote_line_id;
11532
11533 end if; -- check for term id null
11534 end loop;
11535
11536 END IF; -- end if for call ar api flag
11537 END IF;
11538
11539 -- End of PNPL Changes
11540
11541 Update_Quote_Total (
11542 P_Qte_Header_id => x_Qte_Header_rec.quote_header_id,
11543 P_Calculate_Tax => p_control_rec.calculate_tax_flag,
11544 P_calculate_Freight_Charge => p_control_rec.calculate_freight_charge_flag,
11545 p_control_rec => p_control_rec,
11546 P_Call_Ar_Api_Flag => l_call_ar_api,
11547 X_Return_Status => x_return_status,
11548 X_Msg_Count => x_msg_count,
11549 X_Msg_Data => x_msg_data);
11550
11551 x_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
11552
11553 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
11554
11555
11556 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11557 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
11558 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER UPDT TOTAL', TRUE);
11559 FND_MSG_PUB.ADD;
11560 END IF;
11561
11562 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11563
11564 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
11565
11566 RAISE FND_API.G_EXC_ERROR;
11567
11568 END IF;
11569
11570 --
11571 -- End of API body.
11572 --
11573
11574 -- Change START
11575 -- Release 12 TAP Changes
11576 -- Girish Sachdeva 8/30/2005
11577 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
11578
11579 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11580 aso_debug_pub.add('ASO_QUOTE_HEADERS_PVT.UPDATE_QUOTE : Calling ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES, quote number : ' || x_qte_header_rec.quote_number, 1, 'Y');
11581 END IF;
11582
11583 -- Call to insert record in ASO_CHANGED_QUOTES
11584 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(x_qte_header_rec.quote_number);
11585
11586 -- Change END
11587
11588
11589 -- Standard check for p_commit
11590 IF FND_API.to_Boolean( p_commit ) THEN
11591 COMMIT WORK;
11592 END IF;
11593
11594 -- Standard call to get message count and if count is 1, get message info.
11595 FND_MSG_PUB.Count_And_Get
11596 ( p_count => x_msg_count,
11597 p_data => x_msg_data
11598 );
11599
11600 EXCEPTION
11601 WHEN FND_API.G_EXC_ERROR THEN
11602 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11603 P_API_NAME => L_API_NAME
11604 ,P_PKG_NAME => G_PKG_NAME
11605 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
11606 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11607 ,P_SQLCODE => SQLCODE
11608 ,P_SQLERRM => SQLERRM
11609 ,X_MSG_COUNT => X_MSG_COUNT
11610 ,X_MSG_DATA => X_MSG_DATA
11611 ,X_RETURN_STATUS => X_RETURN_STATUS);
11612
11613 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11614 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11615 P_API_NAME => L_API_NAME
11616 ,P_PKG_NAME => G_PKG_NAME
11617 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
11618 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11619 ,P_SQLCODE => SQLCODE
11620 ,P_SQLERRM => SQLERRM
11621 ,X_MSG_COUNT => X_MSG_COUNT
11622 ,X_MSG_DATA => X_MSG_DATA
11623 ,X_RETURN_STATUS => X_RETURN_STATUS);
11624
11625 WHEN OTHERS THEN
11626 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11627 P_API_NAME => L_API_NAME
11628 ,P_PKG_NAME => G_PKG_NAME
11629 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
11630 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11631 ,P_SQLCODE => SQLCODE
11632 ,P_SQLERRM => SQLERRM
11633 ,X_MSG_COUNT => X_MSG_COUNT
11634 ,X_MSG_DATA => X_MSG_DATA
11635 ,X_RETURN_STATUS => X_RETURN_STATUS);
11636 End Update_quote;
11637
11638
11639 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
11640 -- The Master delete procedure may not be needed depends on different business requirements.
11641 PROCEDURE Delete_quote(
11642 P_Api_Version_Number IN NUMBER,
11643 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
11644 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
11645 P_qte_Header_Id IN NUMBER,
11646 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
11647 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
11648 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
11649 )
11650
11651 IS
11652 l_api_name CONSTANT VARCHAR2(30) := 'Delete_quote';
11653 l_api_version_number CONSTANT NUMBER := 1.0;
11654 l_qln_id NUMBER;
11655 CURSOR c_qte_lines IS
11656 SELECT quote_line_id FROM ASO_QUOTE_LINES_ALL
11657 WHERE quote_header_id = p_qte_header_id;
11658
11659 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
11660 CURSOR c_qte_line(l_d_qte_line NUMBER) IS
11661 SELECT quote_line_id FROM ASO_QUOTE_LINES_ALL
11662 where quote_line_id= l_qte_line_rec.quote_line_id;
11663 BEGIN
11664 -- Standard Start of API savepoint
11665 SAVEPOINT DELETE_quote_PVT;
11666
11667 -- Standard call to check for call compatibility.
11668 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
11669 p_api_version_number,
11670 l_api_name,
11671 G_PKG_NAME)
11672 THEN
11673 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11674 END IF;
11675
11676
11677 -- Initialize message list if p_init_msg_list is set to TRUE.
11678 IF FND_API.to_Boolean( p_init_msg_list )
11679 THEN
11680 FND_MSG_PUB.initialize;
11681 END IF;
11682
11683
11684 -- Initialize API return status to SUCCESS
11685 x_return_status := FND_API.G_RET_STS_SUCCESS;
11686
11687 --
11688 -- Api body
11689 --
11690
11691 -- Invoke table handler(ASO_QUOTE_HEADERS_PKG.Delete_Row)
11692 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11693 aso_debug_pub.add('Delete_Quote - Begin ', 1, 'Y');
11694 END IF;
11695
11696 ASO_QUOTE_HEADERS_PKG.Delete_Row(
11697 p_QUOTE_HEADER_ID => p_qte_header_id);
11698
11699 FOR line_rec IN c_qte_lines LOOP
11700 l_qte_line_rec.quote_line_id := line_rec.quote_line_id;
11701 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11702 aso_debug_pub.add('Delete_Quote - before delete_line- quote_line_id: '|| l_qte_line_rec.quote_line_id, 1, 'N');
11703 END IF;
11704
11705 OPEN c_qte_line(l_qte_line_rec.quote_line_id);
11706 FETCH c_qte_line into l_qln_id;
11707 IF c_qte_line%FOUND AND l_qln_id <> FND_API.G_MISS_NUM THEN
11708 ASO_QUOTE_LINES_PVT.Delete_Quote_Line(
11709 P_Api_Version_Number => 1.0,
11710 P_qte_line_Rec => l_qte_line_rec,
11711 P_Update_Header_Flag => FND_API.G_FALSE,
11712 X_Return_Status => X_Return_Status,
11713 X_Msg_Count => X_Msg_Count,
11714 X_Msg_Data => X_Msg_Data);
11715 END IF;
11716 CLOSE c_qte_line;
11717 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
11718 RAISE FND_API.G_EXC_ERROR;
11719 END IF;
11720 END LOOP;
11721
11722
11723 --New code for Delete_Promotion 07/22/02
11724
11725 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11726 aso_debug_pub.add('Delete_Quote: Before deleting ASO_PRICE_ADJUSTMENTS table data',1,'N');
11727 END IF;
11728
11729 DELETE FROM ASO_PRICE_ADJUSTMENTS
11730 WHERE QUOTE_HEADER_ID = p_qte_header_id;
11731
11732 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11733 aso_debug_pub.add('Delete_Quote: Before deleting ASO_PRICE_ADJ_ATTRIBS table data',1,'N');
11734 END IF;
11735
11736 DELETE FROM aso_price_adj_attribs
11737 WHERE price_adjustment_id IN (select price_adjustment_id
11738 from aso_price_adjustments
11739 where quote_header_id = p_qte_header_id
11740 and quote_line_id is NULL);
11741
11742 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11743 aso_debug_pub.add('Delete_Quote: Before deleting ASO_PRICE_ATTRIBUTES table data',1,'N');
11744 END IF;
11745
11746 DELETE FROM ASO_PRICE_ATTRIBUTES
11747 WHERE QUOTE_HEADER_ID = p_qte_header_id
11748 and quote_line_id is NULL;
11749
11750 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11751 aso_debug_pub.add('Delete_Quote: After deleting ASO_PRICE_ATTRIBUTES table data',1,'N');
11752 END IF;
11753
11754
11755 --End of New code for Delete_Promotion 07/22/02
11756
11757
11758 DELETE FROM ASO_PAYMENTS
11759 WHERE QUOTE_HEADER_ID = p_qte_header_id;
11760
11761 DELETE FROM ASO_FREIGHT_CHARGES
11762 WHERE quote_shipment_id in
11763 (select shipment_id from ASO_SHIPMENTS
11764 where QUOTE_HEADER_ID = p_qte_header_id);
11765
11766 DELETE FROM ASO_SHIPMENTS
11767 WHERE QUOTE_HEADER_ID = p_qte_header_id;
11768
11769 DELETE FROM ASO_TAX_DETAILS
11770 WHERE QUOTE_HEADER_ID = p_qte_header_id;
11771
11772 DELETE FROM ASO_SALES_CREDITS
11773 WHERE QUOTE_HEADER_ID = p_qte_header_id;
11774
11775
11776 DELETE FROM ASO_QUOTE_PARTIES
11777 WHERE QUOTE_HEADER_ID = p_qte_header_id;
11778
11779 DELETE FROM ASO_QUOTE_LINE_ATTRIBS_EXT
11780 WHERE QUOTE_HEADER_ID = p_qte_header_id;
11781
11782 --
11783 -- End of API body
11784 --
11785
11786 -- Standard check for p_commit
11787 IF FND_API.to_Boolean( p_commit )
11788 THEN
11789 COMMIT WORK;
11790 END IF;
11791
11792
11793 -- Standard call to get message count and if count is 1, get message info.
11794 FND_MSG_PUB.Count_And_Get
11795 ( p_count => x_msg_count,
11796 p_data => x_msg_data
11797 );
11798
11799 EXCEPTION
11800 WHEN FND_API.G_EXC_ERROR THEN
11801 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11802 P_API_NAME => L_API_NAME
11803 ,P_PKG_NAME => G_PKG_NAME
11804 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
11805 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11806 ,P_SQLCODE => SQLCODE
11807 ,P_SQLERRM => SQLERRM
11808 ,X_MSG_COUNT => X_MSG_COUNT
11809 ,X_MSG_DATA => X_MSG_DATA
11810 ,X_RETURN_STATUS => X_RETURN_STATUS);
11811
11812 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11813 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11814 P_API_NAME => L_API_NAME
11815 ,P_PKG_NAME => G_PKG_NAME
11816 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
11817 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11818 ,P_SQLCODE => SQLCODE
11819 ,P_SQLERRM => SQLERRM
11820 ,X_MSG_COUNT => X_MSG_COUNT
11821 ,X_MSG_DATA => X_MSG_DATA
11822 ,X_RETURN_STATUS => X_RETURN_STATUS);
11823
11824 WHEN OTHERS THEN
11825 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11826 P_API_NAME => L_API_NAME
11827 ,P_PKG_NAME => G_PKG_NAME
11828 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
11829 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11830 ,P_SQLCODE => SQLCODE
11831 ,P_SQLERRM => SQLERRM
11832 ,X_MSG_COUNT => X_MSG_COUNT
11833 ,X_MSG_DATA => X_MSG_DATA
11834 ,X_RETURN_STATUS => X_RETURN_STATUS);
11835 End Delete_quote;
11836
11837 -- NAME
11838 -- Copy_Quote
11839 --
11840 -- PURPOSE
11841 -- Copy the quote (with quote_id = p_original_quote_id) to a new quote
11842 -- (set original_quote_id = p_original_quote_id).
11843 -- If p_header_only is FALSE, also copy all the associated quote lines
11844 -- to new quote lines and create expected purchases for each line.
11845 --
11846
11847 PROCEDURE Copy_Quote
11848 (
11849 P_Api_Version_Number IN NUMBER,
11850 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
11851 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
11852 P_control_rec IN ASO_QUOTE_PUB.control_rec_type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
11853 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
11854 P_Qte_Header_Id IN NUMBER,
11855 P_Last_Update_Date IN DATE,
11856 P_Copy_Only_Header IN VARCHAR2 := FND_API.G_FALSE,
11857 P_New_Version IN VARCHAR2 := FND_API.G_FALSE,
11858 P_Qte_Status_Id IN NUMBER := NULL,
11859 P_Qte_Number IN NUMBER := NULL,
11860 X_Qte_Header_Id OUT NOCOPY /* file.sql.39 change */ NUMBER,
11861 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
11862 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
11863 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
11864 ) IS
11865 /* -- original cpy_qte
11866 CURSOR C_Validate_Quote (x_qte_header_id NUMBER) IS
11867 SELECT 'X'
11868 FROM ASO_QUOTE_HEADERS_ALL
11869 WHERE quote_header_id = x_qte_header_id;
11870
11871
11872
11873 CURSOR c_line_relation (x_quote_header_id NUMBER) IS
11874 SELECT LINE_RELATIONSHIP_ID,
11875 CREATION_DATE,
11876 CREATED_BY,
11877 LAST_UPDATED_BY,
11878 LAST_UPDATE_DATE,
11879 LAST_UPDATE_LOGIN,
11880 REQUEST_ID,
11881 PROGRAM_APPLICATION_ID,
11882 PROGRAM_ID,
11883 PROGRAM_UPDATE_DATE,
11884 QUOTE_LINE_ID,
11885 RELATED_QUOTE_LINE_ID,
11886 RELATIONSHIP_TYPE_CODE,
11887 RECIPROCAL_FLAG FROM ASO_LINE_RELATIONSHIPS
11888 WHERE quote_line_id IN
11889 (SELECT quote_line_id FROM aso_quote_lines_all
11890 WHERE quote_header_id = x_quote_header_id)
11891 AND related_quote_line_id IN
11892 (SELECT quote_line_id FROM aso_quote_lines_all
11893 WHERE quote_header_id = x_quote_header_id);
11894 */ -- original copy_qte
11895
11896 /* Commented by Biplabi Mishra to change the EXISTS to IN 07/09/01
11897
11898
11899 CURSOR c_line_relation (x_quote_header_id NUMBER) IS
11900 SELECT LINE_RELATIONSHIP_ID,
11901 CREATION_DATE,
11902 CREATED_BY,
11903 LAST_UPDATED_BY,
11904 LAST_UPDATE_DATE,
11905 LAST_UPDATE_LOGIN,
11906 REQUEST_ID,
11907 PROGRAM_APPLICATION_ID,
11908 PROGRAM_ID,
11909 PROGRAM_UPDATE_DATE,
11910 QUOTE_LINE_ID,
11911 RELATED_QUOTE_LINE_ID,
11912 RELATIONSHIP_TYPE_CODE,
11913 RECIPROCAL_FLAG FROM ASO_LINE_RELATIONSHIPS
11914 WHERE EXISTS
11915 (SELECT 'x' FROM aso_quote_lines_all aql
11916 WHERE aql.quote_header_id = x_quote_header_id
11917 AND aql.quote_line_id = aso_line_relationships.quote_line_id)
11918 AND EXISTS
11919 (SELECT 'x' FROM aso_quote_lines_all aql
11920 WHERE aql.quote_header_id = x_quote_header_id
11921 AND aql.quote_line_id = aso_line_relationships.related_quote_line_id);
11922
11923 */
11924
11925
11926 /* Commented by Biplabi Mishra to change the IN to EXISTS 04/30/01
11927
11928 CURSOR c_price_adj_rel (x_quote_header_id NUMBER) IS
11929 SELECT
11930 QUOTE_SHIPMENT_ID,
11931 SECURITY_GROUP_ID,
11932 OBJECT_VERSION_NUMBER,
11933 ADJ_RELATIONSHIP_ID,
11934 CREATION_DATE,
11935 CREATED_BY,
11936 LAST_UPDATE_DATE,
11937 LAST_UPDATED_BY,
11938 LAST_UPDATE_LOGIN,
11939 PROGRAM_APPLICATION_ID,
11940 PROGRAM_ID,
11941 PROGRAM_UPDATE_DATE,
11942 REQUEST_ID,
11943 QUOTE_LINE_ID,
11944 PRICE_ADJUSTMENT_ID,
11945 RLTD_PRICE_ADJ_ID
11946 FROM ASO_PRICE_ADJ_RELATIONSHIPS
11947 WHERE price_adjustment_id IN
11948 (SELECT price_adjustment_id FROM aso_price_adjustments
11949 WHERE quote_header_id = x_quote_header_id)
11950 AND quote_line_id IN
11951 (SELECT quote_line_id FROM aso_quote_lines_all
11952 WHERE quote_header_id = x_quote_header_id);
11953 */
11954 /*
11955 CURSOR c_price_adj_rel (x_quote_header_id NUMBER) IS
11956 SELECT
11957 apr.QUOTE_SHIPMENT_ID,
11958 --apr.SECURITY_GROUP_ID,
11959 apr.OBJECT_VERSION_NUMBER,
11960 apr.ADJ_RELATIONSHIP_ID,
11961 apr.CREATION_DATE,
11962 apr.CREATED_BY,
11963 apr.LAST_UPDATE_DATE,
11964 apr.LAST_UPDATED_BY,
11965 apr.LAST_UPDATE_LOGIN,
11966 apr.PROGRAM_APPLICATION_ID,
11967 apr.PROGRAM_ID,
11968 apr.PROGRAM_UPDATE_DATE,
11969 apr.REQUEST_ID,
11970 apr.QUOTE_LINE_ID,
11971 apr.PRICE_ADJUSTMENT_ID,
11972 apr.RLTD_PRICE_ADJ_ID
11973 FROM ASO_PRICE_ADJ_RELATIONSHIPS apr,
11974 ASO_PRICE_ADJUSTMENTS apa
11975 WHERE apr.price_adjustment_id = apa.price_adjustment_id
11976 AND apa.quote_header_id = x_quote_header_id
11977 AND EXISTS (select 'x' from aso_quote_lines_all aql
11978 where aql.quote_header_id = x_quote_header_id
11979 and aql.quote_line_id = apr.quote_line_id);
11980 */
11981
11982 /* -- original cpy_qte
11983 CURSOR C_Qte_Number IS
11984 SELECT ASO_QUOTE_NUMBER_S.nextval
11985 FROM sys.dual;
11986
11987 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
11988 SELECT max(quote_version)
11989 FROM ASO_QUOTE_HEADERS_ALL
11990 WHERE quote_number = X_qte_number;
11991
11992 CURSOR C_Qte_Status_Id (c_status_code VARCHAR2) IS
11993 SELECT quote_status_id
11994 FROM ASO_QUOTE_STATUSES_B
11995 WHERE status_code = c_status_code;
11996 --WHERE status_code = 'DRAFT';
11997
11998 CURSOR C_Qte_Status_Trans (from_id NUMBER, to_id NUMBER) IS
11999 SELECT enabled_flag
12000 FROM ASO_QUOTE_STATUS_TRANSITIONS
12001 WHERE from_status_id = from_id AND to_status_id = to_id;
12002
12003 CURSOR C_Qte_Number_exists (X_qte_number NUMBER) IS
12004 SELECT quote_number
12005 FROM ASO_QUOTE_HEADERS_ALL
12006 WHERE quote_number = X_qte_number;
12007
12008 l_api_name CONSTANT VARCHAR2(30) := 'Copy_quote';
12009 l_api_version_number CONSTANT NUMBER := 1.0;
12010 l_return_status VARCHAR2(1);
12011 l_first_version VARCHAR2(1) := FND_API.G_TRUE;
12012 l_val VARCHAR2(1);
12013 l_enabled_flag VARCHAR2(1);
12014 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
12015 l_HEADER_RELATIONSHIP_ID NUMBER;
12016 l_New_Version VARCHAR2(1) := p_New_Version;
12017 l_qte_num NUMBER;
12018 */ -- original cpy_qte
12019
12020 CURSOR C_Get_Hdr_Info(qte_hdr_id NUMBER) IS
12021 SELECT Quote_Expiration_Date, Resource_Id, Resource_Grp_Id
12022 FROM ASO_QUOTE_HEADERS_ALL
12023 WHERE Quote_Header_Id = qte_hdr_id;
12024
12025 l_api_name CONSTANT VARCHAR2(30) := 'Copy_quote';
12026 l_api_version_number CONSTANT NUMBER := 1.0;
12027
12028 lx_qte_number NUMBER;
12029 l_Copy_Quote_Header_Rec ASO_COPY_QUOTE_PUB.Copy_Quote_Header_Rec_Type
12030 := ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Header_Rec;
12031 l_Copy_Quote_Control_Rec ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type
12032 := ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Control_Rec;
12033
12034 BEGIN
12035 -- Standard Start of API savepoint
12036 SAVEPOINT COPY_QUOTE_PVT;
12037
12038 -- Standard call to check for call compatibility.
12039 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
12040 p_api_version_number,
12041 l_api_name,
12042 G_PKG_NAME) THEN
12043 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12044 END IF;
12045
12046 -- Initialize message list if p_init_msg_list is set to TRUE.
12047 IF FND_API.to_Boolean( p_init_msg_list ) THEN
12048 FND_MSG_PUB.initialize;
12049 END IF;
12050
12051 -- Debug Message
12052 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
12053 FND_MESSAGE.Set_Name('ASO', 'Copy Quote API: Start');
12054 FND_MSG_PUB.Add;
12055 END IF;
12056
12057 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12058 aso_debug_pub.add('p_qte_header_id: '||p_qte_header_id,1,'N');
12059 aso_debug_pub.add('p_qte_number: '||p_qte_number,1,'N');
12060 aso_debug_pub.add('p_copy_only_header: '||p_copy_only_header,1,'N');
12061 aso_debug_pub.add('p_new_version: '||p_new_version,1,'N');
12062 aso_debug_pub.add('p_control_rec.copy_att_flag: '||p_control_rec.copy_att_flag,1,'N');
12063 aso_debug_pub.add('p_control_rec.copy_notes_flag: '||p_control_rec.copy_notes_flag,1,'N');
12064 aso_debug_pub.add('p_control_rec.copy_task_flag: '||p_control_rec.copy_task_flag,1,'N');
12065 END IF;
12066
12067 OPEN C_Get_Hdr_Info(p_qte_header_id);
12068 FETCH C_Get_Hdr_Info INTO l_Copy_Quote_Header_Rec.Quote_Expiration_Date,
12069 l_Copy_Quote_Header_Rec.Resource_id, l_Copy_Quote_Header_Rec.Resource_Grp_Id;
12070 CLOSE C_Get_Hdr_Info;
12071
12072 IF l_Copy_Quote_Header_Rec.Quote_Expiration_Date IS NULL THEN
12073 l_Copy_Quote_Header_Rec.Quote_Expiration_Date := FND_API.G_MISS_DATE;
12074 END IF;
12075
12076 IF l_Copy_Quote_Header_Rec.Resource_Id IS NULL THEN
12077 l_Copy_Quote_Header_Rec.Resource_Id := FND_API.G_MISS_NUM;
12078 END IF;
12079
12080 IF l_Copy_Quote_Header_Rec.Resource_Grp_Id IS NULL THEN
12081 l_Copy_Quote_Header_Rec.Resource_Grp_Id := FND_API.G_MISS_NUM;
12082 END IF;
12083
12084 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12085 aso_debug_pub.add('l_Copy_Quote_Header_Rec.Quote_Expiration_Date: '||l_Copy_Quote_Header_Rec.Quote_Expiration_Date,1,'N');
12086 aso_debug_pub.add('l_Copy_Quote_Header_Rec.Resource_Id: '||l_Copy_Quote_Header_Rec.Resource_Id,1,'N');
12087 aso_debug_pub.add('l_Copy_Quote_Header_Rec.Resource_Grp_Id: '||l_Copy_Quote_Header_Rec.Resource_Grp_Id,1,'N');
12088 END IF;
12089
12090 l_Copy_Quote_Header_Rec.quote_header_id := p_qte_header_id;
12091 l_Copy_Quote_Header_Rec.quote_number := p_qte_number;
12092
12093 l_Copy_Quote_Control_Rec.copy_header_only := p_copy_only_header;
12094 l_Copy_Quote_Control_Rec.New_Version := p_new_version;
12095 IF p_control_rec.copy_att_flag = 'Y' THEN
12096 l_Copy_Quote_Control_Rec.Copy_Attachment := FND_API.G_TRUE;
12097 ELSIF p_control_rec.copy_att_flag = 'N' THEN
12098 l_Copy_Quote_Control_Rec.Copy_Attachment := FND_API.G_FALSE;
12099 END IF;
12100
12101 IF p_control_rec.copy_notes_flag = 'Y' THEN
12102 l_Copy_Quote_Control_Rec.Copy_Note := FND_API.G_TRUE;
12103 ELSIF p_control_rec.copy_notes_flag = 'N' THEN
12104 l_Copy_Quote_Control_Rec.Copy_Note := FND_API.G_FALSE;
12105 END IF;
12106
12107 IF p_control_rec.copy_task_flag = 'Y' THEN
12108 l_Copy_Quote_Control_Rec.Copy_Task := FND_API.G_TRUE;
12109 ELSIF p_control_rec.copy_task_flag = 'N' THEN
12110 l_Copy_Quote_Control_Rec.Copy_Task := FND_API.G_FALSE;
12111 END IF;
12112
12113 ASO_COPY_QUOTE_PVT.Copy_Quote(
12114 P_Api_Version_Number => p_api_version_number,
12115 P_Init_Msg_List => p_init_msg_list,
12116 P_Commit => p_commit,
12117 P_Copy_Quote_Header_Rec => l_Copy_Quote_Header_Rec,
12118 P_Copy_Quote_Control_Rec => l_Copy_Quote_Control_Rec,
12119 X_Qte_Header_Id => X_Qte_Header_Id,
12120 X_Qte_Number => lX_Qte_Number,
12121 X_Return_Status => X_Return_Status,
12122 X_Msg_Count => X_Msg_Count,
12123 X_Msg_Data => X_Msg_Data );
12124
12125
12126 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12127 aso_debug_pub.add('After Copy_Qte:X_Return_Status: '||X_Return_Status,1,'N');
12128 aso_debug_pub.add('After Copy_Qte:X_Qte_Header_Id: '||X_Qte_Header_Id,1,'N');
12129 END IF;
12130
12131 /* -- original cpy_qte
12132
12133 -- Initialize API return status to success
12134 l_return_status := FND_API.G_RET_STS_SUCCESS;
12135
12136 --
12137 -- API body
12138 --
12139 -- ******************************************************************
12140 -- Validate Environment
12141 -- ******************************************************************
12142 IF FND_GLOBAL.User_Id IS NULL THEN
12143 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12144 FND_MESSAGE.Set_Name('ASO', 'UT_CANNOT_GET_PROFILE_VALUE');
12145 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
12146 FND_MSG_PUB.ADD;
12147 END IF;
12148 RAISE FND_API.G_EXC_ERROR;
12149 END IF;
12150 -- ******************************************************************
12151 IF (p_validation_level = FND_API.G_VALID_LEVEL_FULL) THEN
12152 OPEN C_Validate_Quote (p_qte_header_id);
12153 FETCH C_Validate_Quote into l_val;
12154 IF C_Validate_Quote%NOTFOUND THEN
12155 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12156 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
12157 FND_MESSAGE.Set_Token('COLUMN', 'ORIGINAL_QUOTE_ID', FALSE);
12158 FND_MESSAGE.Set_Token('VALUE', TO_CHAR(p_qte_header_id), FALSE);
12159 FND_MSG_PUB.ADD;
12160 END IF;
12161 CLOSE C_Validate_Quote;
12162 RAISE FND_API.G_EXC_ERROR;
12163 END IF;
12164 CLOSE C_Validate_Quote;
12165 END IF;
12166
12167 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12168 aso_debug_pub.add('Copy_Quote - Begin- before copy_rows ', 1, 'Y');
12169 aso_debug_pub.add('Copy_Quote - P_Qte_Header_Id: '||P_Qte_Header_Id, 1, 'N');
12170 aso_debug_pub.add('Copy_Quote - P_Last_Update_Date '||P_Last_Update_Date, 1, 'N');
12171 aso_debug_pub.add('Copy_Quote - P_Copy_Only_Header '||P_Copy_Only_Header, 1, 'N');
12172 aso_debug_pub.add('Copy_Quote - P_New_Version '||P_New_Version, 1, 'N');
12173 aso_debug_pub.add('Copy_Quote - P_Qte_Status_Id '||P_Qte_Status_Id, 1, 'N');
12174 aso_debug_pub.add('Copy_Quote - P_Qte_Number '||P_Qte_Number, 1, 'N');
12175 END IF;
12176
12177 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row(p_qte_header_id);
12178 IF (p_new_version = FND_API.G_TRUE AND
12179 l_qte_header_rec.quote_number = p_qte_number) THEN
12180 l_new_version := FND_API.G_TRUE;
12181 END IF;
12182 IF (l_new_version = FND_API.G_FALSE) THEN
12183 IF (p_qte_number IS NULL OR p_qte_number = FND_API.G_MISS_NUM) THEN
12184 IF (NVL(FND_PROFILE.Value('ASO_AUTO_NUMBERING'), 'Y') = 'Y') THEN
12185 OPEN C_Qte_Number;
12186 FETCH C_Qte_Number INTO l_qte_header_rec.quote_number;
12187 CLOSE C_Qte_Number;
12188 l_qte_header_rec.quote_version := 1;
12189 l_first_version := FND_API.G_TRUE;
12190 ELSE
12191 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12192 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
12193 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_NUMBER', FALSE);
12194 FND_MSG_PUB.ADD;
12195 END IF;
12196 RAISE FND_API.G_EXC_ERROR;
12197 END IF; -- profile auto numbering
12198 ELSE
12199 OPEN C_Qte_Number_Exists(p_qte_number);
12200 FETCH C_Qte_Number_Exists into l_qte_num;
12201 CLOSE C_Qte_Number_Exists;
12202 IF (FND_PROFILE.Value('ASO_AUTO_NUMBERING') = 'N'
12203 AND l_qte_num = p_qte_number) THEN
12204 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
12205 THEN
12206 */ -- original cpy_qte
12207 /* FND_MESSAGE.Set_Name('ASO', 'CANNOT COPY TO EXISTING QUOTE');
12208 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_NUMBER', FALSE);
12209 */
12210 /* -- original cpy_qte
12211 FND_MESSAGE.Set_Name('ASO', 'ASO_CANNOT_COPY_QTE');
12212 FND_MSG_PUB.ADD;
12213 END IF;
12214 RAISE FND_API.G_EXC_ERROR;
12215 ELSE
12216 l_qte_header_rec.quote_number := p_qte_number;
12217 l_qte_header_rec.quote_version := 1;
12218 l_first_version := FND_API.G_TRUE;
12219 END IF;
12220 END IF; -- p_qte_number is null
12221 ELSE -- p_new_version
12222
12223 IF P_Qte_Number IS NOT NULL AND P_Qte_Number <> FND_API.G_MISS_NUM THEN
12224
12225 OPEN C_Qte_Number_Exists(p_qte_number);
12226 FETCH C_Qte_Number_Exists into l_qte_num;
12227
12228 IF C_Qte_Number_Exists%NOTFOUND THEN
12229
12230 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12231 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
12232 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_NUMBER', FALSE);
12233 FND_MSG_PUB.ADD;
12234 END IF;
12235
12236 CLOSE C_Qte_Number_Exists;
12237 RAISE FND_API.G_EXC_ERROR;
12238
12239 ELSE
12240 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12241 aso_debug_pub.add('Copy_Quote - P_Qte_Number Exists', 1, 'N');
12242 END IF;
12243 l_qte_header_rec.quote_number := P_Qte_Number;
12244 CLOSE C_Qte_Number_Exists;
12245
12246 END IF;
12247
12248 END IF;
12249
12250 OPEN C_Qte_Version(l_qte_header_rec.quote_number);
12251 FETCH C_Qte_Version into l_qte_header_rec.quote_version;
12252
12253 l_qte_header_rec.quote_version := nvl(l_qte_header_rec.quote_version, 0) + 1;
12254 CLOSE C_Qte_Version;
12255 l_first_version := FND_API.G_FALSE;
12256 END IF;
12257
12258 IF (p_qte_status_id IS NULL OR p_qte_status_id = FND_API.G_MISS_NUM) THEN
12259 --OPEN c_qte_status_id ('DRAFT');
12260 OPEN c_qte_status_id ( fnd_profile.value( 'ASO_DEFAULT_STATUS_CODE' ) );
12261 FETCH c_qte_status_id INTO l_qte_header_rec.quote_status_id;
12262 CLOSE c_qte_status_id;
12263 ELSE
12264 IF l_first_version = FND_API.G_FALSE THEN
12265 OPEN c_qte_status_trans (l_qte_header_rec.quote_status_id, p_qte_status_id);
12266 FETCH c_qte_status_trans INTO l_enabled_flag;
12267 IF c_qte_status_trans%NOTFOUND OR l_enabled_flag = 'N' THEN
12268 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12269 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_STATUS_TRANS');
12270 FND_MSG_PUB.ADD;
12271 END IF;
12272 CLOSE c_qte_status_trans;
12273 RAISE FND_API.G_EXC_ERROR;
12274 END IF;
12275 CLOSE c_qte_status_trans;
12276 END IF;
12277 l_qte_header_rec.quote_status_id := p_qte_status_id;
12278 END IF;
12279
12280 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12281 aso_debug_pub.add('Copy_Quote - Begin- before copy_rows ', 1, 'Y');
12282 END IF;
12283
12284 Copy_Rows(
12285 P_qte_Header_Rec => l_qte_header_rec,
12286 P_Header_Only => P_Copy_Only_Header,
12287 P_control_rec => P_control_rec,
12288 X_Qte_Header_id => x_qte_header_id,
12289 X_Return_Status => l_return_status,
12290 X_Msg_Count => x_msg_count,
12291 X_Msg_Data => x_msg_data);
12292 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12293 aso_debug_pub.add('Copy_Quote - After copy_rows '||l_return_status, 1, 'Y');
12294 END IF;
12295 -- create header relationship
12296
12297 ASO_HEADER_RELATIONSHIPS_PKG.Insert_Row(
12298 px_HEADER_RELATIONSHIP_ID => l_HEADER_RELATIONSHIP_ID,
12299 p_CREATION_DATE => SYSDATE,
12300 p_CREATED_BY => G_USER_ID,
12301 p_LAST_UPDATE_DATE => SYSDATE,
12302 p_LAST_UPDATED_BY => G_USER_ID,
12303 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
12304 p_REQUEST_ID => NULL,
12305 p_PROGRAM_APPLICATION_ID => NULL,
12306 p_PROGRAM_ID => NULL,
12307 p_PROGRAM_UPDATE_DATE => NULL,
12308 p_QUOTE_HEADER_ID => p_qte_header_id,
12309 p_RELATED_HEADER_ID => x_qte_header_id,
12310 p_RELATIONSHIP_TYPE_CODE => 'COPY',
12311 p_RECIPROCAL_FLAG => NULL,
12312 P_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM
12313 );
12314
12315
12316 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
12317 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
12318 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12319 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
12320 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
12321 FND_MSG_PUB.ADD;
12322 END IF;
12323 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12324 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
12325 x_return_status := FND_API.G_RET_STS_ERROR;
12326 */ -- original cpy_qte
12327 /* IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12328 FND_MESSAGE.Set_Name('ASO', 'ASO_API_EXP_ERROR');
12329 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
12330 FND_MSG_PUB.ADD;
12331 END IF; */
12332 /* -- original cpy_qte
12333 RAISE FND_API.G_EXC_ERROR;
12334 END IF;
12335 x_return_status := FND_API.G_RET_STS_SUCCESS;
12336 --
12337 -- End of API body
12338 --
12339 */ -- original cpy_qte
12340 -- Standard check for p_commit
12341 IF FND_API.to_Boolean( p_commit )
12342 THEN
12343 COMMIT WORK;
12344 END IF;
12345
12346
12347
12348 -- Standard call to get message count and if count is 1, get message info.
12349 FND_MSG_PUB.Count_And_Get
12350 ( p_count => x_msg_count,
12351 p_data => x_msg_data
12352 );
12353
12354 EXCEPTION
12355 WHEN FND_API.G_EXC_ERROR THEN
12356 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
12357 P_API_NAME => L_API_NAME
12358 ,P_PKG_NAME => G_PKG_NAME
12359 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
12360 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
12361 ,X_MSG_COUNT => X_MSG_COUNT
12362 ,X_MSG_DATA => X_MSG_DATA
12363 ,X_RETURN_STATUS => X_RETURN_STATUS);
12364
12365 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12366 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
12367 P_API_NAME => L_API_NAME
12368 ,P_PKG_NAME => G_PKG_NAME
12369 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
12370 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
12371 ,X_MSG_COUNT => X_MSG_COUNT
12372 ,X_MSG_DATA => X_MSG_DATA
12373 ,X_RETURN_STATUS => X_RETURN_STATUS);
12374
12375 WHEN OTHERS THEN
12376 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
12377 P_API_NAME => L_API_NAME
12378 ,P_PKG_NAME => G_PKG_NAME
12379 ,P_SQLCODE => SQLCODE
12380 ,P_SQLERRM => SQLERRM
12381 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
12382 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
12383 ,X_MSG_COUNT => X_MSG_COUNT
12384 ,X_MSG_DATA => X_MSG_DATA
12385 ,X_RETURN_STATUS => X_RETURN_STATUS);
12386 END Copy_Quote;
12387
12388 -- This procudure defines the columns for the Dynamic SQL.
12389 PROCEDURE Define_Columns(
12390 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
12391 p_cur_get_QTE IN NUMBER
12392 )
12393 IS
12394 BEGIN
12395
12396 -- define all columns for ASO_QUOTE_HEADERS_V view
12397 ----dbms_sql.define_column(p_cur_get_QTE, 1, P_Qte_Header_Rec.QUOTE_HEADER_ID);
12398 ----dbms_sql.define_column(p_cur_get_QTE, 2, P_Qte_Header_Rec.ORG_ID);
12399 ----dbms_sql.define_column(p_cur_get_QTE, 3, P_Qte_Header_Rec.REQUEST_ID);
12400 ----dbms_sql.define_column(p_cur_get_QTE, 4, P_Qte_Header_Rec.ORIGINAL_SYSTEM_REFERENCE, 240);
12401 ----dbms_sql.define_column(p_cur_get_QTE, 5, P_Qte_Header_Rec.EMPLOYEE_PERSON_ID);
12402 ----dbms_sql.define_column(p_cur_get_QTE, 6, P_Qte_Header_Rec.SALESREP_FIRST_NAME, 20);
12403 ----dbms_sql.define_column(p_cur_get_QTE, 7, P_Qte_Header_Rec.SALESREP_LAST_NAME, 40);
12404 ----dbms_sql.define_column(p_cur_get_QTE, 8, P_Qte_Header_Rec.PRICE_LIST_ID);
12405 ----dbms_sql.define_column(p_cur_get_QTE, 9, P_Qte_Header_Rec.PRICE_LIST_NAME, 0);
12406 ----dbms_sql.define_column(p_cur_get_QTE, 10, P_Qte_Header_Rec.QUOTE_STATUS_ID);
12407 ----dbms_sql.define_column(p_cur_get_QTE, 11, P_Qte_Header_Rec.QUOTE_STATUS_CODE, 30);
12408 ----dbms_sql.define_column(p_cur_get_QTE, 12, P_Qte_Header_Rec.QUOTE_STATUS, 240);
12409 ----dbms_sql.define_column(p_cur_get_QTE, 15, P_Qte_Header_Rec.QUOTE_SOURCE_CODE, 15);
12410 ----dbms_sql.define_column(p_cur_get_QTE, 16, P_Qte_Header_Rec.PARTY_ID);
12411 ----dbms_sql.define_column(p_cur_get_QTE, 17, P_Qte_Header_Rec.PARTY_NAME, 255);
12412 ----dbms_sql.define_column(p_cur_get_QTE, 18, P_Qte_Header_Rec.PARTY_TYPE, 30);
12413 ----dbms_sql.define_column(p_cur_get_QTE, 19, P_Qte_Header_Rec.PERSON_FIRST_NAME, 150);
12414 ----dbms_sql.define_column(p_cur_get_QTE, 20, P_Qte_Header_Rec.PERSON_MIDDLE_NAME, 60);
12415 ----dbms_sql.define_column(p_cur_get_QTE, 21, P_Qte_Header_Rec.PERSON_LAST_NAME, 150);
12416 ----dbms_sql.define_column(p_cur_get_QTE, 22, P_Qte_Header_Rec.ORG_CONTACT_ID);
12417 ----dbms_sql.define_column(p_cur_get_QTE, 26, P_Qte_Header_Rec.QUOTE_NAME, 50);
12418 ----dbms_sql.define_column(p_cur_get_QTE, 27, P_Qte_Header_Rec.QUOTE_NUMBER);
12419 ----dbms_sql.define_column(p_cur_get_QTE, 28, P_Qte_Header_Rec.QUOTE_VERSION);
12420 ----dbms_sql.define_column(p_cur_get_QTE, 29, P_Qte_Header_Rec.QUOTE_EXPIRATION_DATE);
12421 ----dbms_sql.define_column(p_cur_get_QTE, 30, P_Qte_Header_Rec.QUOTE_CATEGORY_CODE, 30);
12422 ----dbms_sql.define_column(p_cur_get_QTE, 31, P_Qte_Header_Rec.CURRENCY_CODE, 15);
12423 ----dbms_sql.define_column(p_cur_get_QTE, 32, P_Qte_Header_Rec.EXCHANGE_RATE);
12424 ----dbms_sql.define_column(p_cur_get_QTE, 33, P_Qte_Header_Rec.EXCHANGE_TYPE_CODE, 15);
12425 ----dbms_sql.define_column(p_cur_get_QTE, 34, P_Qte_Header_Rec.EXCHANGE_RATE_DATE);
12426 ----dbms_sql.define_column(p_cur_get_QTE, 39, P_Qte_Header_Rec.ORDERED_DATE);
12427 ----dbms_sql.define_column(p_cur_get_QTE, 40, P_Qte_Header_Rec.ORDER_TYPE_ID);
12428 ----dbms_sql.define_column(p_cur_get_QTE, 41, P_Qte_Header_Rec.ORDER_TYPE_NAME, 80);
12429 ----dbms_sql.define_column(p_cur_get_QTE, 45, P_Qte_Header_Rec.TOTAL_LIST_PRICE);
12430 ----dbms_sql.define_column(p_cur_get_QTE, 46, P_Qte_Header_Rec.TOTAL_ADJUSTED_AMOUNT);
12431 ----dbms_sql.define_column(p_cur_get_QTE, 47, P_Qte_Header_Rec.TOTAL_ADJUSTED_PERCENT);
12432 ----dbms_sql.define_column(p_cur_get_QTE, 48, P_Qte_Header_Rec.TOTAL_TAX);
12433 ----dbms_sql.define_column(p_cur_get_QTE, 49, P_Qte_Header_Rec.SURCHARGE);
12434 ----dbms_sql.define_column(p_cur_get_QTE, 50, P_Qte_Header_Rec.TOTAL_SHIPPING_CHARGE);
12435 ----dbms_sql.define_column(p_cur_get_QTE, 51, P_Qte_Header_Rec.TOTAL_QUOTE_PRICE);
12436 ----dbms_sql.define_column(p_cur_get_QTE, 52, P_Qte_Header_Rec.ACCOUNTING_RULE_ID);
12437 ----dbms_sql.define_column(p_cur_get_QTE, 53, P_Qte_Header_Rec.INVOICING_RULE_ID);
12438 ----dbms_sql.define_column(p_cur_get_QTE, 73, P_Qte_Header_Rec.INVOICE_TO_PARTY_ID);
12439 ----dbms_sql.define_column(p_cur_get_QTE, 74, P_Qte_Header_Rec.INVOICE_TO_PARTY_SITE_ID);
12440 ----dbms_sql.define_column(p_cur_get_QTE, 75, P_Qte_Header_Rec.INVOICE_TO_PARTY_NAME, 255);
12441 ----dbms_sql.define_column(p_cur_get_QTE, 76, P_Qte_Header_Rec.INVOICE_TO_CONTACT_FIRST_NAME, 150);
12442 ----dbms_sql.define_column(p_cur_get_QTE, 77, P_Qte_Header_Rec.INVOICE_TO_CONTACT_MIDDLE_NAME, 60);
12443 ----dbms_sql.define_column(p_cur_get_QTE, 78, P_Qte_Header_Rec.INVOICE_TO_CONTACT_LAST_NAME, 150);
12444 ----dbms_sql.define_column(p_cur_get_QTE, 79, P_Qte_Header_Rec.INVOICE_TO_ADDRESS1, 240);
12445 ----dbms_sql.define_column(p_cur_get_QTE, 80, P_Qte_Header_Rec.INVOICE_TO_ADDRESS2, 240);
12446 ----dbms_sql.define_column(p_cur_get_QTE, 81, P_Qte_Header_Rec.INVOICE_TO_ADDRESS3, 240);
12447 ----dbms_sql.define_column(p_cur_get_QTE, 82, P_Qte_Header_Rec.INVOICE_TO_ADDRESS4, 240);
12448 ----dbms_sql.define_column(p_cur_get_QTE, 83, P_Qte_Header_Rec.INVOICE_TO_COUNTRY_CODE, 60);
12449 ----dbms_sql.define_column(p_cur_get_QTE, 84, P_Qte_Header_Rec.INVOICE_TO_COUNTRY, 80);
12450 ----dbms_sql.define_column(p_cur_get_QTE, 85, P_Qte_Header_Rec.INVOICE_TO_CITY, 60);
12451 ----dbms_sql.define_column(p_cur_get_QTE, 86, P_Qte_Header_Rec.INVOICE_TO_POSTAL_CODE, 60);
12452 ----dbms_sql.define_column(p_cur_get_QTE, 87, P_Qte_Header_Rec.INVOICE_TO_STATE, 60);
12453 ----dbms_sql.define_column(p_cur_get_QTE, 88, P_Qte_Header_Rec.INVOICE_TO_PROVINCE, 60);
12454 ----dbms_sql.define_column(p_cur_get_QTE, 89, P_Qte_Header_Rec.INVOICE_TO_COUNTY, 60);
12455 ----dbms_sql.define_column(p_cur_get_QTE, 92, P_Qte_Header_Rec.CONTRACT_ID);
12456 ----dbms_sql.define_column(p_cur_get_QTE, 93, P_Qte_Header_Rec.ATTRIBUTE_CATEGORY, 30);
12457 ----dbms_sql.define_column(p_cur_get_QTE, 94, P_Qte_Header_Rec.ATTRIBUTE1, 150);
12458 ----dbms_sql.define_column(p_cur_get_QTE, 95, P_Qte_Header_Rec.ATTRIBUTE2, 150);
12459 ----dbms_sql.define_column(p_cur_get_QTE, 96, P_Qte_Header_Rec.ATTRIBUTE3, 150);
12460 ----dbms_sql.define_column(p_cur_get_QTE, 97, P_Qte_Header_Rec.ATTRIBUTE4, 150);
12461 ----dbms_sql.define_column(p_cur_get_QTE, 98, P_Qte_Header_Rec.ATTRIBUTE5, 150);
12462 ----dbms_sql.define_column(p_cur_get_QTE, 99, P_Qte_Header_Rec.ATTRIBUTE6, 150);
12463 ----dbms_sql.define_column(p_cur_get_QTE, 100, P_Qte_Header_Rec.ATTRIBUTE7, 150);
12464 ----dbms_sql.define_column(p_cur_get_QTE, 101, P_Qte_Header_Rec.ATTRIBUTE8, 150);
12465 ----dbms_sql.define_column(p_cur_get_QTE, 102, P_Qte_Header_Rec.ATTRIBUTE9, 150);
12466 ----dbms_sql.define_column(p_cur_get_QTE, 103, P_Qte_Header_Rec.ATTRIBUTE10, 150);
12467 ----dbms_sql.define_column(p_cur_get_QTE, 104, P_Qte_Header_Rec.ATTRIBUTE11, 150);
12468 ----dbms_sql.define_column(p_cur_get_QTE, 105, P_Qte_Header_Rec.ATTRIBUTE12, 150);
12469 ----dbms_sql.define_column(p_cur_get_QTE, 106, P_Qte_Header_Rec.ATTRIBUTE13, 150);
12470 ----dbms_sql.define_column(p_cur_get_QTE, 107, P_Qte_Header_Rec.ATTRIBUTE14, 150);
12471 ----dbms_sql.define_column(p_cur_get_QTE, 108, P_Qte_Header_Rec.ATTRIBUTE15, 150);
12472
12473 null;
12474
12475 END Define_Columns;
12476
12477 -- This procudure gets column values by the Dynamic SQL.
12478 PROCEDURE Get_Column_Values(
12479 p_cur_get_QTE IN NUMBER,
12480 X_Qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Rec_Type
12481 )
12482 IS
12483 BEGIN
12484
12485 -- get all column values for ASO_QUOTE_HEADERS_V table
12486 ----dbms_sql.column_value(p_cur_get_QTE, 2, X_Qte_Header_Rec.QUOTE_HEADER_ID);
12487 ----dbms_sql.column_value(p_cur_get_QTE, 3, X_Qte_Header_Rec.ORG_ID);
12488 ----dbms_sql.column_value(p_cur_get_QTE, 4, X_Qte_Header_Rec.REQUEST_ID);
12489 ----dbms_sql.column_value(p_cur_get_QTE, 5, X_Qte_Header_Rec.ORIGINAL_SYSTEM_REFERENCE);
12490 ----dbms_sql.column_value(p_cur_get_QTE, 6, X_Qte_Header_Rec.EMPLOYEE_PERSON_ID);
12491 ----dbms_sql.column_value(p_cur_get_QTE, 7, X_Qte_Header_Rec.SALESREP_FIRST_NAME);
12492 ----dbms_sql.column_value(p_cur_get_QTE, 8, X_Qte_Header_Rec.SALESREP_LAST_NAME);
12493 ----dbms_sql.column_value(p_cur_get_QTE, 9, X_Qte_Header_Rec.PRICE_LIST_ID);
12494 ----dbms_sql.column_value(p_cur_get_QTE, 10, X_Qte_Header_Rec.PRICE_LIST_NAME);
12495 ----dbms_sql.column_value(p_cur_get_QTE, 11, X_Qte_Header_Rec.QUOTE_STATUS_ID);
12496 ----dbms_sql.column_value(p_cur_get_QTE, 12, X_Qte_Header_Rec.QUOTE_STATUS_CODE);
12497 ----dbms_sql.column_value(p_cur_get_QTE, 13, X_Qte_Header_Rec.QUOTE_STATUS);
12498 ----dbms_sql.column_value(p_cur_get_QTE, 16, X_Qte_Header_Rec.QUOTE_SOURCE_CODE);
12499 ----dbms_sql.column_value(p_cur_get_QTE, 17, X_Qte_Header_Rec.PARTY_ID);
12500 ----dbms_sql.column_value(p_cur_get_QTE, 18, X_Qte_Header_Rec.PARTY_NAME);
12501 ----dbms_sql.column_value(p_cur_get_QTE, 19, X_Qte_Header_Rec.PARTY_TYPE);
12502 ----dbms_sql.column_value(p_cur_get_QTE, 20, X_Qte_Header_Rec.PERSON_FIRST_NAME);
12503 ----dbms_sql.column_value(p_cur_get_QTE, 21, X_Qte_Header_Rec.PERSON_MIDDLE_NAME);
12504 ----dbms_sql.column_value(p_cur_get_QTE, 22, X_Qte_Header_Rec.PERSON_LAST_NAME);
12505 ----dbms_sql.column_value(p_cur_get_QTE, 23, X_Qte_Header_Rec.ORG_CONTACT_ID);
12506 ----dbms_sql.column_value(p_cur_get_QTE, 27, X_Qte_Header_Rec.QUOTE_NAME);
12507 ----dbms_sql.column_value(p_cur_get_QTE, 28, X_Qte_Header_Rec.QUOTE_NUMBER);
12508 ----dbms_sql.column_value(p_cur_get_QTE, 29, X_Qte_Header_Rec.QUOTE_VERSION);
12509 ----dbms_sql.column_value(p_cur_get_QTE, 30, X_Qte_Header_Rec.QUOTE_EXPIRATION_DATE);
12510 ----dbms_sql.column_value(p_cur_get_QTE, 31, X_Qte_Header_Rec.QUOTE_CATEGORY_CODE);
12511 ----dbms_sql.column_value(p_cur_get_QTE, 32, X_Qte_Header_Rec.CURRENCY_CODE);
12512 ----dbms_sql.column_value(p_cur_get_QTE, 33, X_Qte_Header_Rec.EXCHANGE_RATE);
12513 ----dbms_sql.column_value(p_cur_get_QTE, 34, X_Qte_Header_Rec.EXCHANGE_TYPE_CODE);
12514 ----dbms_sql.column_value(p_cur_get_QTE, 35, X_Qte_Header_Rec.EXCHANGE_RATE_DATE);
12515 ----dbms_sql.column_value(p_cur_get_QTE, 40, X_Qte_Header_Rec.ORDERED_DATE);
12516 ----dbms_sql.column_value(p_cur_get_QTE, 41, X_Qte_Header_Rec.ORDER_TYPE_ID);
12517 ----dbms_sql.column_value(p_cur_get_QTE, 42, X_Qte_Header_Rec.ORDER_TYPE_NAME);
12518 ----dbms_sql.column_value(p_cur_get_QTE, 46, X_Qte_Header_Rec.TOTAL_LIST_PRICE);
12519 ----dbms_sql.column_value(p_cur_get_QTE, 47, X_Qte_Header_Rec.TOTAL_ADJUSTED_AMOUNT);
12520 ----dbms_sql.column_value(p_cur_get_QTE, 48, X_Qte_Header_Rec.TOTAL_ADJUSTED_PERCENT);
12521 ----dbms_sql.column_value(p_cur_get_QTE, 49, X_Qte_Header_Rec.TOTAL_TAX);
12522 ----dbms_sql.column_value(p_cur_get_QTE, 50, X_Qte_Header_Rec.SURCHARGE);
12523 ----dbms_sql.column_value(p_cur_get_QTE, 51, X_Qte_Header_Rec.TOTAL_SHIPPING_CHARGE);
12524 ----dbms_sql.column_value(p_cur_get_QTE, 52, X_Qte_Header_Rec.TOTAL_QUOTE_PRICE);
12525 ----dbms_sql.column_value(p_cur_get_QTE, 53, X_Qte_Header_Rec.ACCOUNTING_RULE_ID);
12526 ----dbms_sql.column_value(p_cur_get_QTE, 54, X_Qte_Header_Rec.INVOICING_RULE_ID);
12527 ----dbms_sql.column_value(p_cur_get_QTE, 74, X_Qte_Header_Rec.INVOICE_TO_PARTY_ID);
12528 ----dbms_sql.column_value(p_cur_get_QTE, 75, X_Qte_Header_Rec.INVOICE_TO_PARTY_SITE_ID);
12529 ----dbms_sql.column_value(p_cur_get_QTE, 76, X_Qte_Header_Rec.INVOICE_TO_PARTY_NAME);
12530 ----dbms_sql.column_value(p_cur_get_QTE, 77, X_Qte_Header_Rec.INVOICE_TO_CONTACT_FIRST_NAME);
12531 ----dbms_sql.column_value(p_cur_get_QTE, 78, X_Qte_Header_Rec.INVOICE_TO_CONTACT_MIDDLE_NAME);
12532 ----dbms_sql.column_value(p_cur_get_QTE, 79, X_Qte_Header_Rec.INVOICE_TO_CONTACT_LAST_NAME);
12533 ----dbms_sql.column_value(p_cur_get_QTE, 80, X_Qte_Header_Rec.INVOICE_TO_ADDRESS1);
12534 ----dbms_sql.column_value(p_cur_get_QTE, 81, X_Qte_Header_Rec.INVOICE_TO_ADDRESS2);
12535 ----dbms_sql.column_value(p_cur_get_QTE, 82, X_Qte_Header_Rec.INVOICE_TO_ADDRESS3);
12536 ----dbms_sql.column_value(p_cur_get_QTE, 83, X_Qte_Header_Rec.INVOICE_TO_ADDRESS4);
12537 ----dbms_sql.column_value(p_cur_get_QTE, 84, X_Qte_Header_Rec.INVOICE_TO_COUNTRY_CODE);
12538 ----dbms_sql.column_value(p_cur_get_QTE, 85, X_Qte_Header_Rec.INVOICE_TO_COUNTRY);
12539 ----dbms_sql.column_value(p_cur_get_QTE, 86, X_Qte_Header_Rec.INVOICE_TO_CITY);
12540 ----dbms_sql.column_value(p_cur_get_QTE, 87, X_Qte_Header_Rec.INVOICE_TO_POSTAL_CODE);
12541 ----dbms_sql.column_value(p_cur_get_QTE, 88, X_Qte_Header_Rec.INVOICE_TO_STATE);
12542 ----dbms_sql.column_value(p_cur_get_QTE, 89, X_Qte_Header_Rec.INVOICE_TO_PROVINCE);
12543 ----dbms_sql.column_value(p_cur_get_QTE, 90, X_Qte_Header_Rec.INVOICE_TO_COUNTY);
12544 ----dbms_sql.column_value(p_cur_get_QTE, 93, X_Qte_Header_Rec.CONTRACT_ID);
12545 ----dbms_sql.column_value(p_cur_get_QTE, 94, X_Qte_Header_Rec.ATTRIBUTE_CATEGORY);
12546 ----dbms_sql.column_value(p_cur_get_QTE, 95, X_Qte_Header_Rec.ATTRIBUTE1);
12547 ----dbms_sql.column_value(p_cur_get_QTE, 96, X_Qte_Header_Rec.ATTRIBUTE2);
12548 ----dbms_sql.column_value(p_cur_get_QTE, 97, X_Qte_Header_Rec.ATTRIBUTE3);
12549 ----dbms_sql.column_value(p_cur_get_QTE, 98, X_Qte_Header_Rec.ATTRIBUTE4);
12550 ----dbms_sql.column_value(p_cur_get_QTE, 99, X_Qte_Header_Rec.ATTRIBUTE5);
12551 ----dbms_sql.column_value(p_cur_get_QTE, 100, X_Qte_Header_Rec.ATTRIBUTE6);
12552 ----dbms_sql.column_value(p_cur_get_QTE, 101, X_Qte_Header_Rec.ATTRIBUTE7);
12553 ----dbms_sql.column_value(p_cur_get_QTE, 102, X_Qte_Header_Rec.ATTRIBUTE8);
12554 ----dbms_sql.column_value(p_cur_get_QTE, 103, X_Qte_Header_Rec.ATTRIBUTE9);
12555 ----dbms_sql.column_value(p_cur_get_QTE, 104, X_Qte_Header_Rec.ATTRIBUTE10);
12556 ----dbms_sql.column_value(p_cur_get_QTE, 105, X_Qte_Header_Rec.ATTRIBUTE11);
12557 ----dbms_sql.column_value(p_cur_get_QTE, 106, X_Qte_Header_Rec.ATTRIBUTE12);
12558 ----dbms_sql.column_value(p_cur_get_QTE, 107, X_Qte_Header_Rec.ATTRIBUTE13);
12559 ----dbms_sql.column_value(p_cur_get_QTE, 108, X_Qte_Header_Rec.ATTRIBUTE14);
12560 ----dbms_sql.column_value(p_cur_get_QTE, 109, X_Qte_Header_Rec.ATTRIBUTE15);
12561 null;
12562
12563 END Get_Column_Values;
12564
12565 PROCEDURE Gen_QTE_order_cl(
12566 p_order_by_rec IN ASO_QUOTE_PUB.QTE_sort_rec_type,
12567 x_order_by_cl OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12568 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12569 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
12570 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12571 )
12572 IS
12573 l_order_by_cl VARCHAR2(1000) := NULL;
12574 l_util_order_by_tbl ASO_UTILITY_PVT.Util_order_by_tbl_type;
12575 BEGIN
12576
12577 -- Hint: Developer should add more statements according to ASO_sort_rec_type
12578 -- Ex:
12579 -- l_util_order_by_tbl(1).col_choice := p_order_by_rec.customer_name;
12580 -- l_util_order_by_tbl(1).col_name := 'Customer_Name';
12581
12582
12583 ASO_UTILITY_PVT.Translate_OrderBy(
12584 p_api_version_number => 1.0
12585 ,p_init_msg_list => FND_API.G_FALSE
12586 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
12587 ,p_order_by_tbl => l_util_order_by_tbl
12588 ,x_order_by_clause => l_order_by_cl
12589 ,x_return_status => x_return_status
12590 ,x_msg_count => x_msg_count
12591 ,x_msg_data => x_msg_data);
12592
12593 IF(l_order_by_cl IS NOT NULL) THEN
12594 x_order_by_cl := 'order by' || l_order_by_cl;
12595 ELSE
12596 x_order_by_cl := NULL;
12597 END IF;
12598
12599 END Gen_QTE_order_cl;
12600
12601 -- This procedure bind the variables for the Dynamic SQL
12602 PROCEDURE Bind(
12603 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
12604 -- Hint: Add more binding variables here
12605 p_cur_get_QTE IN NUMBER
12606 )
12607 IS
12608 BEGIN
12609 -- Bind variables
12610 -- Only those that are not NULL
12611
12612 -- The following example applies to all columns,
12613 -- developers can copy and paste them.
12614 IF( (P_Qte_Header_Rec.QUOTE_HEADER_ID IS NOT NULL) AND (P_Qte_Header_Rec.QUOTE_HEADER_ID <> FND_API.G_MISS_NUM) )
12615 THEN
12616 dbms_SQL.BIND_VARIABLE(p_cur_get_QTE, ':p_QUOTE_HEADER_ID', P_Qte_Header_Rec.QUOTE_HEADER_ID);
12617 END IF;
12618
12619 END Bind;
12620
12621 PROCEDURE Gen_Select(
12622 x_select_cl OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12623 )
12624 IS
12625 BEGIN
12626
12627 x_select_cl := 'Select ' ||
12628 'ASO_QUOTE_HEADERS_V.ROW_ID,' ||
12629 'ASO_QUOTE_HEADERS_V.QUOTE_HEADER_ID,' ||
12630 'ASO_QUOTE_HEADERS_V.ORG_ID,' ||
12631 'ASO_QUOTE_HEADERS_V.LAST_UPDATE_DATE,' ||
12632 'ASO_QUOTE_HEADERS_V.LAST_UPDATED_BY,' ||
12633 'ASO_QUOTE_HEADERS_V.CREATION_DATE,' ||
12634 'ASO_QUOTE_HEADERS_V.CREATED_BY,' ||
12635 'ASO_QUOTE_HEADERS_V.LAST_UPDATE_LOGIN,' ||
12636 'ASO_QUOTE_HEADERS_V.REQUEST_ID,' ||
12637 'ASO_QUOTE_HEADERS_V.PROGRAM_APPLICATION_ID,' ||
12638 'ASO_QUOTE_HEADERS_V.PROGRAM_ID,' ||
12639 'ASO_QUOTE_HEADERS_V.PROGRAM_UPDATE_DATE,' ||
12640 'ASO_QUOTE_HEADERS_V.ORIGINAL_SYSTEM_REFERENCE,' ||
12641 'ASO_QUOTE_HEADERS_V.EMPLOYEE_PERSON_ID,' ||
12642 'ASO_QUOTE_HEADERS_V.SALESREP_FIRST_NAME,' ||
12643 'ASO_QUOTE_HEADERS_V.SALESREP_LAST_NAME,' ||
12644 'ASO_QUOTE_HEADERS_V.PRICE_LIST_ID,' ||
12645 'ASO_QUOTE_HEADERS_V.PRICE_LIST_NAME,' ||
12646 'ASO_QUOTE_HEADERS_V.QUOTE_STATUS_ID,' ||
12647 'ASO_QUOTE_HEADERS_V.QUOTE_STATUS_CODE,' ||
12648 'ASO_QUOTE_HEADERS_V.QUOTE_STATUS,' ||
12649 'ASO_QUOTE_HEADERS_V.UPDATE_ALLOWED_FLAG,' ||
12650 'ASO_QUOTE_HEADERS_V.AUTO_VERSION_FLAG,' ||
12651 'ASO_QUOTE_HEADERS_V.QUOTE_SOURCE_CODE,' ||
12652 'ASO_QUOTE_HEADERS_V.PARTY_ID,' ||
12653 'ASO_QUOTE_HEADERS_V.PARTY_NAME,' ||
12654 'ASO_QUOTE_HEADERS_V.PARTY_TYPE,' ||
12655 'ASO_QUOTE_HEADERS_V.PERSON_FIRST_NAME,' ||
12656 'ASO_QUOTE_HEADERS_V.PERSON_MIDDLE_NAME,' ||
12657 'ASO_QUOTE_HEADERS_V.PERSON_LAST_NAME,' ||
12658 'ASO_QUOTE_HEADERS_V.ORG_CONTACT_ID,' ||
12659 'ASO_QUOTE_HEADERS_V.CONTACT_FIRST_NAME,' ||
12660 'ASO_QUOTE_HEADERS_V.CONTACT_MIDDLE_NAME,' ||
12661 'ASO_QUOTE_HEADERS_V.CONTACT_LAST_NAME,' ||
12662 'ASO_QUOTE_HEADERS_V.QUOTE_NAME,' ||
12663 'ASO_QUOTE_HEADERS_V.QUOTE_NUMBER,' ||
12664 'ASO_QUOTE_HEADERS_V.QUOTE_VERSION,' ||
12665 'ASO_QUOTE_HEADERS_V.QUOTE_EXPIRATION_DATE,' ||
12666 'ASO_QUOTE_HEADERS_V.QUOTE_CATEGORY_CODE,' ||
12667 'ASO_QUOTE_HEADERS_V.CURRENCY_CODE,' ||
12668 'ASO_QUOTE_HEADERS_V.EXCHANGE_RATE,' ||
12669 'ASO_QUOTE_HEADERS_V.EXCHANGE_TYPE_CODE,' ||
12670 'ASO_QUOTE_HEADERS_V.EXCHANGE_RATE_DATE,' ||
12671 'ASO_QUOTE_HEADERS_V.SOURCE_CAMPAIGN_ID,' ||
12672 'ASO_QUOTE_HEADERS_V.CAMPAIGN_ID,' ||
12673 'ASO_QUOTE_HEADERS_V.CAMPAIGN_NAME,' ||
12674 'ASO_QUOTE_HEADERS_V.CAMPAIGN_SOURCE_CODE,' ||
12675 'ASO_QUOTE_HEADERS_V.ORDERED_DATE,' ||
12676 'ASO_QUOTE_HEADERS_V.ORDER_TYPE_ID,' ||
12677 'ASO_QUOTE_HEADERS_V.ORDER_TYPE_NAME,' ||
12678 'ASO_QUOTE_HEADERS_V.TAX_EXEMPT_NUMBER,' ||
12679 'ASO_QUOTE_HEADERS_V.TAX_EXEMPT_REASON_CODE,' ||
12680 'ASO_QUOTE_HEADERS_V.TAX_EXEMPT_FLAG,' ||
12681 'ASO_QUOTE_HEADERS_V.TOTAL_LIST_PRICE,' ||
12682 'ASO_QUOTE_HEADERS_V.TOTAL_ADJUSTED_AMOUNT,' ||
12683 'ASO_QUOTE_HEADERS_V.TOTAL_ADJUSTED_PERCENT,' ||
12684 'ASO_QUOTE_HEADERS_V.TOTAL_TAX,' ||
12685 'ASO_QUOTE_HEADERS_V.SURCHARGE,' ||
12686 'ASO_QUOTE_HEADERS_V.TOTAL_SHIPPING_CHARGE,' ||
12687 'ASO_QUOTE_HEADERS_V.TOTAL_QUOTE_PRICE,' ||
12688 'ASO_QUOTE_HEADERS_V.ACCOUNTING_RULE_ID,' ||
12689 'ASO_QUOTE_HEADERS_V.INVOICING_RULE_ID,' ||
12690 'ASO_QUOTE_HEADERS_V.SHIP_METHOD_CODE,' ||
12691 'ASO_QUOTE_HEADERS_V.FREIGHT_TERMS_CODE,' ||
12692 'ASO_QUOTE_HEADERS_V.SHIP_TO_PARTY_ID,' ||
12693 'ASO_QUOTE_HEADERS_V.SHIP_TO_PARTY_SITE_ID,' ||
12694 'ASO_QUOTE_HEADERS_V.SHIP_TO_PARTY_NAME,' ||
12695 'ASO_QUOTE_HEADERS_V.SHIP_TO_CONTACT_FIRST_NAME,' ||
12696 'ASO_QUOTE_HEADERS_V.SHIP_TO_CONTACT_MIDDLE_NAME,' ||
12697 'ASO_QUOTE_HEADERS_V.SHIP_TO_CONTACT_LAST_NAME,' ||
12698 'ASO_QUOTE_HEADERS_V.SHIP_TO_ADDRESS1,' ||
12699 'ASO_QUOTE_HEADERS_V.SHIP_TO_ADDRESS2,' ||
12700 'ASO_QUOTE_HEADERS_V.SHIP_TO_ADDRESS3,' ||
12701 'ASO_QUOTE_HEADERS_V.SHIP_TO_ADDRESS4,' ||
12702 'ASO_QUOTE_HEADERS_V.SHIP_TO_COUNTRY_CODE,' ||
12703 'ASO_QUOTE_HEADERS_V.SHIP_TO_COUNTRY,' ||
12704 'ASO_QUOTE_HEADERS_V.SHIP_TO_CITY,' ||
12705 'ASO_QUOTE_HEADERS_V.SHIP_TO_POSTAL_CODE,' ||
12706 'ASO_QUOTE_HEADERS_V.SHIP_TO_STATE,' ||
12707 'ASO_QUOTE_HEADERS_V.SHIP_TO_PROVINCE,' ||
12708 'ASO_QUOTE_HEADERS_V.SHIP_TO_COUNTY,' ||
12709 'ASO_QUOTE_HEADERS_V.INVOICE_TO_PARTY_ID,' ||
12710 'ASO_QUOTE_HEADERS_V.INVOICE_TO_PARTY_SITE_ID,' ||
12711 'ASO_QUOTE_HEADERS_V.INVOICE_TO_PARTY_NAME,' ||
12712 'ASO_QUOTE_HEADERS_V.INVOICE_TO_CONTACT_FIRST_NAME,' ||
12713 'ASO_QUOTE_HEADERS_V.INVOICE_TO_CONTACT_MIDDLE_NAME,' ||
12714 'ASO_QUOTE_HEADERS_V.INVOICE_TO_CONTACT_LAST_NAME,' ||
12715 'ASO_QUOTE_HEADERS_V.INVOICE_TO_ADDRESS1,' ||
12716 'ASO_QUOTE_HEADERS_V.INVOICE_TO_ADDRESS2,' ||
12717 'ASO_QUOTE_HEADERS_V.INVOICE_TO_ADDRESS3,' ||
12718 'ASO_QUOTE_HEADERS_V.INVOICE_TO_ADDRESS4,' ||
12719 'ASO_QUOTE_HEADERS_V.INVOICE_TO_COUNTRY_CODE,' ||
12720 'ASO_QUOTE_HEADERS_V.INVOICE_TO_COUNTRY,' ||
12721 'ASO_QUOTE_HEADERS_V.INVOICE_TO_CITY,' ||
12722 'ASO_QUOTE_HEADERS_V.INVOICE_TO_POSTAL_CODE,' ||
12723 'ASO_QUOTE_HEADERS_V.INVOICE_TO_STATE,' ||
12724 'ASO_QUOTE_HEADERS_V.INVOICE_TO_PROVINCE,' ||
12725 'ASO_QUOTE_HEADERS_V.INVOICE_TO_COUNTY,' ||
12726 'ASO_QUOTE_HEADERS_V.SHIPPING_INSTRUCTIONS,' ||
12727 'ASO_QUOTE_HEADERS_V.PACKING_INSTRUCTIONS,' ||
12728 'ASO_QUOTE_HEADERS_V.CONTRACT_ID,' ||
12729 'ASO_QUOTE_HEADERS_V.ATTRIBUTE_CATEGORY,' ||
12730 'ASO_QUOTE_HEADERS_V.ATTRIBUTE1,' ||
12731 'ASO_QUOTE_HEADERS_V.ATTRIBUTE2,' ||
12732 'ASO_QUOTE_HEADERS_V.ATTRIBUTE3,' ||
12733 'ASO_QUOTE_HEADERS_V.ATTRIBUTE4,' ||
12734 'ASO_QUOTE_HEADERS_V.ATTRIBUTE5,' ||
12735 'ASO_QUOTE_HEADERS_V.ATTRIBUTE6,' ||
12736 'ASO_QUOTE_HEADERS_V.ATTRIBUTE7,' ||
12737 'ASO_QUOTE_HEADERS_V.ATTRIBUTE8,' ||
12738 'ASO_QUOTE_HEADERS_V.ATTRIBUTE9,' ||
12739 'ASO_QUOTE_HEADERS_V.ATTRIBUTE10,' ||
12740 'ASO_QUOTE_HEADERS_V.ATTRIBUTE11,' ||
12741 'ASO_QUOTE_HEADERS_V.ATTRIBUTE12,' ||
12742 'ASO_QUOTE_HEADERS_V.ATTRIBUTE13,' ||
12743 'ASO_QUOTE_HEADERS_V.ATTRIBUTE14,' ||
12744 'ASO_QUOTE_HEADERS_V.ATTRIBUTE15,' ||
12745 'from ASO_QUOTE_HEADERS_V';
12746
12747 END Gen_Select;
12748
12749 PROCEDURE Gen_QTE_Where(
12750 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
12751 x_QTE_where OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12752 )
12753 IS
12754 -- cursors to check if wildcard values '%' and '_' have been passed
12755 -- as item values
12756 /*
12757 CURSOR c_chk_str1(p_rec_item VARCHAR2) IS
12758 SELECT INSTR(p_rec_item, '%', 1, 1)
12759 FROM DUAL;
12760 CURSOR c_chk_str2(p_rec_item VARCHAR2) IS
12761 SELECT INSTR(p_rec_item, '_', 1, 1)
12762 FROM DUAL;
12763 */
12764 -- return values from cursors
12765 str_csr1 NUMBER;
12766 str_csr2 NUMBER;
12767 l_operator VARCHAR2(10);
12768 BEGIN
12769
12770 -- There are three example for each kind of datatype:
12771 -- NUMBER, DATE, VARCHAR2.
12772 -- Developer can copy and paste the following codes for your own record.
12773
12774 -- example for NUMBER datatype
12775 IF( (P_Qte_Header_Rec.QUOTE_HEADER_ID IS NOT NULL) AND (P_Qte_Header_Rec.QUOTE_HEADER_ID <> FND_API.G_MISS_NUM) )
12776 THEN
12777 IF(x_QTE_where IS NULL) THEN
12778 x_QTE_where := 'Where';
12779 ELSE
12780 x_QTE_where := x_QTE_where || ' AND ';
12781 END IF;
12782 x_QTE_where := x_QTE_where || 'P_Qte_Header_Rec.QUOTE_HEADER_ID = :p_QUOTE_HEADER_ID';
12783 END IF;
12784
12785 -- example for DATE datatype
12786 IF( (P_Qte_Header_Rec.CREATION_DATE IS NOT NULL) AND (P_Qte_Header_Rec.CREATION_DATE <> FND_API.G_MISS_DATE) )
12787 THEN
12788 -- check if item value contains '%' wildcard
12789 /* OPEN c_chk_str1(P_Qte_Header_Rec.CREATION_DATE);
12790 FETCH c_chk_str1 INTO str_csr1;
12791 CLOSE c_chk_str1;
12792 */
12793 str_csr1 := INSTR(P_Qte_Header_Rec.CREATION_DATE, '%', 1, 1);
12794
12795 IF(str_csr1 <> 0) THEN
12796 l_operator := ' LIKE ';
12797 ELSE
12798 l_operator := ' = ';
12799 END IF;
12800
12801 -- check if item value contains '_' wildcard
12802 /*
12803 OPEN c_chk_str2(P_Qte_Header_Rec.CREATION_DATE);
12804 FETCH c_chk_str2 INTO str_csr2;
12805 CLOSE c_chk_str2;
12806 */
12807 str_csr2 := INSTR(P_Qte_Header_Rec.CREATION_DATE, '_', 1, 1);
12808
12809 IF(str_csr2 <> 0) THEN
12810 l_operator := ' LIKE ';
12811 ELSE
12812 l_operator := ' = ';
12813 END IF;
12814
12815 IF(x_QTE_where IS NULL) THEN
12816 x_QTE_where := 'Where ';
12817 ELSE
12818 x_QTE_where := x_QTE_where || ' AND ';
12819 END IF;
12820 x_QTE_where := x_QTE_where || 'P_Qte_Header_Rec.CREATION_DATE ' || l_operator || ' :p_CREATION_DATE';
12821 END IF;
12822
12823 -- example for VARCHAR2 datatype
12824 IF( (P_Qte_Header_Rec.QUOTE_NAME IS NOT NULL) AND (P_Qte_Header_Rec.QUOTE_NAME <> FND_API.G_MISS_CHAR) )
12825 THEN
12826 -- check if item value contains '%' wildcard
12827 /*
12828 OPEN c_chk_str1(P_Qte_Header_Rec.QUOTE_NAME);
12829 FETCH c_chk_str1 INTO str_csr1;
12830 CLOSE c_chk_str1;
12831 */
12832 str_csr1 := INSTR(P_Qte_Header_Rec.QUOTE_NAME, '%', 1, 1);
12833
12834 IF(str_csr1 <> 0) THEN
12835 l_operator := ' LIKE ';
12836 ELSE
12837 l_operator := ' = ';
12838 END IF;
12839
12840 -- check if item value contains '_' wildcard
12841 /*
12842 OPEN c_chk_str2(P_Qte_Header_Rec.QUOTE_NAME);
12843 FETCH c_chk_str2 INTO str_csr2;
12844 CLOSE c_chk_str2;
12845 */
12846 str_csr2 := INSTR(P_Qte_Header_Rec.QUOTE_NAME, '_', 1, 1);
12847
12848 IF(str_csr2 <> 0) THEN
12849 l_operator := ' LIKE ';
12850 ELSE
12851 l_operator := ' = ';
12852 END IF;
12853
12854 IF(x_QTE_where IS NULL) THEN
12855 x_QTE_where := 'Where ';
12856 ELSE
12857 x_QTE_where := x_QTE_where || ' AND ';
12858 END IF;
12859 x_QTE_where := x_QTE_where || 'P_Qte_Header_Rec.QUOTE_NAME ' || l_operator || ' :p_QUOTE_NAME';
12860 END IF;
12861
12862 -- Add more IF statements for each column below
12863
12864
12865 END Gen_QTE_Where;
12866
12867 PROCEDURE Get_quote(
12868 P_Api_Version_Number IN NUMBER,
12869 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
12870 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
12871 -- Hint: Add list of bind variables here
12872 p_rec_requested IN NUMBER := G_DEFAULT_NUM_REC_FETCH,
12873 p_start_rec_prt IN NUMBER := 1,
12874 p_return_tot_count IN NUMBER := FND_API.G_FALSE,
12875 -- Hint: user defined record type
12876 p_order_by_rec IN ASO_QUOTE_PUB.QTE_sort_rec_type,
12877 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12878 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
12879 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12880 X_Qte_Header_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Tbl_Type,
12881 x_returned_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
12882 x_next_rec_ptr OUT NOCOPY /* file.sql.39 change */ NUMBER,
12883 x_tot_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER)
12884 IS
12885 l_api_name CONSTANT VARCHAR2(30) := 'Get_quote';
12886 l_api_version_number CONSTANT NUMBER := 1.0;
12887
12888 -- Local record counters
12889 l_returned_rec_count NUMBER := 0; -- number of records returned in x_X_Qte_Header_Rec
12890 l_next_record_ptr NUMBER := 1;
12891 l_ignore NUMBER;
12892
12893 -- total number of records accessable by caller
12894 l_tot_rec_count NUMBER := 0;
12895 l_tot_rec_amount NUMBER := 0;
12896
12897 -- Status local variables
12898 l_return_status VARCHAR2(1); -- Return value from procedures
12899 l_return_status_full VARCHAR2(1); -- Calculated return status from
12900
12901 -- Dynamic SQL statement elements
12902 l_cur_get_qte NUMBER;
12903 l_select_cl VARCHAR2(2000) := '';
12904 l_order_by_cl VARCHAR2(2000);
12905 l_QTE_where VARCHAR2(2000) := '';
12906
12907 -- For flex field query
12908 l_flex_where_tbl_type ASO_UTILITY_PVT.flex_where_tbl_type;
12909 l_flex_where VARCHAR2(2000) := NULL;
12910 l_counter NUMBER;
12911
12912 -- Local scratch record
12913 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
12914 l_crit_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
12915 BEGIN
12916 -- Standard Start of API savepoint
12917 SAVEPOINT GET_QUOTE_PVT;
12918
12919 -- Standard call to check for call compatibility.
12920 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
12921 p_api_version_number,
12922 l_api_name,
12923 G_PKG_NAME)
12924 THEN
12925 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12926 END IF;
12927
12928
12929 -- Initialize message list if p_init_msg_list is set to TRUE.
12930 IF FND_API.to_Boolean( p_init_msg_list )
12931 THEN
12932 FND_MSG_PUB.initialize;
12933 END IF;
12934
12935
12936
12937
12938 -- Initialize API return status to SUCCESS
12939 x_return_status := FND_API.G_RET_STS_SUCCESS;
12940
12941 --
12942 -- Api body
12943 --
12944
12945 -- *************************************************
12946 -- Generate Dynamic SQL based on criteria passed in.
12947 -- Doing this for performance. Indexes are disabled when using NVL within static SQL statement.
12948 -- Ignore condition when criteria is NULL
12949 -- Generate Select clause and From clause
12950 -- Hint: Developer should modify Gen_Select procedure.
12951 Gen_Select(l_select_cl);
12952
12953 -- Hint: Developer should modify and implement Gen_Where precedure.
12954 Gen_QTE_Where(l_crit_qte_header_rec, l_QTE_where);
12955
12956 -- Generate Where clause for flex fields
12957 -- Hint: Developer can use table/view alias in the From clause generated in Gen_Select procedure
12958
12959 FOR l_counter IN 1..15 LOOP
12960 l_flex_where_tbl_type(l_counter).name := 'ASO_QUOTE_HEADERS_V.attribute' || l_counter;
12961 END LOOP;
12962
12963 l_flex_where_tbl_type(16).name := 'ASO_QUOTE_HEADERS_V.attribute_category';
12964 l_flex_where_tbl_type(1).value := P_Qte_Header_Rec.attribute1;
12965 l_flex_where_tbl_type(2).value := P_Qte_Header_Rec.attribute2;
12966 l_flex_where_tbl_type(3).value := P_Qte_Header_Rec.attribute3;
12967 l_flex_where_tbl_type(4).value := P_Qte_Header_Rec.attribute4;
12968 l_flex_where_tbl_type(5).value := P_Qte_Header_Rec.attribute5;
12969 l_flex_where_tbl_type(6).value := P_Qte_Header_Rec.attribute6;
12970 l_flex_where_tbl_type(7).value := P_Qte_Header_Rec.attribute7;
12971 l_flex_where_tbl_type(8).value := P_Qte_Header_Rec.attribute8;
12972 l_flex_where_tbl_type(9).value := P_Qte_Header_Rec.attribute9;
12973 l_flex_where_tbl_type(10).value := P_Qte_Header_Rec.attribute10;
12974 l_flex_where_tbl_type(11).value := P_Qte_Header_Rec.attribute11;
12975 l_flex_where_tbl_type(12).value := P_Qte_Header_Rec.attribute12;
12976 l_flex_where_tbl_type(13).value := P_Qte_Header_Rec.attribute13;
12977 l_flex_where_tbl_type(14).value := P_Qte_Header_Rec.attribute14;
12978 l_flex_where_tbl_type(15).value := P_Qte_Header_Rec.attribute15;
12979 l_flex_where_tbl_type(16).value := P_Qte_Header_Rec.attribute_category;
12980
12981 ASO_UTILITY_PVT.Gen_Flexfield_Where(
12982 p_flex_where_tbl_type => l_flex_where_tbl_type,
12983 x_flex_where_clause => l_flex_where);
12984
12985 -- Hint: if master/detail relationship, generate Where clause for lines level criteria
12986 -- Generate order by clause
12987 Gen_QTE_order_cl(p_order_by_rec, l_order_by_cl, l_return_status, x_msg_count, x_msg_data);
12988
12989
12990 l_cur_get_qte := dbms_sql.open_cursor;
12991
12992 -- Hint: concatenate all where clause (include flex field/line level if any applies)
12993 -- dbms_sql.parse(l_cur_get_QTE, l_select_cl || l_head_where || l_flex_where || l_lines_where
12994 -- || l_steam_where || l_order_by_cl, dbms_sql.native);
12995
12996 -- Hint: Developer should implement Bind Variables procedure according to bind variables in the parameter list
12997 -- Bind(l_crit_qte_header_rec, l_crit_exp_purchase_rec, p_start_date, p_end_date,
12998 -- p_crit_exp_salesforce_id, p_crit_ptr_salesforce_id,
12999 -- p_crit_salesgroup_id, p_crit_ptr_manager_person_id,
13000 -- p_win_prob_ceiling, p_win_prob_floor,
13001 -- p_total_amt_ceiling, p_total_amt_floor,
13002 -- l_cur_get_QTE);
13003
13004 -- Bind flexfield variables
13005 ASO_UTILITY_PVT.Bind_Flexfield_Where(
13006 p_cursor_id => l_cur_get_QTE,
13007 p_flex_where_tbl_type => l_flex_where_tbl_type);
13008
13009 -- Define all Select Columns
13010 Define_Columns(l_crit_qte_header_rec, l_cur_get_QTE);
13011
13012 -- Execute
13013
13014 l_ignore := dbms_sql.execute(l_cur_get_QTE);
13015
13016
13017 -- This loop is here to avoid calling a function in the main
13018 -- cursor. Basically, calling this function seems to disable
13019 -- index, but verification is needed. This is a good
13020 -- place to optimize the code if required.
13021
13022 LOOP
13023 -- 1. There are more rows in the cursor.
13024 -- 2. User does not care about total records, and we need to return more.
13025 -- 3. Or user cares about total number of records.
13026 IF((dbms_sql.fetch_rows(l_cur_get_QTE)>0) AND ((p_return_tot_count = FND_API.G_TRUE)
13027 OR (l_returned_rec_count<p_rec_requested) OR (p_rec_requested=FND_API.G_MISS_NUM)))
13028 THEN
13029
13030 -- Hint: Developer need to implement this part
13031 -- dbms_sql.column_value(l_cur_get_opp, 1, l_opp_rec.lead_id);
13032 -- dbms_sql.column_value(l_cur_get_opp, 7, l_opp_rec.customer_id);
13033 -- dbms_sql.column_value(l_cur_get_opp, 8, l_opp_rec.address_id);
13034
13035 -- Hint: Check access for this record (e.x. ASO_ACCESS_PVT.Haso_OpportunityAccess)
13036 -- Return this particular record if
13037 -- 1. The caller has access to record.
13038 -- 2. The number of records returned < number of records caller requested in this run.
13039 -- 3. The record comes AFTER or Equal to the start index the caller requested.
13040
13041 -- Developer should check whether there is access privilege here
13042 -- IF(l_qte_header_rec.member_access <> 'N' OR l_qte_header_rec.member_role <> 'N') THEN
13043 Get_Column_Values(l_cur_get_QTE, l_qte_header_rec);
13044 l_tot_rec_count := l_tot_rec_count + 1;
13045 IF(l_returned_rec_count < p_rec_requested) AND (l_tot_rec_count >= p_start_rec_prt) THEN
13046 l_returned_rec_count := l_returned_rec_count + 1;
13047 -- insert into resultant tables
13048 X_Qte_Header_Tbl(l_returned_rec_count) := l_qte_header_rec;
13049 END IF;
13050 -- END IF;
13051 ELSE
13052 EXIT;
13053 END IF;
13054 END LOOP;
13055 --
13056 -- End of API body
13057 --
13058
13059
13060
13061 -- Standard call to get message count and if count is 1, get message info.
13062 FND_MSG_PUB.Count_And_Get
13063 ( p_count => x_msg_count,
13064 p_data => x_msg_data
13065 );
13066
13067 EXCEPTION
13068 WHEN FND_API.G_EXC_ERROR THEN
13069 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
13070 P_API_NAME => L_API_NAME
13071 ,P_PKG_NAME => G_PKG_NAME
13072 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
13073 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
13074 ,X_MSG_COUNT => X_MSG_COUNT
13075 ,X_MSG_DATA => X_MSG_DATA
13076 ,X_RETURN_STATUS => X_RETURN_STATUS);
13077
13078 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
13079 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
13080 P_API_NAME => L_API_NAME
13081 ,P_PKG_NAME => G_PKG_NAME
13082 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
13083 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
13084 ,X_MSG_COUNT => X_MSG_COUNT
13085 ,X_MSG_DATA => X_MSG_DATA
13086 ,X_RETURN_STATUS => X_RETURN_STATUS);
13087
13088 WHEN OTHERS THEN
13089 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
13090 P_API_NAME => L_API_NAME
13091 ,P_PKG_NAME => G_PKG_NAME
13092 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
13093 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
13094 ,X_MSG_COUNT => X_MSG_COUNT
13095 ,X_MSG_DATA => X_MSG_DATA
13096 ,X_RETURN_STATUS => X_RETURN_STATUS);
13097 End Get_quote;
13098
13099 PROCEDURE Validate_Quote
13100 (
13101 P_Api_Version_Number IN NUMBER,
13102 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
13103 P_Qte_Header_Id IN NUMBER,
13104 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
13105 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
13106 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
13107 IS
13108 BEGIN
13109 null;
13110 END Validate_Quote;
13111
13112
13113 -- NAME
13114 -- Submit_Quote
13115 --
13116 -- PURPOSE
13117 -- Validate the quote and quote lines, where quote_id = p_quote_id.
13118 -- If validation is successful, insert the quote and quote lines
13119 -- to OE's interface tables. Submit a concurrent request to order
13120 -- the quote.
13121 --
13122
13123 PROCEDURE Submit_Quote
13124 (
13125 P_Api_Version_Number IN NUMBER,
13126 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
13127 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
13128 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
13129 p_control_rec IN ASO_QUOTE_PUB.SUBMIT_Control_Rec_Type
13130 := ASO_QUOTE_PUB.G_MISS_SUBMIT_CONTROL_REC,
13131 P_Qte_Header_Id IN NUMBER,
13132 X_Order_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Order_Header_Rec_Type,
13133 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
13134 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
13135 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
13136
13137 IS
13138
13139 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type
13140 := ASO_QUOTE_PUB.G_MISS_Qte_Header_Rec;
13141
13142 BEGIN
13143
13144 -- Calling New Submit_Quote API
13145
13146 l_qte_header_rec.quote_header_id := P_Qte_Header_Id;
13147
13148 ASO_SUBMIT_QUOTE_PVT.Submit_Quote(
13149 P_Api_Version_Number => 1.0,
13150 P_Init_Msg_List => p_init_msg_list,
13151 P_Commit => p_commit,
13152 P_validation_level => p_validation_level,
13153 P_Control_Rec => p_control_rec,
13154 P_Qte_Header_Rec => l_qte_header_rec,
13155 x_order_header_rec => x_Order_Header_Rec,
13156 X_Return_Status => x_return_status,
13157 X_Msg_Count => x_msg_count,
13158 X_Msg_Data => x_msg_data);
13159
13160
13161 END Submit_Quote;
13162
13163
13164 PROCEDURE config_copy(
13165 p_qte_line_id IN NUMBER,
13166 p_old_config_header_id IN NUMBER,
13167 p_old_config_revision_num IN NUMBER,
13168 p_config_header_id IN NUMBER,
13169 p_config_revision_num IN NUMBER,
13170 x_qte_header_id IN NUMBER,
13171 qte_header_id IN NUMBER,
13172 p_qte_line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
13173 P_control_rec IN ASO_QUOTE_PUB.control_rec_type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
13174 l_line_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type,
13175 l_price_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type,
13176 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
13177 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
13178 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
13179 )
13180 IS
13181
13182 CURSOR line_id_from_config IS
13183 SELECT ASO_Quote_Line_Details.QUOTE_LINE_ID
13184 FROM ASO_Quote_Line_Details, ASO_Quote_Lines_all
13185 WHERE ASO_Quote_Line_Details.config_header_id = p_old_config_header_id
13186 AND ASO_Quote_Line_Details.config_revision_num = p_old_config_revision_num
13187 AND ASO_quote_line_details.quote_line_id = ASO_Quote_Lines_all.quote_line_id
13188 AND ASO_Quote_Lines_all.item_type_code <> 'MDL'
13189 AND aso_quote_lines_all.quote_header_id = qte_header_id;
13190
13191 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
13192 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
13193 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
13194 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
13195 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
13196 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
13197 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
13198 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
13199 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
13200
13201 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
13202 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
13203 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
13204 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
13205 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
13206 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
13207 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
13208 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
13209 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
13210 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
13211 lx_ln_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
13212 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
13213 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
13214
13215 LX_PRICE_ADJ_RLTSHIP_ID NUMBER;
13216 LX_LINE_RELATIONSHIP_ID NUMBER;
13217
13218 X_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
13219 X_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
13220 X_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
13221 l_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
13222 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
13223 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
13224 l_quote_party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
13225 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
13226 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
13227 l_sales_credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
13228
13229 l_return_status varchar2(1);
13230 qte_line_id NUMBER;
13231 i NUMBER;
13232 j NUMBER;
13233 k NUMBER;
13234
13235 CURSOR C_Serviceable_Product(l_organization_id NUMBER, l_inv_item_id NUMBER) IS
13236 SELECT serviceable_product_flag FROM MTL_SYSTEM_ITEMS_VL
13237 WHERE inventory_item_id = l_inv_item_id
13238 AND organization_id = l_organization_id;
13239
13240 l_quote_line_id number;
13241 l_serviceable_product_flag VARCHAR2(1);
13242
13243 l_api_version CONSTANT NUMBER := 1.0;
13244
13245 BEGIN
13246
13247 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13248 aso_debug_pub.add('Copy_Config - Begin ', 1, 'Y');
13249 aso_debug_pub.add('Copy_Config - x_qte_header_id '||x_qte_header_id, 1, 'Y');
13250 aso_debug_pub.add('Copy_Config - qte_header_id '||qte_header_id, 1, 'Y');
13251 aso_debug_pub.add('Copy_Config - p_qte_line_id '|| p_qte_line_id, 1, 'Y');
13252 END IF;
13253
13254 OPEN line_id_from_config;
13255 LOOP
13256 FETCH line_id_from_config INTO qte_line_id;
13257 EXIT WHEN line_id_from_config%NOTFOUND;
13258
13259 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13260 aso_debug_pub.add('Copy_Config - inside cursor qte_line_id '|| qte_line_id, 1, 'Y');
13261 END IF;
13262 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row(qte_line_id);
13263
13264 l_qte_line_rec.quote_header_id := x_qte_header_id;
13265
13266 l_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(qte_line_id);
13267
13268 FOR k IN 1..l_qte_line_dtl_tbl.count LOOP
13269 l_qte_line_dtl_tbl(k).config_header_id := p_config_header_id;
13270 l_qte_line_dtl_tbl(k).config_revision_num := p_config_revision_num;
13271 END LOOP;
13272
13273
13274 l_line_attr_Ext_Tbl := ASO_UTILITY_PVT.Query_Line_Attribs_Ext_Rows(qte_line_id);
13275 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Rows(qte_header_id,qte_line_id);
13276
13277 FOR j IN 1..l_price_adj_tbl.count LOOP
13278 l_price_adj_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13279 END LOOP;
13280
13281 l_price_adj_attr_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows(p_price_adj_tbl => l_price_adj_tbl);
13282 l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows(qte_header_id, qte_line_id);
13283
13284 FOR j IN 1..l_price_attr_tbl.count LOOP
13285 l_price_attr_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13286 END LOOP;
13287
13288 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(qte_header_id, QTE_LINE_ID);
13289
13290 FOR j IN 1..l_payment_tbl.count LOOP
13291 l_payment_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13292 l_payment_tbl(j).CREDIT_CARD_APPROVAL_CODE := NULL;
13293 l_payment_tbl(j).CREDIT_CARD_APPROVAL_DATE := NULL;
13294 l_payment_tbl(j).PAYMENT_AMOUNT := NULL;
13295 END LOOP;
13296
13297 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(qte_header_id, QTE_LINE_ID);
13298 FOR j IN 1..l_shipment_tbl.count LOOP
13299 l_shipment_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13300 END LOOP;
13301
13302 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row(qte_header_id,QTE_LINE_ID);
13303 FOR j IN 1..l_sales_credit_tbl.count LOOP
13304 l_sales_credit_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13305 END LOOP;
13306
13307 l_quote_party_tbl := ASO_UTILITY_PVT.Query_Quote_Party_Row(qte_header_id,QTE_LINE_ID);
13308 FOR j IN 1..l_quote_party_tbl.count LOOP
13309 l_quote_party_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13310 END LOOP;
13311
13312 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows(l_shipment_tbl);
13313 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows(qte_header_id,QTE_LINE_ID, l_shipment_tbl);
13314
13315 OPEN C_Serviceable_Product(l_qte_line_rec.organization_id, l_qte_line_rec.inventory_item_id);
13316 FETCH C_Serviceable_Product INTO l_serviceable_product_flag;
13317 CLOSE C_Serviceable_Product;
13318 l_quote_line_id := l_qte_line_rec.quote_line_id;
13319 -- BC4J Fix
13320 --l_qte_line_rec.quote_line_id := null;
13321
13322 ASO_QUOTE_LINES_PVT.Insert_Quote_Line_Rows (
13323 p_control_rec => l_control_rec,
13324 P_qte_Line_Rec => l_qte_line_rec,
13325 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
13326 P_Line_Attribs_Ext_Tbl => l_line_attr_ext_tbl,
13327 P_price_attributes_tbl => l_price_attr_tbl,
13328 P_Price_Adj_Tbl => l_price_adj_tbl,
13329 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
13330 P_Payment_Tbl => l_payment_tbl,
13331 P_Shipment_Tbl => l_shipment_tbl,
13332 P_Freight_Charge_Tbl => l_freight_charge_tbl,
13333 P_Tax_Detail_Tbl => l_tax_detail_tbl,
13334 P_Sales_Credit_Tbl => l_sales_credit_tbl,
13335 P_Quote_Party_Tbl => l_quote_party_tbl,
13336 x_qte_Line_Rec => lx_qte_line_rec,
13337 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
13338 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
13339 x_price_attributes_tbl => l_price_attr_tbl_out,
13340 x_Price_Adj_Tbl => lx_ln_price_adj_tbl,
13341 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
13342 x_Payment_Tbl => l_payment_tbl_out,
13343 x_Shipment_Tbl => l_shipment_tbl_out,
13344 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
13345 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
13346 X_Sales_Credit_Tbl => l_sales_credit_tbl_out,
13347 X_Quote_Party_Tbl => l_quote_party_tbl_out,
13348 X_Return_Status => l_return_status,
13349 X_Msg_Count => x_msg_count,
13350 X_Msg_Data => x_msg_data);
13351
13352 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
13353 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
13354 l_price_attr_tbl := l_price_attr_tbl_out;
13355 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
13356 l_payment_tbl := l_payment_tbl_out;
13357 l_shipment_tbl := l_shipment_tbl_out;
13358 l_freight_charge_tbl := l_freight_charge_tbl_out;
13359 l_tax_detail_tbl := l_tax_detail_tbl_out;
13360 l_sales_credit_tbl := l_sales_credit_tbl_out;
13361 l_quote_party_tbl := l_quote_party_tbl_out;
13362
13363
13364 IF p_control_rec.copy_att_flag = 'Y' THEN
13365 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13366 aso_debug_pub.add('Copy_Rows - Begin- before config line copy_attch ', 1, 'Y');
13367 END IF;
13368
13369 ASO_ATTACHMENT_INT.Copy_Attachments(
13370 p_api_version => l_api_version,
13371 p_old_object_code => 'ASO_QUOTE_LINES_ALL',
13372 p_new_object_code => 'ASO_QUOTE_LINES_ALL',
13373 p_old_object_id => qte_line_id,
13374 p_new_object_id => lx_qte_line_rec.quote_line_id,
13375 x_return_status => x_return_status ,
13376 x_msg_count => x_msg_count,
13377 x_msg_data => x_msg_data
13378 );
13379
13380 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13381 aso_debug_pub.add('Copy_Rows -After config line copy_attch '||x_return_status, 1, 'Y');
13382 END IF;
13383
13384 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
13385 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
13386 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
13387 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
13388 FND_MESSAGE.Set_Token('ROW', 'ASO_COPYQUOTE_ AFTER_ATTACHMENTS', TRUE);
13389 FND_MSG_PUB.ADD;
13390 END IF;
13391 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13392 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
13393 x_return_status := FND_API.G_RET_STS_ERROR;
13394 RAISE FND_API.G_EXC_ERROR;
13395 END IF ;
13396 END IF;
13397
13398 FOR j IN 1..l_price_adj_tbl.count LOOP
13399 l_price_index_link_tbl(l_price_adj_tbl(j).price_adjustment_id) :=
13400 lx_ln_price_adj_tbl(j).price_adjustment_id;
13401 END LOOP;
13402 l_line_index_link_tbl(qte_line_id) := lx_qte_line_rec.quote_line_id;
13403
13404 -- CLOSE line_id_from_config;
13405 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13406 aso_debug_pub.add('Copy_Config - l_qte_line_tbl(i).item_type_code '|| l_qte_line_rec.item_type_code, 1, 'Y');
13407 aso_debug_pub.add('Copy - l_qte_line_tbl(i).inventory_item_id '|| l_qte_line_rec.inventory_item_id, 1, 'Y');
13408 aso_debug_pub.add('Copy - l_serviceable_product_flag '|| l_serviceable_product_flag, 1, 'Y');
13409 END IF;
13410 IF l_serviceable_product_flag = 'Y' THEN
13411 ASO_QUOTE_HEADERS_PVT.service_copy(
13412 p_qte_line_id => l_quote_line_id,
13413 p_control_rec => p_control_rec,
13414 x_qte_header_id => x_qte_header_id,
13415 qte_header_id => qte_header_id,
13416 p_qte_line_rec => l_qte_line_rec,
13417 l_line_index_link_tbl => l_line_index_link_tbl,
13418 l_price_index_link_tbl => l_price_index_link_tbl,
13419 X_Return_Status => l_return_status,
13420 X_Msg_Count => x_msg_count,
13421 X_Msg_Data => x_msg_data
13422 );
13423 END IF;
13424
13425 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
13426 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
13427 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
13428 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
13429 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
13430 FND_MSG_PUB.ADD;
13431 END IF;
13432 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13433 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
13434 x_return_status := FND_API.G_RET_STS_ERROR;
13435 END IF;
13436
13437 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
13438 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
13439 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
13440 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
13441 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
13442 FND_MSG_PUB.ADD;
13443 END IF;
13444
13445 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13446 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
13447 x_return_status := FND_API.G_RET_STS_ERROR;
13448 END IF;
13449
13450 END LOOP;
13451
13452 CLOSE line_id_from_config;
13453
13454 END config_copy;
13455
13456
13457 PROCEDURE service_copy(
13458 p_qte_line_id IN NUMBER,
13459 x_qte_header_id IN NUMBER,
13460 qte_header_id IN NUMBER,
13461 p_qte_line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
13462 P_control_rec IN ASO_QUOTE_PUB.control_rec_type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
13463 l_line_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type,
13464 l_price_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type,
13465 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
13466 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
13467 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
13468 )
13469 IS
13470
13471 CURSOR line_id_from_service IS
13472 SELECT related_quote_line_id
13473 FROM aso_line_relationships
13474 WHERE quote_line_id = p_qte_line_id
13475 AND relationship_type_code = 'SERVICE';
13476
13477 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
13478 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
13479 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
13480 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
13481 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
13482 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
13483 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
13484 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
13485 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
13486
13487 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
13488 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
13489 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
13490 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
13491 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
13492 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
13493 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
13494 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
13495 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
13496 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
13497 lx_ln_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
13498 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
13499 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
13500
13501 LX_PRICE_ADJ_RLTSHIP_ID NUMBER;
13502 LX_LINE_RELATIONSHIP_ID NUMBER;
13503
13504 X_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
13505 X_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
13506 X_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
13507 l_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
13508 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
13509 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
13510 l_quote_party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
13511 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
13512 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
13513 l_sales_credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
13514
13515 l_service_ref_line_id NUMBER;
13516
13517 l_return_status varchar2(1);
13518 qte_line_id NUMBER;
13519 i NUMBER;
13520 j NUMBER;
13521 k NUMBER;
13522 l_api_version CONSTANT NUMBER := 1.0;
13523
13524 BEGIN
13525 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13526 aso_debug_pub.add('Copy_Service - Begin ', 1, 'Y');
13527 aso_debug_pub.add('Copy_Service - x_qte_header_id '||x_qte_header_id, 1, 'Y');
13528 aso_debug_pub.add('Copy_Service - qte_header_id '||qte_header_id, 1, 'Y');
13529 aso_debug_pub.add('Copy_Service - p_qte_line_id '|| p_qte_line_id, 1, 'Y');
13530 END IF;
13531
13532 OPEN line_id_from_service;
13533 LOOP
13534 FETCH line_id_from_service INTO qte_line_id;
13535 EXIT WHEN line_id_from_service%NOTFOUND;
13536 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13537 aso_debug_pub.add('Copy_Service - inside cursor qte_line_id '|| qte_line_id, 1, 'Y');
13538 END IF;
13539 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row(qte_line_id);
13540
13541 l_qte_line_rec.quote_header_id := x_qte_header_id;
13542
13543 l_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(qte_line_id);
13544
13545
13546 IF l_qte_line_dtl_tbl.count > 0 THEN
13547 FOR k IN 1..l_qte_line_dtl_tbl.count LOOP
13548 IF l_qte_line_dtl_tbl(k).service_ref_type_code = 'QUOTE' THEN
13549 IF l_qte_line_dtl_tbl(k).service_ref_line_id is NOT NULL THEN
13550 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13551 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');
13552 END IF;
13553 l_service_ref_line_id :=
13554 l_line_index_link_tbl(l_qte_line_dtl_tbl(k).service_ref_line_id);
13555 l_qte_line_dtl_tbl(k).service_ref_line_id := l_service_ref_line_id;
13556 END IF;
13557 END IF;
13558 END LOOP;
13559 END IF;
13560 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13561 aso_debug_pub.add('Copy_Service - 2 l_service_ref_line_id '|| l_service_ref_line_id, 1, 'Y');
13562 END IF;
13563 /*
13564 FOR k IN 1..l_qte_line_dtl_tbl.count LOOP
13565 l_qte_line_dtl_tbl(k).config_header_id := p_config_header_id;
13566 l_qte_line_dtl_tbl(k).config_revision_num := p_config_revision_num;
13567 END LOOP;
13568 */
13569
13570 l_line_attr_Ext_Tbl := ASO_UTILITY_PVT.Query_Line_Attribs_Ext_Rows(qte_line_id);
13571 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Rows(qte_header_id,qte_line_id);
13572
13573 FOR j IN 1..l_price_adj_tbl.count LOOP
13574 l_price_adj_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13575 END LOOP;
13576
13577 l_price_adj_attr_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows(p_price_adj_tbl => l_price_adj_tbl);
13578 l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows(qte_header_id, qte_line_id);
13579
13580 FOR j IN 1..l_price_attr_tbl.count LOOP
13581 l_price_attr_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13582 END LOOP;
13583
13584 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(qte_header_id, QTE_LINE_ID);
13585
13586 FOR j IN 1..l_payment_tbl.count LOOP
13587 l_payment_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13588 l_payment_tbl(j).CREDIT_CARD_APPROVAL_CODE := NULL;
13589 l_payment_tbl(j).CREDIT_CARD_APPROVAL_DATE := NULL;
13590 l_payment_tbl(j).PAYMENT_AMOUNT := NULL;
13591 END LOOP;
13592
13593 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(qte_header_id, QTE_LINE_ID);
13594 FOR j IN 1..l_shipment_tbl.count LOOP
13595 l_shipment_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13596 END LOOP;
13597
13598 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row(qte_header_id,QTE_LINE_ID);
13599 FOR j IN 1..l_sales_credit_tbl.count LOOP
13600 l_sales_credit_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13601 END LOOP;
13602
13603 l_quote_party_tbl := ASO_UTILITY_PVT.Query_Quote_Party_Row(qte_header_id,QTE_LINE_ID);
13604 FOR j IN 1..l_quote_party_tbl.count LOOP
13605 l_quote_party_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
13606 END LOOP;
13607
13608 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows(l_shipment_tbl);
13609 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows(qte_header_id,QTE_LINE_ID, l_shipment_tbl);
13610 -- BC4J Fix
13611 --l_qte_line_rec.quote_line_id := null;
13612 ASO_QUOTE_LINES_PVT.Insert_Quote_Line_Rows (
13613 p_control_rec => l_control_rec,
13614 P_qte_Line_Rec => l_qte_line_rec,
13615 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
13616 P_Line_Attribs_Ext_Tbl => l_line_attr_ext_tbl,
13617 P_price_attributes_tbl => l_price_attr_tbl,
13618 P_Price_Adj_Tbl => l_price_adj_tbl,
13619 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
13620 P_Payment_Tbl => l_payment_tbl,
13621 P_Shipment_Tbl => l_shipment_tbl,
13622 P_Freight_Charge_Tbl => l_freight_charge_tbl,
13623 P_Tax_Detail_Tbl => l_tax_detail_tbl,
13624 P_Sales_Credit_Tbl => l_sales_credit_tbl,
13625 P_Quote_Party_Tbl => l_quote_party_tbl,
13626 x_qte_Line_Rec => lx_qte_line_rec,
13627 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
13628 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
13629 x_price_attributes_tbl => l_price_attr_tbl_out,
13630 x_Price_Adj_Tbl => lx_ln_price_adj_tbl,
13631 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
13632 x_Payment_Tbl => l_payment_tbl_out,
13633 x_Shipment_Tbl => l_shipment_tbl_out,
13634 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
13635 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
13636 X_Sales_Credit_Tbl => l_sales_credit_tbl_out,
13637 X_Quote_Party_Tbl => l_quote_party_tbl_out,
13638 X_Return_Status => l_return_status,
13639 X_Msg_Count => x_msg_count,
13640 X_Msg_Data => x_msg_data);
13641
13642
13643 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
13644 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
13645 l_price_attr_tbl := l_price_attr_tbl_out;
13646 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
13647 l_payment_tbl := l_payment_tbl_out;
13648 l_shipment_tbl := l_shipment_tbl_out;
13649 l_freight_charge_tbl := l_freight_charge_tbl_out;
13650 l_tax_detail_tbl := l_tax_detail_tbl_out;
13651 l_sales_credit_tbl := l_sales_credit_tbl_out;
13652 l_quote_party_tbl := l_quote_party_tbl_out;
13653
13654
13655 IF p_control_rec.copy_att_flag = 'Y' THEN
13656 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13657 aso_debug_pub.add('Copy_Rows - Begin- before config line copy_attch ', 1, 'Y');
13658 END IF;
13659
13660 ASO_ATTACHMENT_INT.Copy_Attachments(
13661 p_api_version => l_api_version,
13662 p_old_object_code => 'ASO_QUOTE_LINES_ALL',
13663 p_new_object_code => 'ASO_QUOTE_LINES_ALL',
13664 p_old_object_id => qte_line_id,
13665 p_new_object_id => lx_qte_line_rec.quote_line_id,
13666 x_return_status => x_return_status ,
13667 x_msg_count => x_msg_count,
13668 x_msg_data => x_msg_data
13669 );
13670
13671 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13672 aso_debug_pub.add('Copy_Rows -After config line copy_attch '||x_return_status, 1, 'Y');
13673 END IF;
13674
13675 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
13676 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
13677 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
13678 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
13679 FND_MESSAGE.Set_Token('ROW', 'ASO_COPYQUOTE_ AFTER_ATTACHMENTS', TRUE);
13680 FND_MSG_PUB.ADD;
13681 END IF;
13682 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13683 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
13684 x_return_status := FND_API.G_RET_STS_ERROR;
13685 RAISE FND_API.G_EXC_ERROR;
13686 END IF ;
13687 END IF;
13688
13689 FOR j IN 1..l_price_adj_tbl.count LOOP
13690 l_price_index_link_tbl(l_price_adj_tbl(j).price_adjustment_id) :=
13691 lx_ln_price_adj_tbl(j).price_adjustment_id;
13692 END LOOP;
13693 l_line_index_link_tbl(qte_line_id) := lx_qte_line_rec.quote_line_id;
13694
13695 -- CLOSE line_id_from_config;
13696
13697 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
13698 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
13699 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
13700 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
13701 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
13702 FND_MSG_PUB.ADD;
13703 END IF;
13704
13705 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13706 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
13707 x_return_status := FND_API.G_RET_STS_ERROR;
13708 END IF;
13709
13710
13711 END LOOP;
13712
13713 CLOSE line_id_from_service;
13714
13715 END service_copy;
13716
13717 PROCEDURE Quote_Security_Check(
13718 P_Api_Version_Number IN NUMBER,
13719 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
13720 P_User_Id IN NUMBER,
13721 X_Resource_Id OUT NOCOPY /* file.sql.39 change */ NUMBER,
13722 X_Security_Flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
13723 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
13724 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
13725 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
13726 )
13727 IS
13728
13729 l_role_type VARCHAR2(240) := NULL;
13730 l_mgr_flag VARCHAR2(1) := NULL;
13731 l_api_name CONSTANT VARCHAR2(30) := 'QUOTE_SECURITY_CHECK';
13732 l_api_version_number CONSTANT NUMBER := 1.0;
13733
13734 Cursor C_salesrep (X_User_Id NUMBER) IS
13735 SELECT j.resource_id
13736 /* FROM jtf_rs_srp_vl srp, jtf_rs_resource_extns j */ --Commented Code Yogeshwar (MOAC)
13737 FROM jtf_rs_salesreps_mo_v srp, jtf_rs_resource_extns j --New Code Yogeshwar (MOAC)
13738 WHERE j.user_id = X_User_Id
13739 AND j.resource_id = srp.resource_id
13740 AND srp.status = 'A'
13741 AND nvl(trunc(srp.start_date_active), trunc(sysdate)) <= trunc(sysdate)
13742 AND nvl(trunc(srp.end_date_active), trunc(sysdate)) >= trunc(sysdate);
13743 /* --Commented Code Start Yogeshwar (MOAC)
13744 AND NVL(srp.org_id,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1),' ',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99);
13745 */ --Commented Code End yogeshwar (MOAC)
13746
13747
13748 Cursor C_role (X_Resource_Id NUMBER, X_Profile_Role_Type VARCHAR2) IS
13749 SELECT role.role_type_code, role.manager_flag
13750 FROM JTF_RS_DEFRESROLES_VL role, JTF_RS_DEFRESOURCES_VL res
13751 WHERE role.role_resource_id = res.resource_id
13752 AND res.resource_id = X_resource_id
13753 AND nvl(trunc(role.res_rl_start_date), trunc(sysdate)) <= trunc(sysdate)
13754 AND nvl(trunc(role.res_rl_end_date), trunc(sysdate)) >= trunc(sysdate)
13755 AND role.ROLE_TYPE_CODE = X_profile_role_type
13756 AND role.delete_flag = 'N';
13757
13758 BEGIN
13759
13760 -- Standard call to check for call compatibility.
13761 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
13762 p_api_version_number,
13763 l_api_name,
13764 G_PKG_NAME)
13765 THEN
13766 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
13767 END IF;
13768
13769 -- Initialize message list if p_init_msg_list is set to TRUE.
13770 IF FND_API.to_Boolean( p_init_msg_list )
13771 THEN
13772 FND_MSG_PUB.initialize;
13773 END IF;
13774
13775
13776 -- Initialize API return status to SUCCESS
13777 x_return_status := FND_API.G_RET_STS_SUCCESS;
13778
13779 X_Resource_Id := NULL;
13780 X_Security_Flag := 'N';
13781
13782 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13783 aso_debug_pub.add('Quote_Security_Check(): before main logic', 1, 'Y');
13784 END IF;
13785
13786 FOR c_sv IN C_salesrep(p_user_id) LOOP
13787 X_Resource_Id := c_sv.resource_id;
13788 IF X_Resource_Id IS NOT NULL THEN
13789 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13790 aso_debug_pub.add('Quote_Security_Check(): Resource_Id IS NOT NULL', 1, 'Y');
13791 END IF;
13792 IF (FND_PROFILE.Value('ASO_ROLE_TYPE')) IS NOT NULL THEN
13793 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13794 aso_debug_pub.add('Quote_Security_Check(): ASO_ROLE_TYPE NOT NULL', 1, 'Y');
13795 END IF;
13796 FOR c_r IN C_role(X_Resource_Id, FND_PROFILE.Value('ASO_ROLE_TYPE')) LOOP
13797 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13798 aso_debug_pub.add('Quote_Security_Check(): C_Role FOUND', 1, 'Y');
13799 END IF;
13800 l_mgr_flag := c_r.manager_flag;
13801 IF l_mgr_flag ='Y' THEN
13802 X_Security_Flag := 'Y';
13803 END IF;
13804 END LOOP;
13805 IF l_mgr_flag IS NULL THEN
13806 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13807 aso_debug_pub.add('Quote_Security_Check(): C_Role NOTFOUND', 1, 'Y');
13808 END IF;
13809 X_Security_Flag := 'Y';
13810 END IF;
13811 ELSE
13812 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13813 aso_debug_pub.add('Quote_Security_Check(): ASO_ROLE_TYPE IS NULL', 1, 'Y');
13814 END IF;
13815 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
13816 FND_MESSAGE.set_name('ASO','ASO_ERR_ROLE_TYPE_NULL');
13817 FND_MSG_PUB.ADD;
13818 x_return_status := FND_API.G_RET_STS_ERROR;
13819 END IF;
13820 END IF;
13821 END IF;
13822 END LOOP;
13823
13824 IF aso_debug_pub.g_debug_flag = 'Y' THEN
13825 aso_debug_pub.add('Quote_Security_Check(): after main logic', 1, 'Y');
13826 aso_debug_pub.add('Quote_Security_Check(): End: Resource_Id: '||X_Resource_Id, 1, 'Y');
13827 aso_debug_pub.add('Quote_Security_Check(): End: Security_Flag: '||X_Security_Flag, 1, 'Y');
13828 END IF;
13829
13830
13831 -- Standard call to get message count and if count is 1, get message info.
13832 FND_MSG_PUB.Count_And_Get
13833 ( p_count => x_msg_count,
13834 p_data => x_msg_data
13835 );
13836
13837 End Quote_Security_Check;
13838
13839
13840 End ASO_QUOTE_HEADERS_PVT;