[Home] [Help]
PACKAGE BODY: APPS.ASO_QUOTE_HEADERS_PVT
Source
1 PACKAGE BODY ASO_QUOTE_HEADERS_PVT as
2 /* $Header: asovqhdb.pls 120.45 2006/06/13 21:37:46 skulkarn 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
152 )
153 ) OR (
154 p_database_object_name = 'ASO_AK_STORE_CART_HEADER_V'
155 AND (
156 p_shipment_rec.SHIP_TO_PARTY_SITE_ID IS NOT NULL OR
157 p_shipment_rec.SHIP_TO_PARTY_ID IS NOT NULL OR
158 p_shipment_rec.SHIP_TO_CUST_PARTY_ID IS NOT NULL OR
159 p_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID IS NOT NULL OR
160 p_shipment_rec.REQUEST_DATE_TYPE IS NOT NULL OR
161 p_shipment_rec.REQUEST_DATE IS NOT NULL OR
162 p_shipment_rec.SHIP_METHOD_CODE IS NOT NULL OR
163 p_shipment_rec.SHIPMENT_PRIORITY_CODE IS NOT NULL OR
164 p_shipment_rec.FREIGHT_TERMS_CODE IS NOT NULL OR
165 p_shipment_rec.FOB_CODE IS NOT NULL OR
166 p_shipment_rec.SHIPPING_INSTRUCTIONS IS NOT NULL OR
167 p_shipment_rec.PACKING_INSTRUCTIONS IS NOT NULL OR
168 p_shipment_rec.DEMAND_CLASS_CODE IS NOT NULL
169 )
170 ) OR (
171 p_database_object_name = 'ASO_AK_STORE_CART_LINES_V'
172 AND (
173 p_shipment_rec.SHIP_TO_PARTY_SITE_ID IS NOT NULL OR
174 p_shipment_rec.SHIP_TO_PARTY_ID IS NOT NULL OR
175 p_shipment_rec.SHIP_TO_CUST_PARTY_ID IS NOT NULL OR
176 p_shipment_rec.SHIP_TO_CUST_ACCOUNT_ID IS NOT NULL OR
177 p_shipment_rec.REQUEST_DATE IS NOT NULL OR
178 p_shipment_rec.SHIP_METHOD_CODE IS NOT NULL OR
179 p_shipment_rec.SHIPMENT_PRIORITY_CODE IS NOT NULL OR
180 p_shipment_rec.FREIGHT_TERMS_CODE IS NOT NULL OR
181 p_shipment_rec.FOB_CODE IS NOT NULL OR
182 p_shipment_rec.SHIPPING_INSTRUCTIONS IS NOT NULL OR
183 p_shipment_rec.PACKING_INSTRUCTIONS IS NOT NULL OR
184 p_shipment_rec.DEMAND_CLASS_CODE IS NOT NULL
185 )
186 )
187
188 ) THEN
189
190 IF aso_debug_pub.g_debug_flag = 'Y' THEN
191 aso_debug_pub.add('Defaulting Engine returns values in shipment_rec.');
192 END IF;
193
194 return TRUE;
195
196 ELSE
197
198 IF aso_debug_pub.g_debug_flag = 'Y' THEN
199 aso_debug_pub.add('Defaulting Engine doesn''t default any attribute in shipment_rec.');
200 END IF;
201
202 return FALSE;
203
204 END IF;
205
206 END Shipment_Null_Rec_Exists;
207
208
209 FUNCTION Payment_NULL_Rec_Exists(
210 p_payment_rec IN ASO_QUOTE_PUB.Payment_Rec_Type,
211 p_database_object_name IN VARCHAR2
212 ) RETURN BOOLEAN
213 IS
214
215 BEGIN
216 IF aso_debug_pub.g_debug_flag = 'Y' THEN
217 aso_debug_pub.add('Begin Payment_Rec_Exists function.', 1, 'Y');
218 END IF;
219
220 IF (
221 (
222 p_database_object_name = 'ASO_AK_QUOTE_HEADER_V'
223 AND (
224 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
225 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
226 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
227 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
228 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
229 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
230 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
231 )
232 ) OR (
233 p_database_object_name = 'ASO_AK_QUOTE_OPPTY_V'
234 AND (
235 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
236 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
237 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
238 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
239 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
240 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
241 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
242 )
243 ) OR (
244 p_database_object_name = 'ASO_AK_QUOTE_LINE_V'
245 AND (
246 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
247 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
248 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
249 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
250 p_payment_rec.CUST_PO_LINE_NUMBER IS NOT NULL OR
251 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
252 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
253 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
254 )
255 ) OR (
256 p_database_object_name = 'ASO_AK_STORE_CART_HEADER_V'
257 AND (
258 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
259 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
260 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
261 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
262 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
263 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
264 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
265 )
266 ) OR (
267 p_database_object_name = 'ASO_AK_STORE_CART_LINES_V'
268 AND (
269 p_payment_rec.CREDIT_CARD_CODE IS NOT NULL OR
270 p_payment_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL OR
271 p_payment_rec.CREDIT_CARD_HOLDER_NAME IS NOT NULL OR
272 p_payment_rec.CUST_PO_NUMBER IS NOT NULL OR
273 p_payment_rec.CUST_PO_LINE_NUMBER IS NOT NULL OR
274 p_payment_rec.PAYMENT_REF_NUMBER IS NOT NULL OR
275 p_payment_rec.PAYMENT_TERM_ID IS NOT NULL OR
276 p_payment_rec.PAYMENT_TYPE_CODE IS NOT NULL
277 )
278 )
279 ) THEN
280
281 IF aso_debug_pub.g_debug_flag = 'Y' THEN
282 aso_debug_pub.add('Defaulting Engine returns values in payment_rec.');
283 END IF;
284
285 return TRUE;
286
287 ELSE
288
289 IF aso_debug_pub.g_debug_flag = 'Y' THEN
290 aso_debug_pub.add('Defaulting Engine doesn''t default any attribute in payment_rec.');
291 END IF;
292
293 RETURN FALSE;
294
295 END IF;
296
297 END Payment_NULL_Rec_Exists;
298
299
300 FUNCTION Tax_Detail_Null_Rec_Exists(
301 p_tax_detail_rec IN ASO_QUOTE_PUB.Tax_Detail_Rec_Type,
302 p_database_object_name IN VARCHAR2
303 ) RETURN BOOLEAN
304 IS
305
306 BEGIN
307 IF aso_debug_pub.g_debug_flag = 'Y' THEN
308 aso_debug_pub.add('Begin Tax_Detail_Null_Rec_Exists function.', 1, 'Y');
309 END IF;
310
311 IF aso_debug_pub.g_debug_flag = 'Y' THEN
312 aso_debug_pub.add('Defaulting Engine doesn''t default any attribute in tax_detail_rec.');
313 END IF;
314
315 RETURN FALSE;
316
317 END Tax_Detail_Null_Rec_Exists;
318
319 -- hyang defaulting framework end
320
321
322 PROCEDURE Populate_Qte_Header (
323 p_qte_header_rec IN ASO_QUOTE_PUB.qte_header_rec_Type,
324 p_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type,
325 x_qte_header_rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.qte_header_rec_Type
326 )
327 IS
328
329 l_valid_org_id number; --New variable to store org_id Yogeshwar (MOAC)
330
331 CURSOR C_Qte_Number IS
332 SELECT ASO_QUOTE_NUMBER_S.nextval
333 FROM dual;
334
335 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
336 SELECT quote_version
337 FROM ASO_QUOTE_HEADERS_ALL
338 WHERE quote_number = X_qte_number;
339
340 CURSOR C_Qte_Status_Id (c_status_code VARCHAR2) IS
341 SELECT quote_status_id
342 FROM ASO_QUOTE_STATUSES_VL
343 WHERE status_code = c_status_code;
344
345 CURSOR c_price_list (c_order_type_id NUMBEr) IS
346 SELECT price_list_id
347 FROM OE_ORDER_TYPES_V
348 WHERE order_type_id = c_order_type_id;
349
350 CURSOR c_currency_code (c_price_list_id NUMBER) IS
351 SELECT currency_code
352 FROM qp_price_lists_v
353 WHERE price_list_id = c_price_list_id;
354
355
356 CURSOR c_resource IS
357 SELECT resource_id FROM JTF_RS_SRP_VL
358 WHERE person_id = p_qte_header_rec.employee_person_id;
359
360 -- Change START
361 -- Release 12 MOAC Changes : Bug 4500739
362 -- Changes Done by : Girish
363 -- Comments : Using HR EIT in place of org striped profile
364
365 --l_order_type_id NUMBER := to_number(fnd_profile.value('ASO_ORDER_TYPE_ID'));
366 l_order_type_id NUMBER := to_number(ASO_UTILITY_PVT.GET_OU_ATTRIBUTE_VALUE(ASO_UTILITY_PVT.G_DEFAULT_ORDER_TYPE));
367
368 -- Change END
369
370 l_price_list_id NUMBER;
371 l_currency_code VARCHAR2(15);
372 l_resource_id NUMBER;
373 l_default_status_profile VARCHAR2(30);
374
375 l_defaulting_fwk_flag VARCHAR2(1) := p_control_rec.defaulting_fwk_flag;
376
377 x_return_status VARCHAR2(1);
378 l_org_id NUMBER; --Yogeshwar (MOAC)
379
380 BEGIN
381
382 IF aso_debug_pub.g_debug_flag = 'Y' THEN
383 aso_debug_pub.add('Begin Populate_Qte_Header procedure', 1, 'Y');
384 aso_debug_pub.add('Defaulting Framework Flag - '||l_defaulting_fwk_flag, 1, 'Y');
385 END IF;
386
387
388 x_qte_header_rec := p_qte_header_rec;
389
390 IF aso_debug_pub.g_debug_flag = 'Y' THEN
391 aso_debug_pub.add('Populate_Qte_Header: x_qte_header_rec.quote_number: '||x_qte_header_rec.quote_number, 1, 'N');
392 END IF;
393
394 IF (x_qte_header_rec.quote_number IS NULL OR
395 x_qte_header_rec.quote_number = FND_API.G_MISS_NUM) THEN
396
397 IF nvl( FND_PROFILE.Value('ASO_AUTO_NUMBERING'), 'Y') = 'Y' THEN
398
399 IF aso_debug_pub.g_debug_flag = 'Y' THEN
400 aso_debug_pub.add('Populate_Qte_Header: Inside IF cond ASO_AUTO_NUMBERING = Y', 1, 'N');
401 END IF;
402
403 OPEN C_Qte_Number;
404 FETCH C_Qte_Number INTO x_qte_header_rec.quote_number;
405 CLOSE C_Qte_Number;
406
407 x_qte_header_rec.quote_version := 1;
408
409 IF aso_debug_pub.g_debug_flag = 'Y' THEN
410 aso_debug_pub.add('x_qte_header_rec.quote_number : '||x_qte_header_rec.quote_number);
411 aso_debug_pub.add('x_qte_header_rec.quote_version: '||x_qte_header_rec.quote_version);
412 END IF;
413
414 ELSIF x_qte_header_rec.quote_type = 'T' then
415
416 IF aso_debug_pub.g_debug_flag = 'Y' THEN
417 aso_debug_pub.add('Populate_Qte_Header: ELSIF cond quote_type = T');
418 END IF;
419
420 OPEN C_Qte_Number;
421 FETCH C_Qte_Number INTO x_qte_header_rec.quote_number;
422 CLOSE C_Qte_Number;
423
424 x_qte_header_rec.quote_version := 1;
425
426 IF aso_debug_pub.g_debug_flag = 'Y' THEN
427 aso_debug_pub.add('x_qte_header_rec.quote_number : '||x_qte_header_rec.quote_number);
428 aso_debug_pub.add('x_qte_header_rec.quote_version: '||x_qte_header_rec.quote_version);
429 END IF;
430
431 ELSE
432
433 IF aso_debug_pub.g_debug_flag = 'Y' THEN
434 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');
435
436 END IF;
437
438 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
439 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
440 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_NUMBER', FALSE);
441 FND_MSG_PUB.ADD;
442 END IF;
443
444 RAISE FND_API.G_EXC_ERROR;
445
446 END IF;
447
448 ELSE
449
450 IF aso_debug_pub.g_debug_flag = 'Y' THEN
451 aso_debug_pub.add('Populate_Qte_Header: Inside ELSE cond quote_number is not null and not G_MISS_NUM',1, 'N');
452 END IF;
453
454 OPEN C_Qte_Version(x_qte_header_rec.quote_number);
455 FETCH C_Qte_Version into x_qte_header_rec.quote_version;
456
457 --Changed for Bug # 2365955
458 --IF x_qte_header_rec.quote_version IS NOT NULL AND x_qte_header_rec.quote_version <> FND_API.G_MISS_NUM THEN
459
460 IF C_Qte_Version%FOUND THEN
461
462 IF aso_debug_pub.g_debug_flag = 'Y' THEN
463 aso_debug_pub.add('Inside else: C_Qte_Version%FOUND', 1, 'N');
464 END IF;
465
466 CLOSE C_Qte_Version;
467
468 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
469 FND_MESSAGE.Set_Name('ASO', 'ASO_API_DUPLICATE_QTE_NUM');
470 FND_MESSAGE.Set_Token('QTE_NUM', x_qte_header_rec.quote_number, FALSE);
471 FND_MSG_PUB.ADD;
472 END IF;
473 RAISE FND_API.G_EXC_ERROR;
474 ELSE
475 IF aso_debug_pub.g_debug_flag = 'Y' THEN
476 aso_debug_pub.add('Inside else: C_Qte_Version%NOTFOUND', 1, 'N');
477 END IF;
478 x_qte_header_rec.quote_version := 1;
479 CLOSE C_Qte_Version;
480 END IF;
481 -- x_qte_header_rec.quote_version := nvl(x_qte_header_rec.quote_version, 0) + 1;
482 END IF;
483
484 IF aso_debug_pub.g_debug_flag = 'Y' THEN
485 aso_debug_pub.add('Populate_Qte_Header: x_qte_header_rec.quote_number : '||x_qte_header_rec.quote_number, 1, 'N');
486 aso_debug_pub.add('Populate_Qte_Header: x_qte_header_rec.quote_version: '||x_qte_header_rec.quote_version,1, 'N');
487 END IF;
488
489 IF (x_qte_header_rec.quote_status_id IS NULL OR
490 x_qte_header_rec.quote_status_id = FND_API.G_MISS_NUM) THEN
491 --OPEN c_qte_status_id ('DRAFT');
492 -- hyang 2269617
493 l_default_status_profile := fnd_profile.value( 'ASO_DEFAULT_STATUS_CODE');
494 IF aso_debug_pub.g_debug_flag = 'Y' THEN
495 aso_debug_pub.add('Populate_Qte_Header: Profile ASO_DEFAULT_STATUS_CODE is ' || l_default_status_profile, 1, 'Y');
496 END IF;
497 OPEN c_qte_status_id ( l_default_status_profile );
498 FETCH c_qte_status_id INTO x_qte_header_rec.quote_status_id;
499 CLOSE c_qte_status_id;
500 END IF;
501
502 IF (l_defaulting_fwk_flag = 'N')
503 THEN
504
505 --Commented Code Yogeshwar (MOAC)
506 /* IF (x_qte_header_rec.org_id IS NULL OR
507 x_qte_header_rec.org_id = FND_API.G_MISS_NUM) THEN
508 IF SUBSTRB(USERENV('CLIENT_INFO'),1,1) <> ' ' THEN
509 x_qte_header_rec.org_id := TO_NUMBER(SUBSTRB(USERENV('CLIENT_INFO'),1,10));
510 END IF;
511 END IF;
512 */
513 --Commented Code End Yogeshwar (MOAC)
514
515 --New Code Start Yogeshwar (MOAC)
516 If x_qte_header_rec.org_id IS NULL THEN
517 l_org_id := FND_API.G_MISS_NUM;
518 Else
519 l_org_id := x_qte_header_rec.org_id;
520 End if;
521 l_valid_org_id:= MO_GLOBAL.get_valid_org(l_org_id);
522 if l_valid_org_id is NULL then
523 x_return_status := FND_API.G_RET_STS_ERROR;
524 RAISE FND_API.G_EXC_ERROR;
525 else
526 x_qte_header_rec.org_id := l_valid_org_id;
527 End if;
528 --New Code End Yogeshwar (MOAC)
529
530 IF aso_debug_pub.g_debug_flag = 'Y' THEN
531 aso_debug_pub.add('Before OM Defaulting - Populate Qte header', 1, 'N');
532 aso_debug_pub.add('Before OM Defaulting Value of ASO_OM_DEFAULTING '||FND_PROFILE.Value('ASO_OM_DEFAULTING'), 1, 'N');
533 END IF;
534 -- IF (NVL(FND_PROFILE.Value('ASO_OM_DEFAULTING'), 'N') = 'N') THEN
535 IF (x_qte_header_rec.order_type_id IS NULL OR
536 x_qte_header_rec.order_type_id = FND_API.G_MISS_NUM) THEN
537 x_qte_header_rec.order_type_id := l_order_type_id;
538 END IF;
539 --END IF;
540
541 -- New code for Bug # 2317961
542
543 IF aso_debug_pub.g_debug_flag = 'Y' THEN
544 aso_debug_pub.add('Populate_qte_header: order_type_id: ||x_qte_header_rec.order_type_id ',1,'N');
545 aso_debug_pub.add('Populate_qte_header: price_list_id: ||x_qte_header_rec.price_list_id ',1,'N');
546 END IF;
547
548 IF x_qte_header_rec.price_list_id = FND_API.G_MISS_NUM THEN
549
550 OPEN c_price_list(x_qte_header_rec.order_type_id);
551 FETCH c_price_list INTO x_qte_header_rec.price_list_id;
552 CLOSE c_price_list;
553
554 IF aso_debug_pub.g_debug_flag = 'Y' THEN
555 aso_debug_pub.add('Populate_qte_header: After c_price_list cursor: price_list_id: ||x_qte_header_rec.price_list_id ',1,'N');
556 END IF;
557
558 ELSIF (x_qte_header_rec.price_list_id IS NULL) AND
559 (x_qte_header_rec.currency_code IS NULL OR
560 x_qte_header_rec.currency_code = FND_API.G_MISS_CHAR) THEN
561
562 IF aso_debug_pub.g_debug_flag = 'Y' THEN
563 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');
564 END IF;
565
566 FND_MESSAGE.Set_Name('ASO', 'ASO_PRICE_LIST_CURRENCY_CODE');
567 FND_MSG_PUB.ADD;
568 RAISE FND_API.G_EXC_ERROR;
569
570 END IF;
571
572 -- End new code for Bug # 2317961
573
574 IF aso_debug_pub.g_debug_flag = 'Y' THEN
575 aso_debug_pub.add('After price_list_id - Populate Qte header', 1, 'N');
576 END IF;
577
578 IF (x_qte_header_rec.currency_code IS NULL OR
579 x_qte_header_rec.currency_code = FND_API.G_MISS_CHAR) THEN
580 OPEN c_currency_code(x_qte_header_rec.price_list_id);
581 FETCH c_currency_code INTO x_qte_header_rec.currency_code;
582 CLOSE c_currency_code;
583 END IF;
584
585 IF (--x_qte_header_rec.quote_expiration_date IS NULL OR
586 x_qte_header_rec.quote_expiration_date = FND_API.G_MISS_DATE) THEN
587 x_qte_header_rec.quote_expiration_date := sysdate +
588 NVL(FND_PROFILE.value('ASO_QUOTE_DURATION'), G_QUOTE_DURATION);
589 END IF;
590
591 IF (x_qte_header_rec.resource_id IS NULL OR
592 x_qte_header_rec.resource_id = FND_API.G_MISS_NUM)
593 AND (x_qte_header_rec.EMPLOYEE_PERSON_ID IS NOT NULL AND
594 x_qte_header_rec.EMPLOYEE_PERSON_ID <> FND_API.G_MISS_NUM) THEN
595
596 OPEN c_resource;
597 FETCH c_resource INTO l_resource_id;
598 IF c_resource%NOTFOUND OR l_resource_id IS NULL OR l_resource_id= FND_API.G_MISS_NUM THEN
599 CLOSE c_resource;
600 x_return_status := FND_API.G_RET_STS_ERROR;
601 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
602 FND_MESSAGE.Set_Token('COLUMN', 'RESOURCE ID', FALSE);
603 FND_MSG_PUB.ADD;
604 RAISE FND_API.G_EXC_ERROR;
605 END IF;
606
607 CLOSE c_resource;
608 x_qte_header_rec.resource_id := l_resource_id;
609 IF aso_debug_pub.g_debug_flag = 'Y' THEN
610 aso_debug_pub.add('Inside Populate Qte header resource Id'||l_resource_id, 1, 'N');
611 END IF;
612
613 END IF;
614
615 END IF; -- defaulting_fwk_flag
616
617
618 IF x_qte_header_rec.max_version_flag is NULL OR x_qte_header_rec.max_version_flag = FND_API.G_MISS_CHAR THEN
619 x_qte_header_rec.max_version_flag := 'Y';
620 END IF;
621
622 IF aso_debug_pub.g_debug_flag = 'Y' THEN
623 aso_debug_pub.add('Inside Populate Qte header x_qte_header_rec.max_version_flag'||x_qte_header_rec.max_version_flag,1,'N');
624 aso_debug_pub.add('End Populate Qte header', 1, 'Y');
625 END IF;
626
627 END Populate_Qte_Header;
628
629 PROCEDURE Insert_Rows (
630 P_qte_Header_Rec IN ASO_QUOTE_PUB.qte_header_rec_Type,
631 p_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
632 P_Price_Adjustment_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
633 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
634 P_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type,
635 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type,
636 P_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
637 P_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
638 P_hd_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
639 P_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
640 P_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
641 P_Qte_Access_Tbl IN ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
642 X_qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.qte_header_rec_Type,
643 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
644 X_Price_Adjustment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
645 x_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
646 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
647 X_Shipment_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Rec_Type,
648 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
649 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
650 X_hd_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
651 X_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
652 X_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
653 X_Qte_Access_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
654 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
655 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
656 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
657 )
658 IS
659 l_price_adj_rec ASO_QUOTE_PUB.Price_Adj_Rec_Type;
660 l_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
661 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
662 l_freight_charge_rec ASO_QUOTE_PUB.Freight_Charge_Rec_Type;
663 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
664 lx_qte_header_id NUMBER;
665 lx_shipment_id NUMBER;
666 l_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type ;
667 l_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
668 l_Sales_Credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type ;
669 l_Quote_Party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
670 l_line_attribs_rec ASO_QUOTE_PUB.Line_Attribs_Ext_REC_type;
671 l_sysdate DATE;
672 l_price_adj_attr_tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
673 l_price_attributes_rec ASO_QUOTE_PUB.Price_Attributes_Rec_Type;
674
675 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
676 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
677
678 l_org_id NUMBER;
679 l_valid_org_id number; --New variable to store ORG_ID Yogeshwar (MOAC)
680
681 l_qte_access_tbl ASO_QUOTE_PUB.Qte_Access_Tbl_Type := p_qte_access_tbl;
682 --l_qte_access_tbl ASO_SECURITY_INT.Qte_Access_Tbl_Type := p_qte_access_tbl;
683 --lx_qte_access_tbl ASO_SECURITY_INT.Qte_Access_Tbl_Type;
684 lx_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
685
686 BEGIN
687 x_qte_header_rec := p_qte_header_rec;
688 l_sysdate := sysdate;
689
690 --Commented Code Start Yogeshwar (MOAC)
691 /* IF p_qte_header_rec.ORG_ID IS NULL OR p_qte_header_rec.ORG_ID = FND_API.G_MISS_NUM THEN
692
693 IF SUBSTRB(USERENV('CLIENT_INFO'),1 ,1) = ' ' THEN
694 l_org_id := NULL;
695 ELSE
696 l_org_id := TO_NUMBER(SUBSTRB(USERENV('CLIENT_INFO'), 1,10));
697 END IF;
698
699 ELSIF p_qte_header_rec.ORG_ID IS NOT NULL AND p_qte_header_rec.ORG_ID <> FND_API.G_MISS_NUM THEN
700 l_org_id := p_qte_header_rec.ORG_ID;
701 END IF;
702 */ --Commented Code End Yogeshwar (MOAC)
703
704 --New Code Start Yogeshwar (MOAC)
705 If p_qte_header_rec.org_id IS NULL THEN
706 l_org_id := FND_API.G_MISS_NUM;
707 Else
708 l_org_id := p_qte_header_rec.org_id;
709 End if;
710 l_valid_org_id:= MO_GLOBAL.get_valid_org(l_org_id);
711 if l_valid_org_id is NULL then
712 x_return_status := FND_API.G_RET_STS_ERROR;
713 RAISE FND_API.G_EXC_ERROR;
714 else
715 l_org_id := l_valid_org_id ;
716 End if;
717 --New Code End Yogeshwar (MOAC)
718
719 lx_qte_header_id := p_qte_header_rec.quote_header_id;
720
721 IF aso_debug_pub.g_debug_flag = 'Y' THEN
722 aso_debug_pub.add('Begin Insert Rows', 1, 'Y');
723 END IF;
724
725 ASO_QUOTE_HEADERS_PKG.Insert_Row(
726 px_QUOTE_HEADER_ID => lx_qte_header_id,
727 p_CREATION_DATE => l_SYSDATE,
728 p_CREATED_BY => G_USER_ID,
729 p_LAST_UPDATE_DATE => l_sysdate,
730 p_LAST_UPDATED_BY => G_USER_ID,
731 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
732 p_REQUEST_ID => p_qte_header_rec.REQUEST_ID,
733 p_PROGRAM_APPLICATION_ID => p_qte_header_rec.PROGRAM_APPLICATION_ID,
734 p_PROGRAM_ID => p_qte_header_rec.PROGRAM_ID,
735 p_PROGRAM_UPDATE_DATE => p_qte_header_rec.PROGRAM_UPDATE_DATE,
736 p_ORG_ID => l_org_id,
737 p_QUOTE_NAME => p_qte_header_rec.QUOTE_NAME,
738 p_QUOTE_NUMBER => p_qte_header_rec.QUOTE_NUMBER,
739 p_QUOTE_VERSION => p_qte_header_rec.QUOTE_VERSION,
740 p_QUOTE_STATUS_ID => p_qte_header_rec.QUOTE_STATUS_ID,
741 p_QUOTE_SOURCE_CODE => p_qte_header_rec.QUOTE_SOURCE_CODE,
742 p_QUOTE_EXPIRATION_DATE => trunc(p_qte_header_rec.QUOTE_EXPIRATION_DATE),
743 p_PRICE_FROZEN_DATE => p_qte_header_rec.PRICE_FROZEN_DATE,
744 p_QUOTE_PASSWORD => p_qte_header_rec.QUOTE_PASSWORD,
745 p_ORIGINAL_SYSTEM_REFERENCE => p_qte_header_rec.ORIGINAL_SYSTEM_REFERENCE,
746 p_PARTY_ID => p_qte_header_rec.PARTY_ID,
747 p_CUST_ACCOUNT_ID => p_qte_header_rec.CUST_ACCOUNT_ID,
748 p_ORG_CONTACT_ID => p_qte_header_rec.ORG_CONTACT_ID,
749 p_PHONE_ID => p_QTE_header_rec.PHONE_ID,
750 p_INVOICE_TO_PARTY_SITE_ID => p_qte_header_rec.INVOICE_TO_PARTY_SITE_ID,
751 p_INVOICE_TO_PARTY_ID => p_qte_header_rec.INVOICE_TO_PARTY_ID,
752 p_Invoice_to_CUST_ACCOUNT_ID => p_qte_header_rec.Invoice_to_CUST_ACCOUNT_ID,
753 p_ORIG_MKTG_SOURCE_CODE_ID => p_qte_header_rec.ORIG_MKTG_SOURCE_CODE_ID,
754 p_MARKETING_SOURCE_CODE_ID => p_qte_header_rec.MARKETING_SOURCE_CODE_ID,
755 p_ORDER_TYPE_ID => p_qte_header_rec.ORDER_TYPE_ID,
756 p_QUOTE_CATEGORY_CODE => p_qte_header_rec.QUOTE_CATEGORY_CODE,
757 p_ORDERED_DATE => p_qte_header_rec.ORDERED_DATE,
758 p_ACCOUNTING_RULE_ID => p_qte_header_rec.ACCOUNTING_RULE_ID,
759 p_INVOICING_RULE_ID => p_qte_header_rec.INVOICING_RULE_ID,
760 p_EMPLOYEE_PERSON_ID => p_qte_header_rec.EMPLOYEE_PERSON_ID,
761 p_PRICE_LIST_ID => p_qte_header_rec.PRICE_LIST_ID,
762 p_CURRENCY_CODE => p_qte_header_rec.CURRENCY_CODE,
763 p_TOTAL_LIST_PRICE => p_qte_header_rec.TOTAL_LIST_PRICE,
764 p_TOTAL_ADJUSTED_AMOUNT => p_qte_header_rec.TOTAL_ADJUSTED_AMOUNT,
765 p_TOTAL_ADJUSTED_PERCENT => p_qte_header_rec.TOTAL_ADJUSTED_PERCENT,
766 p_TOTAL_TAX => p_qte_header_rec.TOTAL_TAX,
767 p_TOTAL_SHIPPING_CHARGE => p_qte_header_rec.TOTAL_SHIPPING_CHARGE,
768 p_SURCHARGE => p_qte_header_rec.SURCHARGE,
769 p_TOTAL_QUOTE_PRICE => p_qte_header_rec.TOTAL_QUOTE_PRICE,
770 p_PAYMENT_AMOUNT => p_qte_header_rec.PAYMENT_AMOUNT,
771 p_EXCHANGE_RATE => p_qte_header_rec.EXCHANGE_RATE,
772 p_EXCHANGE_TYPE_CODE => p_qte_header_rec.EXCHANGE_TYPE_CODE,
773 p_EXCHANGE_RATE_DATE => p_qte_header_rec.EXCHANGE_RATE_DATE,
774 p_CONTRACT_ID => p_qte_header_rec.CONTRACT_ID,
775 p_SALES_CHANNEL_CODE => p_qte_header_rec.SALES_CHANNEL_CODE,
776 p_ORDER_ID => p_QTE_header_rec.ORDER_ID,
777 p_RESOURCE_ID => p_qte_header_rec.RESOURCE_ID,
778 p_ATTRIBUTE_CATEGORY => p_qte_header_rec.ATTRIBUTE_CATEGORY,
779 p_ATTRIBUTE1 => p_qte_header_rec.ATTRIBUTE1,
780 p_ATTRIBUTE2 => p_qte_header_rec.ATTRIBUTE2,
781 p_ATTRIBUTE3 => p_qte_header_rec.ATTRIBUTE3,
782 p_ATTRIBUTE4 => p_qte_header_rec.ATTRIBUTE4,
783 p_ATTRIBUTE5 => p_qte_header_rec.ATTRIBUTE5,
784 p_ATTRIBUTE6 => p_qte_header_rec.ATTRIBUTE6,
785 p_ATTRIBUTE7 => p_qte_header_rec.ATTRIBUTE7,
786 p_ATTRIBUTE8 => p_qte_header_rec.ATTRIBUTE8,
787 p_ATTRIBUTE9 => p_qte_header_rec.ATTRIBUTE9,
788 p_ATTRIBUTE10 => p_qte_header_rec.ATTRIBUTE10,
789 p_ATTRIBUTE11 => p_qte_header_rec.ATTRIBUTE11,
790 p_ATTRIBUTE12 => p_qte_header_rec.ATTRIBUTE12,
791 p_ATTRIBUTE13 => p_qte_header_rec.ATTRIBUTE13,
792 p_ATTRIBUTE14 => p_qte_header_rec.ATTRIBUTE14,
793 p_ATTRIBUTE15 => p_qte_header_rec.ATTRIBUTE15,
794 p_ATTRIBUTE16 => p_qte_header_rec.ATTRIBUTE16,
795 p_ATTRIBUTE17 => p_qte_header_rec.ATTRIBUTE17,
796 p_ATTRIBUTE18 => p_qte_header_rec.ATTRIBUTE18,
797 p_ATTRIBUTE19 => p_qte_header_rec.ATTRIBUTE19,
798 p_ATTRIBUTE20 => p_qte_header_rec.ATTRIBUTE20,
799 -- hyang new okc
800 p_CONTRACT_TEMPLATE_ID => FND_API.G_MISS_NUM,
801 p_CONTRACT_TEMPLATE_MAJOR_VER => FND_API.G_MISS_NUM,
802 p_CONTRACT_REQUESTER_ID => FND_API.G_MISS_NUM,
803 p_CONTRACT_APPROVAL_LEVEL => FND_API.G_MISS_CHAR,
804 -- end of hyang new okc
805 p_PUBLISH_FLAG => p_qte_header_rec.PUBLISH_FLAG,
806 p_RESOURCE_GRP_ID => p_qte_header_rec.RESOURCE_GRP_ID,
807 p_SOLD_TO_PARTY_SITE_ID => p_qte_header_rec.SOLD_TO_PARTY_SITE_ID,
808 p_DISPLAY_ARITHMETIC_OPERATOR => p_qte_header_rec.DISPLAY_ARITHMETIC_OPERATOR,
809 p_MAX_VERSION_FLAG => p_qte_header_rec.max_version_flag,
810 p_QUOTE_TYPE => p_qte_header_rec.QUOTE_TYPE,
811 p_QUOTE_DESCRIPTION => p_qte_header_rec.QUOTE_DESCRIPTION,
812 p_MINISITE_ID => p_qte_header_rec.MINISITE_ID,
813 p_CUST_PARTY_ID => p_qte_header_rec.CUST_PARTY_ID,
814 p_INVOICE_TO_CUST_PARTY_ID => p_qte_header_rec.INVOICE_TO_CUST_PARTY_ID,
815 p_Pricing_Status_indicator => p_qte_header_rec.Pricing_Status_indicator,
816 p_Tax_status_Indicator => p_qte_header_rec.Tax_status_Indicator,
817 p_Price_updated_date => p_qte_header_rec.Price_updated_date,
818 p_Tax_updated_date => p_qte_header_rec.Tax_updated_date,
819 p_Recalculate_flag => p_qte_header_rec.Recalculate_flag,
820 p_price_request_id => p_qte_header_rec.price_request_id,
821 p_credit_update_date => p_qte_header_rec.credit_update_date,
822 -- hyang new okc
823 P_Customer_Name_And_Title => p_qte_header_rec.Customer_Name_And_Title,
824 P_Customer_Signature_Date => p_qte_header_rec.Customer_Signature_Date,
825 P_Supplier_Name_And_Title => p_qte_header_rec.Supplier_Name_And_Title,
826 P_Supplier_Signature_Date => p_qte_header_rec.Supplier_Signature_Date,
827 -- end of hyang new okc
828 p_END_CUSTOMER_PARTY_ID => p_qte_header_rec.END_CUSTOMER_PARTY_ID,
829 p_END_CUSTOMER_CUST_PARTY_ID => p_qte_header_rec.END_CUSTOMER_CUST_PARTY_ID,
830 p_END_CUSTOMER_PARTY_SITE_ID => p_qte_header_rec.END_CUSTOMER_PARTY_SITE_ID,
831 p_END_CUSTOMER_CUST_ACCOUNT_ID => p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
832 P_OBJECT_VERSION_NUMBER => p_qte_header_rec.OBJECT_VERSION_NUMBER,
833 p_assistance_requested => p_qte_header_rec.assistance_requested,
834 p_assistance_reason_code => p_qte_header_rec.assistance_reason_code,
835 p_automatic_price_flag => p_qte_header_rec.automatic_price_flag,
836 p_automatic_tax_flag => p_qte_header_rec.automatic_tax_flag,
837 p_header_paynow_charges => p_qte_header_rec.header_paynow_charges
838 );
839
840 x_qte_header_rec.QUOTE_HEADER_ID := lx_qte_header_id;
841 x_qte_header_rec.LAST_UPDATE_DATE := l_sysdate;
842 x_qte_header_rec.CREATION_DATE := l_sysdate;
843 x_qte_header_rec.max_version_flag := 'Y';
844 IF aso_debug_pub.g_debug_flag = 'Y' THEN
845 aso_debug_pub.add('After quote headers.insert rows - Insert Rows', 1, 'Y');
846 END IF;
847
848 x_price_adjustment_tbl := p_price_adjustment_tbl;
849 l_price_adj_attr_tbl := p_price_adj_attr_tbl;
850 FOR i IN 1..P_Price_Adjustment_Tbl.count LOOP
851 l_price_adj_rec := p_price_adjustment_tbl(i);
852 -- BC4J Fix
853 --x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID := NULL;
854 l_sysdate := sysdate;
855 ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row(
856 px_PRICE_ADJUSTMENT_ID => x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID,
857 p_CREATION_DATE => SYSDATE,
858 p_CREATED_BY => G_USER_ID,
859 p_LAST_UPDATE_DATE => l_sysdate,
860 p_LAST_UPDATED_BY => G_USER_ID,
861 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
862 p_PROGRAM_APPLICATION_ID => l_price_adj_rec.PROGRAM_APPLICATION_ID,
863 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
864 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
865 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
866 p_QUOTE_HEADER_ID => lx_QTE_HEADER_ID,
867 p_QUOTE_LINE_ID => NULL,
868 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
869 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
870 p_MODIFIER_LINE_TYPE_CODE => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
871 p_MODIFIER_MECHANISM_TYPE_CODE => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
872 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
873 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
874 p_OPERAND => l_price_adj_rec.OPERAND,
875 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
876 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
877 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
878 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
879 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
880 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
881 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
882 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
883 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
884 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
885 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
886 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
887 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
888 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
889 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
890 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
891 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
892 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
893 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
894 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
895 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
896 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
897 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
898 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
899 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
900 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
901 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
902 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
903 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
904 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
905 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
906 -- p_LIST_LINE_ID => l_price_adj_rec. ,
907 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
908 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
909 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
910 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
911 p_COST_ID => l_price_adj_rec.COST_ID ,
912 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
913 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
914 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
915 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
916 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
917 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
918 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
919 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
920 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
921 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
922 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
923 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
924 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
925 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
926 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
927 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
928 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
929 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
930 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
931 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
932 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
933 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
934 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
935 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
936 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
937 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
938 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
939 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
940 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
941 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
942 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
943 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
944 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
945 p_quote_shipment_id => l_price_adj_rec.quote_shipment_id,
946 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
947 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
948 P_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
949 );
950 x_price_adjustment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
951 FOR j in 1..l_price_adj_attr_tbl.count LOOP
952 IF l_price_adj_attr_tbl(j).price_adj_index = i THEN
953 l_price_adj_attr_tbl(j).price_adjustment_id := x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID;
954 END IF;
955 END LOOP;
956 END LOOP;
957
958 x_price_adj_attr_tbl := l_price_adj_attr_tbl;
959 FOR i in 1..l_price_adj_attr_tbl.count LOOP
960 -- BC4J Fix
961 --x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID := NULL;
962 l_sysdate := sysdate;
963 ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row(
964 px_PRICE_ADJ_ATTRIB_ID => x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
965 p_CREATION_DATE => SYSDATE,
966 p_CREATED_BY => G_USER_ID,
967 p_LAST_UPDATE_DATE => l_sysdate,
968 p_LAST_UPDATED_BY => G_USER_ID,
969 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
970 p_PROGRAM_APPLICATION_ID =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
971 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
972 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
973 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
974 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
975 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
976 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
977 p_PRICING_ATTR_VALUE_FROM => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
978 p_PRICING_ATTR_VALUE_TO => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
979 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
980 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE,
981 P_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER);
982 x_price_adj_attr_tbl(i).LAST_UPDATE_DATE := l_sysdate;
983 END LOOP;
984
985 IF aso_debug_pub.g_debug_flag = 'Y' THEN
986 aso_debug_pub.add('After Price_adj.insert_rows - Insert Rows', 1, 'Y');
987 END IF;
988
989 x_payment_tbl := p_payment_tbl;
990
991 FOR i IN 1..P_Payment_Tbl.count LOOP
992
993 l_payment_rec := p_payment_tbl(i);
994 l_payment_rec.payment_term_id_from := p_payment_tbl(i).payment_term_id;
995
996 IF aso_debug_pub.g_debug_flag = 'Y' THEN
997 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');
998 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');
999 END IF;
1000
1001 -- BC4J Fix
1002 --x_payment_tbl(i).payment_id := null;
1003 x_payment_tbl(i).payment_term_id_from := l_payment_rec.payment_term_id_from;
1004 l_sysdate := sysdate;
1005
1006
1007 -- Payments Changes
1008
1009 l_payment_rec.quote_header_id := lx_qte_header_id;
1010
1011 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1012 aso_debug_pub.add('Insert_Rows: Before call to create_payment_row ', 1, 'Y');
1013 END IF;
1014
1015 aso_payment_int.create_payment_row(p_payment_rec => l_payment_rec ,
1016 x_payment_rec => x_payment_tbl(i),
1017 x_return_status => x_return_status,
1018 x_msg_count => x_msg_count,
1019 x_msg_data => x_msg_data);
1020
1021 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1022 aso_debug_pub.add('Insert_Rows: After call to create_payment_row: x_return_status: '||x_return_status, 1, 'Y');
1023 END IF;
1024
1025 if x_return_status <> fnd_api.g_ret_sts_success then
1026 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1027 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1028 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1029 RAISE FND_API.G_EXC_ERROR;
1030 ELSE
1031 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1032 END IF;
1033 end if;
1034
1035 x_payment_tbl(i).payment_term_id_from := l_payment_rec.payment_term_id_from;
1036
1037 -- End Payment Changes
1038 x_payment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
1039
1040 END LOOP;
1041
1042 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1043 aso_debug_pub.add('After Payments.insert_rows - Insert Rows', 1, 'Y');
1044 END IF;
1045
1046 x_shipment_rec := ASO_QUOTE_PUB.G_Miss_Shipment_Rec;
1047
1048 IF p_shipment_tbl.count > 0 THEN
1049
1050 x_shipment_rec := p_shipment_tbl(1);
1051 x_shipment_rec.ship_method_code_from := p_shipment_tbl(1).ship_method_code;
1052 x_shipment_rec.freight_terms_code_from := p_shipment_tbl(1).freight_terms_code;
1053
1054 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1055 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');
1056 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');
1057 END IF;
1058
1059 l_sysdate := sysdate;
1060 -- BC4J Fix
1061 lx_shipment_id := p_shipment_tbl(1).shipment_id;
1062
1063 ASO_SHIPMENTS_PKG.Insert_Row(
1064 px_SHIPMENT_ID => lx_shipment_id,
1065 p_CREATION_DATE => SYSDATE,
1066 p_CREATED_BY => G_USER_ID,
1067 p_LAST_UPDATE_DATE => l_sysdate,
1068 p_LAST_UPDATED_BY => G_USER_ID,
1069 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1070 p_REQUEST_ID => x_shipment_rec.REQUEST_ID,
1071 p_PROGRAM_APPLICATION_ID => x_shipment_rec.PROGRAM_APPLICATION_ID,
1072 p_PROGRAM_ID => x_shipment_rec.PROGRAM_ID,
1073 p_PROGRAM_UPDATE_DATE => x_shipment_rec.PROGRAM_UPDATE_DATE,
1074 p_QUOTE_HEADER_ID => lx_Qte_HEADER_ID,
1075 p_QUOTE_LINE_ID => NULL,
1076 p_PROMISE_DATE => x_shipment_rec.PROMISE_DATE,
1077 p_REQUEST_DATE => x_shipment_rec.REQUEST_DATE,
1078 p_SCHEDULE_SHIP_DATE => x_shipment_rec.SCHEDULE_SHIP_DATE,
1079 p_SHIP_TO_PARTY_SITE_ID => x_shipment_rec.SHIP_TO_PARTY_SITE_ID,
1080 p_SHIP_TO_PARTY_ID => x_shipment_rec.SHIP_TO_PARTY_ID,
1081 p_SHIP_TO_CUST_ACCOUNT_ID => x_Shipment_rec.SHIP_TO_CUST_ACCOUNT_ID,
1082 p_SHIP_PARTIAL_FLAG => x_shipment_rec.SHIP_PARTIAL_FLAG,
1083 p_SHIP_SET_ID => x_shipment_rec.SHIP_SET_ID,
1084 p_SHIP_METHOD_CODE => x_shipment_rec.SHIP_METHOD_CODE,
1085 p_FREIGHT_TERMS_CODE => x_shipment_rec.FREIGHT_TERMS_CODE,
1086 p_FREIGHT_CARRIER_CODE => x_shipment_rec.FREIGHT_CARRIER_CODE,
1087 p_FOB_CODE => x_shipment_rec.FOB_CODE,
1088 p_SHIPPING_INSTRUCTIONS => x_shipment_rec.SHIPPING_INSTRUCTIONS,
1089 p_PACKING_INSTRUCTIONS => x_shipment_rec.PACKING_INSTRUCTIONS,
1090 p_QUANTITY => x_shipment_rec.QUANTITY,
1091 p_RESERVED_QUANTITY => x_shipment_rec.RESERVED_QUANTITY,
1092 p_RESERVATION_ID => x_shipment_rec.RESERVATION_ID,
1093 p_ORDER_LINE_ID => x_shipment_rec.ORDER_LINE_ID,
1094 p_ATTRIBUTE_CATEGORY => x_SHIPMENT_rec.ATTRIBUTE_CATEGORY,
1095 p_ATTRIBUTE1 => x_shipment_rec.ATTRIBUTE1,
1096 p_ATTRIBUTE2 => x_shipment_rec.ATTRIBUTE2,
1097 p_ATTRIBUTE3 => x_shipment_rec.ATTRIBUTE3,
1098 p_ATTRIBUTE4 => x_shipment_rec.ATTRIBUTE4,
1099 p_ATTRIBUTE5 => x_shipment_rec.ATTRIBUTE5,
1100 p_ATTRIBUTE6 => x_shipment_rec.ATTRIBUTE6,
1101 p_ATTRIBUTE7 => x_shipment_rec.ATTRIBUTE7,
1102 p_ATTRIBUTE8 => x_shipment_rec.ATTRIBUTE8,
1103 p_ATTRIBUTE9 => x_shipment_rec.ATTRIBUTE9,
1104 p_ATTRIBUTE10 => x_shipment_rec.ATTRIBUTE10,
1105 p_ATTRIBUTE11 => x_shipment_rec.ATTRIBUTE11,
1106 p_ATTRIBUTE12 => x_shipment_rec.ATTRIBUTE12,
1107 p_ATTRIBUTE13 => x_shipment_rec.ATTRIBUTE13,
1108 p_ATTRIBUTE14 => x_shipment_rec.ATTRIBUTE14,
1109 p_ATTRIBUTE15 => x_shipment_rec.ATTRIBUTE15,
1110 p_ATTRIBUTE16 => x_shipment_rec.ATTRIBUTE16,
1111 p_ATTRIBUTE17 => x_shipment_rec.ATTRIBUTE17,
1112 p_ATTRIBUTE18 => x_shipment_rec.ATTRIBUTE18,
1113 p_ATTRIBUTE19 => x_shipment_rec.ATTRIBUTE19,
1114 p_ATTRIBUTE20 => x_shipment_rec.ATTRIBUTE20,
1115 p_SHIPMENT_PRIORITY_CODE => x_shipment_rec.SHIPMENT_PRIORITY_CODE,
1116 p_SHIP_QUOTE_PRICE => x_shipment_rec.SHIP_QUOTE_PRICE,
1117 p_SHIP_FROM_ORG_ID => x_shipment_rec.SHIP_FROM_ORG_ID,
1118 p_SHIP_TO_CUST_PARTY_ID => x_shipment_rec.SHIP_TO_CUST_PARTY_ID,
1119 p_SHIP_METHOD_CODE_FROM => x_shipment_rec.SHIP_METHOD_CODE_FROM,
1120 p_FREIGHT_TERMS_CODE_FROM => x_shipment_rec.FREIGHT_TERMS_CODE_FROM,
1121 P_OBJECT_VERSION_NUMBER => x_shipment_rec.OBJECT_VERSION_NUMBER,
1122 p_REQUEST_DATE_TYPE => x_shipment_rec.REQUEST_DATE_TYPE,
1123 p_demand_class_code => x_shipment_rec.demand_class_code
1124 );
1125 x_shipment_rec.SHIPMENT_ID := lx_shipment_id;
1126 x_shipment_rec.LAST_UPDATE_DATE := l_sysdate;
1127
1128 END IF;
1129 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1130 aso_debug_pub.add('After shipments.insert_rows - Insert Rows', 1, 'Y');
1131 END IF;
1132
1133 IF lx_shipment_id IS NOT NULL and lx_shipment_id <> FND_API.G_MISS_NUM THEN
1134 x_freight_charge_tbl := p_freight_charge_tbl;
1135 FOR i IN 1..P_Freight_Charge_Tbl.count LOOP
1136 l_freight_charge_rec := p_freight_charge_tbl(i);
1137 -- BC4J Fix
1138 --x_FREIGHT_CHARGE_tbl(i).freight_charge_id := NULL;
1139 l_sysdate := sysdate;
1140 ASO_FREIGHT_CHARGES_PKG.Insert_Row(
1141 px_FREIGHT_CHARGE_ID => x_FREIGHT_CHARGE_tbl(i).freight_charge_id,
1142 p_CREATION_DATE => SYSDATE,
1143 p_CREATED_BY => G_USER_ID,
1144 p_LAST_UPDATE_DATE => l_sysdate,
1145 p_LAST_UPDATED_BY => G_USER_ID,
1146 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1147 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
1148 p_PROGRAM_APPLICATION_ID => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
1149 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
1150 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
1151 p_QUOTE_SHIPMENT_ID => lx_SHIPMENT_ID,
1152 p_FREIGHT_CHARGE_TYPE_ID => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
1153 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
1154 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
1155 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
1156 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
1157 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
1158 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
1159 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
1160 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
1161 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
1162 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
1163 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
1164 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
1165 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
1166 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
1167 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
1168 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
1169 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
1170 x_freight_charge_tbl(i).quote_shipment_id := lx_shipment_id;
1171 x_FREIGHT_CHARGE_tbl(i).LAST_UPDATE_DATE := l_sysdate;
1172 END LOOP;
1173 END IF;
1174
1175 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1176 aso_debug_pub.add('After Freight_charges.insert_rows - Insert Rows', 1, 'Y');
1177 END IF;
1178
1179 x_tax_detail_tbl := p_tax_detail_tbl;
1180 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1181 aso_debug_pub.add('Insert Rows - tax.count: '||to_char(P_tax_detail_Tbl.count), 1, 'N');
1182 END IF;
1183
1184 FOR i IN 1..P_tax_detail_Tbl.count LOOP
1185 l_tax_detail_rec := x_tax_detail_tbl(i);
1186 -- BC4J Fix
1187 --x_tax_detail_tbl(i).TAX_DETAIL_ID := NULL;
1188 l_sysdate := sysdate;
1189 ASO_TAX_DETAILS_PKG.Insert_Row(
1190 px_TAX_DETAIL_ID => x_tax_detail_tbl(i).TAX_DETAIL_ID,
1191 p_CREATION_DATE => SYSDATE,
1192 p_CREATED_BY => G_USER_ID,
1193 p_LAST_UPDATE_DATE => l_sysdate,
1194 p_LAST_UPDATED_BY => G_USER_ID,
1195 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1196 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
1197 p_PROGRAM_APPLICATION_ID => l_tax_detail_rec.PROGRAM_APPLICATION_ID,
1198 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
1199 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
1200 p_QUOTE_HEADER_ID => lx_Qte_HEADER_ID,
1201 p_QUOTE_LINE_ID => NULL,
1202 p_QUOTE_SHIPMENT_ID => lx_SHIPMENT_ID,
1203 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
1204 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
1205 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
1206 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
1207 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
1208 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
1209 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
1210 p_TAX_EXEMPT_REASON_CODE => l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
1211 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
1212 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
1213 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
1214 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
1215 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
1216 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
1217 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
1218 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
1219 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
1220 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
1221 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
1222 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
1223 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
1224 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
1225 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
1226 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
1227 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
1228 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
1229 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
1230 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
1231 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
1232 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
1233 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
1234 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
1235 );
1236 x_tax_detail_tbl(i).LAST_UPDATE_DATE := l_sysdate;
1237 END LOOP;
1238 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1239 aso_debug_pub.add('After tax_details.insert_rows - Insert Rows', 1, 'Y');
1240 END IF;
1241
1242 FOR i in 1..p_Sales_Credit_Tbl.count LOOP
1243
1244 l_Sales_Credit_rec := p_sales_credit_tbl(i);
1245 l_sales_credit_rec.quote_header_id := x_qte_header_rec.quote_header_id;
1246 x_sales_credit_tbl(i) := l_sales_credit_rec;
1247 -- BC4J Fix
1248 --x_sales_credit_tbl(i).sales_credit_id := NULL;
1249 ASO_SALES_CREDITS_PKG.Insert_Row(
1250 p_CREATION_DATE => SYSDATE,
1251 p_CREATED_BY => G_USER_ID,
1252 p_LAST_UPDATED_BY => G_USER_ID,
1253 p_LAST_UPDATE_DATE => SYSDATE,
1254 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1255 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
1256 p_PROGRAM_APPLICATION_ID => l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
1257 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
1258 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
1259 px_SALES_CREDIT_ID => x_SALES_CREDIT_tbl(i).SALES_CREDIT_ID,
1260 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
1261 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
1262 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
1263 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
1264 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
1265 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
1266 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
1267 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
1268 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
1269 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
1270 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
1271 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
1272 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
1273 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
1274 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
1275 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
1276 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
1277 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
1278 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
1279 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
1280 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
1281 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
1282 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
1283 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
1284 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
1285 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
1286 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
1287 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
1288 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
1289 p_SYSTEM_ASSIGNED_FLAG => 'N',
1290 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
1291 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
1292
1293 END LOOP;
1294
1295
1296 -- insert into quote party table
1297 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1298 aso_debug_pub.add('Insert Rows - Quote_party.count: ' || p_quote_party_Tbl.count, 1, 'N');
1299 aso_debug_pub.add('Insert Rows - Quote_party header: '|| x_qte_header_rec.quote_header_id, 1, 'N');
1300 END IF;
1301
1302 FOR i IN 1..p_quote_party_Tbl.count LOOP
1303 l_quote_party_rec := p_quote_party_tbl(i);
1304 -- l_quote_party_rec.quote_line_id := x_qte_line_rec.QUOTE_LINE_ID;
1305 l_quote_party_rec.quote_header_id := x_qte_header_rec.quote_header_id;
1306 x_quote_party_tbl(i) := l_quote_party_rec;
1307 -- BC4J Fix
1308 --x_quote_party_tbl(i).QUOTE_PARTY_ID := NULL;
1309
1310 ASO_QUOTE_PARTIES_PKG.Insert_Row(
1311 px_QUOTE_PARTY_ID => x_quote_party_tbl(i).QUOTE_PARTY_ID,
1312 p_CREATION_DATE => SYSDATE,
1313 p_CREATED_BY => G_USER_ID,
1314 p_LAST_UPDATE_DATE => SYSDATE,
1315 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1316 p_LAST_UPDATED_BY => G_USER_ID,
1317 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
1318 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
1319 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
1320 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
1321 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
1322 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
1323 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
1324 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
1325 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
1326 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
1327 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
1328 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
1329 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
1330 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
1331 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
1332 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
1333 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
1334 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
1335 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
1336 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
1337 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
1338 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
1339 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
1340 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
1341 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
1342 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
1343 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
1344 -- p_SECURITY_GROUP_ID => p_QUOTE_PARTY_rec.SECURITY_GROUP_ID);
1345 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
1346
1347 END LOOP;
1348
1349
1350 FOR i IN 1..P_hd_Attr_Ext_tbl.count LOOP
1351 l_line_attribs_rec := P_hd_Attr_Ext_Tbl(i);
1352 l_line_attribs_rec.quote_header_id := x_qte_header_rec.QUOTE_HEADER_ID;
1353 X_hd_Attr_Ext_Tbl(i) := l_line_attribs_rec;
1354 -- BC4J Fix
1355 --X_hd_Attr_Ext_Tbl(i).LINE_ATTRIBUTE_ID := NULL;
1356
1357 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row(
1358 px_LINE_ATTRIBUTE_ID => x_hd_Attr_Ext_Tbl(i).LINE_ATTRIBUTE_ID,
1359 p_CREATION_DATE => SYSDATE,
1360 p_CREATED_BY => G_USER_ID,
1361 p_LAST_UPDATE_DATE => SYSDATE,
1362 p_LAST_UPDATED_BY => G_USER_ID,
1363 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1364 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
1365 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
1366 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
1367 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
1368 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
1369 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
1370 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
1371 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
1372 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
1373 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
1374 p_NAME => l_LINE_ATTRIBS_rec.NAME,
1375 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
1376 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
1377 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
1378 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
1379 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
1380 END LOOP;
1381
1382
1383
1384 -- check for duplicate promotions, see bug 4521799
1385 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1386 aso_debug_pub.add('Before calling Validate_Promotion price_attr_tbl.count: '|| p_price_attributes_tbl.count, 1, 'Y');
1387 END IF;
1388
1389 ASO_VALIDATE_PVT.Validate_Promotion (
1390 P_Api_Version_Number => 1.0,
1391 P_Init_Msg_List => FND_API.G_FALSE,
1392 P_Commit => FND_API.G_FALSE,
1393 p_price_attr_tbl => p_price_attributes_tbl,
1394 x_price_attr_tbl => lx_price_attr_tbl,
1395 x_return_status => x_return_status,
1396 x_msg_count => x_msg_count,
1397 x_msg_data => x_msg_data);
1398
1399 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1400 aso_debug_pub.add('after calling Validate_Promotion ', 1, 'Y');
1401 aso_debug_pub.add('Validate_Promotion Return Status: '||x_return_status, 1, 'Y');
1402 END IF;
1403
1404 if x_return_status <> fnd_api.g_ret_sts_success then
1405 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1406 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1407 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1408 RAISE FND_API.G_EXC_ERROR;
1409 ELSE
1410 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1411 END IF;
1412 end if;
1413
1414
1415 -- end of check for duplicate promotions
1416
1417
1418
1419 -- added by hagrawal
1420
1421 FOR i in 1..p_price_attributes_tbl.count LOOP
1422
1423 l_price_attributes_rec := p_price_attributes_tbl(i);
1424 l_price_attributes_rec.quote_header_id := x_qte_header_rec.quote_header_id;
1425 x_price_attributes_tbl(i) := l_price_attributes_rec;
1426 -- BC4J Fix
1427 --x_price_attributes_tbl(i).price_attribute_id := NULL;
1428 ASO_PRICE_ATTRIBUTES_PKG.Insert_Row(
1429 px_PRICE_ATTRIBUTE_ID => x_price_attributes_tbl(i).price_attribute_id,
1430 p_CREATION_DATE => SYSDATE,
1431 p_CREATED_BY => G_USER_ID,
1432 p_LAST_UPDATE_DATE => SYSDATE,
1433 p_LAST_UPDATED_BY => G_USER_ID,
1434 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1435 p_REQUEST_ID => l_price_attributes_rec.REQUEST_ID,
1436 p_PROGRAM_APPLICATION_ID => l_price_attributes_rec.PROGRAM_APPLICATION_ID,
1437 p_PROGRAM_ID => l_price_attributes_rec.PROGRAM_ID,
1438 p_PROGRAM_UPDATE_DATE => l_price_attributes_rec.PROGRAM_UPDATE_DATE,
1439 p_QUOTE_HEADER_ID => l_price_attributes_rec.QUOTE_HEADER_ID,
1440 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
1441 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
1442 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
1443 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
1444 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
1445 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
1446 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
1447 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
1448 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
1449 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
1450 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
1451 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
1452 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
1453 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
1454 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
1455 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
1456 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
1457 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
1458 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
1459 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
1460 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
1461 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
1462 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
1463 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
1464 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
1465 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
1466 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
1467 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
1468 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
1469 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
1470 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
1471 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
1472 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
1473 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
1474 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
1475 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
1476 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
1477 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
1478 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
1479 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
1480 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
1481 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
1482 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
1483 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
1484 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
1485 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
1486 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
1487 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
1488 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
1489 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
1490 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
1491 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
1492 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
1493 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
1494 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
1495 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
1496 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
1497 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
1498 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
1499 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
1500 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
1501 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
1502 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
1503 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
1504 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
1505 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
1506 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
1507 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
1508 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
1509 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
1510 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
1511 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
1512 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
1513 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
1514 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
1515 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
1516 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
1517 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
1518 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
1519 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
1520 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
1521 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
1522 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
1523 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
1524 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
1525 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
1526 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
1527 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
1528 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
1529 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
1530 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
1531 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
1532 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
1533 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
1534 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
1535 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
1536 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
1537 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
1538 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
1539 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
1540 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
1541 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
1542 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
1543 p_CONTEXT => l_price_attributes_rec.CONTEXT,
1544 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
1545 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
1546 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
1547 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
1548 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
1549 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
1550 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
1551 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
1552 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
1553 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
1554 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
1555 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
1556 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
1557 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
1558 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
1559 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
1560 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
1561 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
1562 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
1563 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
1564 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
1565 );
1566
1567 END LOOP;
1568
1569 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1570 aso_debug_pub.add('Insert_Rows: l_qte_access_tbl.count: '||l_qte_access_tbl.count, 1, 'Y');
1571 END IF;
1572
1573 for i in 1 .. l_qte_access_tbl.count loop
1574 l_qte_access_tbl(i).quote_number := p_qte_header_rec.quote_number;
1575 l_qte_access_tbl(i).batch_price_flag := fnd_api.g_false;
1576 end loop;
1577
1578 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1579 aso_debug_pub.add('Insert_Rows: Before call to Add_Resource', 1, 'Y');
1580 END IF;
1581
1582 if l_qte_access_tbl.count > 0 then
1583
1584 ASO_SECURITY_INT.Add_Resource(
1585 P_INIT_MSG_LIST => FND_API.G_FALSE,
1586 P_COMMIT => FND_API.G_FALSE,
1587 P_Qte_Access_tbl => l_qte_access_tbl,
1588 p_call_from_oafwk_flag => FND_API.G_TRUE,
1589 X_Qte_Access_tbl => x_qte_access_tbl,
1590 X_RETURN_STATUS => x_return_status,
1591 X_msg_count => X_msg_count,
1592 X_msg_data => X_msg_data );
1593
1594 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1595 aso_debug_pub.add('Insert_Rows: After call to Add_Resource: x_return_status: '||x_return_status, 1, 'Y');
1596 END IF;
1597
1598 end if;
1599
1600 END Insert_Rows;
1601
1602
1603 PROCEDURE Update_Rows (
1604 P_qte_Header_Rec IN ASO_QUOTE_PUB.qte_header_rec_Type,
1605 p_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
1606 P_Price_Adjustment_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
1607 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
1608 P_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type,
1609 P_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type,
1610 P_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
1611 P_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
1612 P_hd_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
1613 P_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
1614 P_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
1615 P_Qte_Access_Tbl IN ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
1616 X_qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.qte_header_rec_Type,
1617 X_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
1618 X_Price_Adjustment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
1619 x_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
1620 X_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
1621 X_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
1622 X_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
1623 X_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
1624 X_hd_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
1625 X_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
1626 X_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
1627 X_Qte_Access_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
1628 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1629 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1630 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1631 )
1632 IS
1633 l_price_adj_rec ASO_QUOTE_PUB.Price_Adj_Rec_Type;
1634 l_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
1635 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
1636 l_freight_charge_rec ASO_QUOTE_PUB.Freight_Charge_Rec_Type;
1637 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
1638 l_price_adj_attr_rec ASO_QUOTE_PUB.Price_Adj_Attr_Rec_Type;
1639 l_price_adj_attr_tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
1640 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
1641 l_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type ;
1642 l_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
1643 l_Sales_Credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type ;
1644 l_Quote_Party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
1645 l_price_attributes_rec ASO_QUOTE_PUB.Price_Attributes_Rec_Type;
1646 l_line_attribs_rec ASO_QUOTE_PUB.Line_Attribs_Ext_rec_Type;
1647 l_qte_access_tbl ASO_QUOTE_PUB.Qte_Access_Tbl_Type;
1648 lx_qte_access_tbl ASO_QUOTE_PUB.Qte_Access_Tbl_Type;
1649
1650 l_sysdate DATE ;
1651 l_qte_header_id NUMBER := p_qte_header_rec.quote_header_id;
1652 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
1653 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
1654 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
1655 l_qte_hdr_rec ASO_QUOTE_PUB.qte_header_rec_Type;
1656 lx_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
1657
1658
1659 -- The following cursor is needed for Payment From column Maintenance.
1660 CURSOR c_db_payment_terms(p_payment_id NUMBER) IS
1661 SELECT payment_term_id_from,payment_term_id
1662 FROM ASO_PAYMENTS
1663 WHERE payment_id = p_payment_id;
1664
1665 -- The following cursors is needed for ship_method_code and Freight Terms Code From column Maintenance.
1666 CURSOR c_db_ship_freight_terms(p_shipment_id NUMBER) IS
1667 SELECT ship_method_code_from,ship_method_code,
1668 Freight_terms_code_from,Freight_terms_code
1669 FROM ASO_SHIPMENTS
1670 WHERE shipment_id = p_shipment_id;
1671
1672 cursor c_quote_number is
1673 select quote_number from aso_quote_headers_all
1674 where quote_header_id = p_qte_header_rec.quote_header_id;
1675
1676 cursor get_payment_type_code( l_payment_id Number) is
1677 select payment_type_code
1678 from aso_payments
1679 where payment_id = l_payment_id;
1680
1681 cursor get_bill_to_party( l_qte_hdr_id Number) is
1682 select invoice_to_cust_party_id
1683 from aso_quote_headers_all
1684 where quote_header_id = l_qte_hdr_id;
1685
1686 BEGIN
1687 x_return_status := fnd_api.g_ret_sts_success;
1688 x_qte_header_rec := p_qte_header_rec;
1689 l_sysdate := sysdate;
1690 x_qte_header_rec.last_update_date := l_sysdate;
1691 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1692 aso_debug_pub.add('Begin Update Rows', 1, 'Y');
1693 END IF;
1694
1695 -- Validate the invoice to cust party id and payment info, if any
1696 IF p_payment_tbl.count = 0 then
1697 l_payment_tbl := aso_utility_pvt.Query_Payment_Rows( p_qte_header_rec.QUOTE_HEADER_ID,null);
1698 Else
1699 l_payment_tbl := p_payment_tbl;
1700 -- check to see if the value has been changed, if not get orig value from db
1701 if l_payment_tbl(1).payment_type_code = fnd_api.g_miss_char then
1702 open get_payment_type_code(l_payment_tbl(1).payment_id);
1703 fetch get_payment_type_code into l_payment_tbl(1).payment_type_code;
1704 close get_payment_type_code;
1705 end if;
1706 End if;
1707 -- bill to customer may not have been changed, if so get orig value from db
1708 l_qte_hdr_rec := p_qte_header_rec;
1709 if l_qte_hdr_rec.invoice_to_cust_party_id = fnd_api.g_miss_num then
1710 open get_bill_to_party(l_qte_hdr_rec.quote_header_id);
1711 fetch get_bill_to_party into l_qte_hdr_rec.invoice_to_cust_party_id;
1712 close get_bill_to_party;
1713 end if;
1714
1715 IF l_payment_tbl.count > 0 then
1716 l_payment_rec := l_payment_tbl(1);
1717 IF l_payment_rec.payment_type_code = 'CREDIT_CARD' THEN
1718 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1719 aso_debug_pub.add('Before calling Validate_cc_info ', 1, 'Y');
1720 END IF;
1721 aso_validate_pvt.Validate_cc_info
1722 (
1723 p_init_msg_list => fnd_api.g_false,
1724 p_payment_rec => l_payment_rec,
1725 p_qte_header_rec => l_qte_hdr_rec,
1726 P_Qte_Line_rec => ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC,
1727 x_return_status => x_return_status,
1728 x_msg_count => x_msg_count,
1729 x_msg_data => x_msg_data);
1730
1731 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1732 aso_debug_pub.add('after calling Validate_cc_info ', 1, 'Y');
1733 aso_debug_pub.add('Validate_cc_info Return Status: '||x_return_status, 1, 'Y');
1734 END IF;
1735
1736 if x_return_status <> fnd_api.g_ret_sts_success then
1737 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1738 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1739 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1740 RAISE FND_API.G_EXC_ERROR;
1741 ELSE
1742 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1743 END IF;
1744 end if;
1745 END IF;
1746
1747 End if;
1748
1749
1750 ASO_QUOTE_HEADERS_PKG.Update_Row(
1751 p_QUOTE_HEADER_ID => p_qte_header_rec.QUOTE_HEADER_ID,
1752 p_CREATION_DATE => p_qte_header_rec.creation_date,
1753 p_CREATED_BY => G_USER_ID,
1754 p_LAST_UPDATE_DATE => l_sysdate,
1755 p_LAST_UPDATED_BY => G_USER_ID,
1756 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1757 p_REQUEST_ID => p_qte_header_rec.REQUEST_ID,
1758 p_PROGRAM_APPLICATION_ID => p_qte_header_rec.PROGRAM_APPLICATION_ID,
1759 p_PROGRAM_ID => p_qte_header_rec.PROGRAM_ID,
1760 p_PROGRAM_UPDATE_DATE => p_qte_header_rec.PROGRAM_UPDATE_DATE,
1761 p_ORG_ID => p_qte_header_rec.ORG_ID,
1762 p_QUOTE_NAME => p_qte_header_rec.QUOTE_NAME,
1763 p_QUOTE_NUMBER => p_qte_header_rec.QUOTE_NUMBER,
1764 p_QUOTE_VERSION => p_qte_header_rec.QUOTE_VERSION,
1765 p_QUOTE_STATUS_ID => p_qte_header_rec.QUOTE_STATUS_ID,
1766 p_QUOTE_SOURCE_CODE => p_qte_header_rec.QUOTE_SOURCE_CODE,
1767 p_QUOTE_EXPIRATION_DATE => trunc(p_qte_header_rec.QUOTE_EXPIRATION_DATE),
1768 p_PRICE_FROZEN_DATE => p_qte_header_rec.PRICE_FROZEN_DATE,
1769 p_QUOTE_PASSWORD => p_qte_header_rec.QUOTE_PASSWORD,
1770 p_ORIGINAL_SYSTEM_REFERENCE => p_qte_header_rec.ORIGINAL_SYSTEM_REFERENCE,
1771 p_PARTY_ID => p_qte_header_rec.PARTY_ID,
1772 p_CUST_ACCOUNT_ID => p_qte_header_rec.CUST_ACCOUNT_ID,
1773 p_ORG_CONTACT_ID => p_qte_header_rec.ORG_CONTACT_ID,
1774 p_PHONE_ID => p_QTE_header_rec.PHONE_ID,
1775 p_INVOICE_TO_PARTY_SITE_ID => p_qte_header_rec.INVOICE_TO_PARTY_SITE_ID,
1776 p_INVOICE_TO_PARTY_ID => p_qte_header_rec.INVOICE_TO_PARTY_ID,
1777 p_Invoice_to_CUST_ACCOUNT_ID => p_qte_header_rec.Invoice_to_CUST_ACCOUNT_ID,
1778 p_ORIG_MKTG_SOURCE_CODE_ID => p_qte_header_rec.ORIG_MKTG_SOURCE_CODE_ID,
1779 p_MARKETING_SOURCE_CODE_ID => p_qte_header_rec.MARKETING_SOURCE_CODE_ID,
1780 p_ORDER_TYPE_ID => p_qte_header_rec.ORDER_TYPE_ID,
1781 p_QUOTE_CATEGORY_CODE => p_qte_header_rec.QUOTE_CATEGORY_CODE,
1782 p_ORDERED_DATE => p_qte_header_rec.ORDERED_DATE,
1783 p_ACCOUNTING_RULE_ID => p_qte_header_rec.ACCOUNTING_RULE_ID,
1784 p_INVOICING_RULE_ID => p_qte_header_rec.INVOICING_RULE_ID,
1785 p_EMPLOYEE_PERSON_ID => p_qte_header_rec.EMPLOYEE_PERSON_ID,
1786 p_PRICE_LIST_ID => p_qte_header_rec.PRICE_LIST_ID,
1787 p_CURRENCY_CODE => p_qte_header_rec.CURRENCY_CODE,
1788 p_TOTAL_LIST_PRICE => p_qte_header_rec.TOTAL_LIST_PRICE,
1789 p_TOTAL_ADJUSTED_AMOUNT => p_qte_header_rec.TOTAL_ADJUSTED_AMOUNT,
1790 p_TOTAL_ADJUSTED_PERCENT => p_qte_header_rec.TOTAL_ADJUSTED_PERCENT,
1791 p_TOTAL_TAX => p_qte_header_rec.TOTAL_TAX,
1792 p_TOTAL_SHIPPING_CHARGE => p_qte_header_rec.TOTAL_SHIPPING_CHARGE,
1793 p_SURCHARGE => p_qte_header_rec.SURCHARGE,
1794 p_TOTAL_QUOTE_PRICE => p_qte_header_rec.TOTAL_QUOTE_PRICE,
1795 p_PAYMENT_AMOUNT => p_qte_header_rec.PAYMENT_AMOUNT,
1796 p_EXCHANGE_RATE => p_qte_header_rec.EXCHANGE_RATE,
1797 p_EXCHANGE_TYPE_CODE => p_qte_header_rec.EXCHANGE_TYPE_CODE,
1798 p_EXCHANGE_RATE_DATE => p_qte_header_rec.EXCHANGE_RATE_DATE,
1799 p_CONTRACT_ID => p_qte_header_rec.CONTRACT_ID,
1800 p_SALES_CHANNEL_CODE => p_qte_header_rec.SALES_CHANNEL_CODE,
1801 p_ORDER_ID => p_QTE_header_rec.ORDER_ID,
1802 p_RESOURCE_ID => p_qte_header_rec.RESOURCE_ID,
1803 p_ATTRIBUTE_CATEGORY => p_qte_header_rec.ATTRIBUTE_CATEGORY,
1804 p_ATTRIBUTE1 => p_qte_header_rec.ATTRIBUTE1,
1805 p_ATTRIBUTE2 => p_qte_header_rec.ATTRIBUTE2,
1806 p_ATTRIBUTE3 => p_qte_header_rec.ATTRIBUTE3,
1807 p_ATTRIBUTE4 => p_qte_header_rec.ATTRIBUTE4,
1808 p_ATTRIBUTE5 => p_qte_header_rec.ATTRIBUTE5,
1809 p_ATTRIBUTE6 => p_qte_header_rec.ATTRIBUTE6,
1810 p_ATTRIBUTE7 => p_qte_header_rec.ATTRIBUTE7,
1811 p_ATTRIBUTE8 => p_qte_header_rec.ATTRIBUTE8,
1812 p_ATTRIBUTE9 => p_qte_header_rec.ATTRIBUTE9,
1813 p_ATTRIBUTE10 => p_qte_header_rec.ATTRIBUTE10,
1814 p_ATTRIBUTE11 => p_qte_header_rec.ATTRIBUTE11,
1815 p_ATTRIBUTE12 => p_qte_header_rec.ATTRIBUTE12,
1816 p_ATTRIBUTE13 => p_qte_header_rec.ATTRIBUTE13,
1817 p_ATTRIBUTE14 => p_qte_header_rec.ATTRIBUTE14,
1818 p_ATTRIBUTE15 => p_qte_header_rec.ATTRIBUTE15,
1819 p_ATTRIBUTE16 => p_qte_header_rec.ATTRIBUTE16,
1820 p_ATTRIBUTE17 => p_qte_header_rec.ATTRIBUTE17,
1821 p_ATTRIBUTE18 => p_qte_header_rec.ATTRIBUTE18,
1822 p_ATTRIBUTE19 => p_qte_header_rec.ATTRIBUTE19,
1823 p_ATTRIBUTE20 => p_qte_header_rec.ATTRIBUTE20,
1824 -- hyang new okc
1825 p_CONTRACT_TEMPLATE_ID => FND_API.G_MISS_NUM,
1826 p_CONTRACT_TEMPLATE_MAJOR_VER => FND_API.G_MISS_NUM,
1827 p_CONTRACT_REQUESTER_ID => FND_API.G_MISS_NUM,
1828 p_CONTRACT_APPROVAL_LEVEL => FND_API.G_MISS_CHAR,
1829 -- end of hyang new okc
1830 p_PUBLISH_FLAG => p_qte_header_rec.PUBLISH_FLAG,
1831 p_RESOURCE_GRP_ID => p_qte_header_rec.RESOURCE_GRP_ID,
1832 p_SOLD_TO_PARTY_SITE_ID => p_qte_header_rec.SOLD_TO_PARTY_SITE_ID,
1833 p_DISPLAY_ARITHMETIC_OPERATOR => p_qte_header_rec.DISPLAY_ARITHMETIC_OPERATOR,
1834 p_MAX_VERSION_FLAG => p_qte_header_rec.MAX_VERSION_FLAG,
1835 p_QUOTE_TYPE => p_qte_header_rec.QUOTE_TYPE,
1836 p_QUOTE_DESCRIPTION => p_qte_header_rec.QUOTE_DESCRIPTION,
1837 p_MINISITE_ID => p_qte_header_rec.MINISITE_ID,
1838 p_CUST_PARTY_ID => p_qte_header_rec.CUST_PARTY_ID,
1839 p_INVOICE_TO_CUST_PARTY_ID => p_qte_header_rec.INVOICE_TO_CUST_PARTY_ID,
1840 p_Pricing_Status_indicator => p_qte_header_rec.Pricing_Status_indicator,
1841 p_Tax_status_Indicator => p_qte_header_rec.Tax_status_Indicator,
1842 p_Price_updated_date => p_qte_header_rec.Price_updated_date,
1843 p_Tax_updated_date => p_qte_header_rec.Tax_updated_date,
1844 p_Recalculate_flag => p_qte_header_rec.Recalculate_flag,
1845 p_price_request_id => p_qte_header_rec.price_request_id,
1846 p_credit_update_date => p_qte_header_rec.credit_update_date,
1847 -- hyang new okc
1848 P_Customer_Name_And_Title => p_qte_header_rec.Customer_Name_And_Title,
1849 P_Customer_Signature_Date => p_qte_header_rec.Customer_Signature_Date,
1850 P_Supplier_Name_And_Title => p_qte_header_rec.Supplier_Name_And_Title,
1851 P_Supplier_Signature_Date => p_qte_header_rec.Supplier_Signature_Date,
1852 -- end of hyang new okc
1853 p_END_CUSTOMER_PARTY_ID => p_qte_header_rec.END_CUSTOMER_PARTY_ID,
1854 p_END_CUSTOMER_CUST_PARTY_ID => p_qte_header_rec.END_CUSTOMER_CUST_PARTY_ID,
1855 p_END_CUSTOMER_PARTY_SITE_ID => p_qte_header_rec.END_CUSTOMER_PARTY_SITE_ID,
1856 p_END_CUSTOMER_CUST_ACCOUNT_ID => p_qte_header_rec.END_CUSTOMER_CUST_ACCOUNT_ID,
1857 p_OBJECT_VERSION_NUMBER => p_qte_header_rec.OBJECT_VERSION_NUMBER,
1858 p_assistance_requested => p_qte_header_rec.assistance_requested,
1859 p_assistance_reason_code => p_qte_header_rec.assistance_reason_code,
1860 p_automatic_price_flag => p_qte_header_rec.automatic_price_flag,
1861 p_automatic_tax_flag => p_qte_header_rec.automatic_tax_flag,
1862 p_header_paynow_charges => p_qte_header_rec.header_paynow_charges
1863 );
1864 x_price_adjustment_tbl := p_price_adjustment_tbl;
1865 l_price_adj_attr_tbl := p_price_adj_attr_tbl;
1866 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1867 aso_debug_pub.add('Update Rows - price_adj.count: '||x_price_adjustment_tbl.counT, 1, 'N');
1868 END IF;
1869
1870 FOR i IN 1..P_Price_Adjustment_Tbl.count LOOP
1871 IF P_Price_Adjustment_Tbl(i).operation_code = 'CREATE' THEN
1872 l_price_adj_rec := p_price_adjustment_tbl(i);
1873 l_sysdate := sysdate;
1874 x_price_adjustment_tbl(i).last_update_date := l_sysdate;
1875 -- BC4J Fix
1876 --x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID := NULL;
1877 IF aso_debug_pub.g_debug_flag = 'Y' THEN
1878 aso_debug_pub.add('Before price_adj.update_rows - Update Rows', 1, 'Y');
1879 END IF;
1880
1881 ASO_PRICE_ADJUSTMENTS_PKG.Insert_Row(
1882 px_PRICE_ADJUSTMENT_ID => x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID,
1883 p_CREATION_DATE => SYSDATE,
1884 p_CREATED_BY => G_USER_ID,
1885 p_LAST_UPDATE_DATE => l_sysdate,
1886 p_LAST_UPDATED_BY => G_USER_ID,
1887 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1888 p_PROGRAM_APPLICATION_ID => l_price_adj_rec.PROGRAM_APPLICATION_ID,
1889 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
1890 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
1891 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
1892 p_QUOTE_HEADER_ID => l_qte_header_id,
1893 p_QUOTE_LINE_ID => NULL,
1894 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
1895 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
1896 p_MODIFIER_LINE_TYPE_CODE => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
1897 p_MODIFIER_MECHANISM_TYPE_CODE => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
1898 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
1899 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
1900 p_OPERAND => l_price_adj_rec.OPERAND,
1901 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
1902 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
1903 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
1904 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
1905 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
1906 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
1907 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
1908 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
1909 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
1910 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
1911 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
1912 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
1913 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
1914 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
1915 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
1916 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
1917 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
1918 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
1919 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
1920 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
1921 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
1922 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
1923 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
1924 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
1925 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
1926 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
1927 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
1928 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
1929 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
1930 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
1931 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
1932 -- p_LIST_LINE_ID => l_price_adj_rec. ,
1933 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
1934 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
1935 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
1936 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
1937 p_COST_ID => l_price_adj_rec.COST_ID ,
1938 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
1939 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
1940 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
1941 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
1942 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
1943 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
1944 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
1945 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
1946 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
1947 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
1948 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
1949 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
1950 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
1951 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
1952 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
1953 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
1954 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
1955 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
1956 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
1957 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
1958 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
1959 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
1960 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
1961 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
1962 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
1963 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
1964 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
1965 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
1966 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
1967 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
1968 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
1969 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
1970 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
1971 p_quote_shipment_id => l_price_adj_rec.quote_shipment_id,
1972 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
1973 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
1974 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
1975 );
1976 FOR j in 1..l_price_adj_attr_tbl.count LOOP
1977 IF l_price_adj_attr_tbl(j).price_adj_index = i THEN
1978 l_price_adj_attr_tbl(j).price_adjustment_id := x_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID;
1979 END IF;
1980 END LOOP;
1981 ELSIF P_Price_Adjustment_Tbl(i).operation_code = 'UPDATE' THEN
1982
1983 l_price_adj_rec := p_price_adjustment_tbl(i);
1984 l_sysdate := sysdate;
1985 x_price_adjustment_tbl(i).last_update_date := l_sysdate;
1986 ASO_PRICE_ADJUSTMENTS_PKG.Update_Row(
1987 p_PRICE_ADJUSTMENT_ID => l_price_adj_rec.PRICE_ADJUSTMENT_ID,
1988 p_CREATION_DATE => l_price_adj_rec.creation_date,
1989 p_CREATED_BY => G_USER_ID,
1990 p_LAST_UPDATE_DATE => l_sysdate,
1991 p_LAST_UPDATED_BY => G_USER_ID,
1992 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
1993 p_PROGRAM_APPLICATION_ID => l_price_adj_rec.PROGRAM_APPLICATION_ID,
1994 p_PROGRAM_ID => l_price_adj_rec.PROGRAM_ID,
1995 p_PROGRAM_UPDATE_DATE => l_price_adj_rec.PROGRAM_UPDATE_DATE,
1996 p_REQUEST_ID => l_price_adj_rec.REQUEST_ID,
1997 p_QUOTE_HEADER_ID => l_qte_header_id,
1998 p_QUOTE_LINE_ID => NULL,
1999 p_MODIFIER_HEADER_ID => l_price_adj_rec.MODIFIER_HEADER_ID,
2000 p_MODIFIER_LINE_ID => l_price_adj_rec.MODIFIER_LINE_ID,
2001 p_MODIFIER_LINE_TYPE_CODE => l_price_adj_rec.MODIFIER_LINE_TYPE_CODE,
2002 p_MODIFIER_MECHANISM_TYPE_CODE => l_price_adj_rec.MODIFIER_MECHANISM_TYPE_CODE,
2003 p_MODIFIED_FROM => l_price_adj_rec.MODIFIED_FROM,
2004 p_MODIFIED_TO => l_price_adj_rec.MODIFIED_TO,
2005 p_OPERAND => l_price_adj_rec.OPERAND,
2006 p_ARITHMETIC_OPERATOR => l_price_adj_rec.ARITHMETIC_OPERATOR,
2007 p_AUTOMATIC_FLAG => l_price_adj_rec.AUTOMATIC_FLAG,
2008 p_UPDATE_ALLOWABLE_FLAG => l_price_adj_rec.UPDATE_ALLOWABLE_FLAG,
2009 p_UPDATED_FLAG => l_price_adj_rec.UPDATED_FLAG,
2010 p_APPLIED_FLAG => l_price_adj_rec.APPLIED_FLAG,
2011 p_ON_INVOICE_FLAG => l_price_adj_rec.ON_INVOICE_FLAG,
2012 p_PRICING_PHASE_ID => l_price_adj_rec.PRICING_PHASE_ID,
2013 p_ATTRIBUTE_CATEGORY => l_price_adj_rec.ATTRIBUTE_CATEGORY,
2014 p_ATTRIBUTE1 => l_price_adj_rec.ATTRIBUTE1,
2015 p_ATTRIBUTE2 => l_price_adj_rec.ATTRIBUTE2,
2016 p_ATTRIBUTE3 => l_price_adj_rec.ATTRIBUTE3,
2017 p_ATTRIBUTE4 => l_price_adj_rec.ATTRIBUTE4,
2018 p_ATTRIBUTE5 => l_price_adj_rec.ATTRIBUTE5,
2019 p_ATTRIBUTE6 => l_price_adj_rec.ATTRIBUTE6,
2020 p_ATTRIBUTE7 => l_price_adj_rec.ATTRIBUTE7,
2021 p_ATTRIBUTE8 => l_price_adj_rec.ATTRIBUTE8,
2022 p_ATTRIBUTE9 => l_price_adj_rec.ATTRIBUTE9,
2023 p_ATTRIBUTE10 => l_price_adj_rec.ATTRIBUTE10,
2024 p_ATTRIBUTE11 => l_price_adj_rec.ATTRIBUTE11,
2025 p_ATTRIBUTE12 => l_price_adj_rec.ATTRIBUTE12,
2026 p_ATTRIBUTE13 => l_price_adj_rec.ATTRIBUTE13,
2027 p_ATTRIBUTE14 => l_price_adj_rec.ATTRIBUTE14,
2028 p_ATTRIBUTE15 => l_price_adj_rec.ATTRIBUTE15,
2029 p_ATTRIBUTE16 => l_price_adj_rec.ATTRIBUTE16,
2030 p_ATTRIBUTE17 => l_price_adj_rec.ATTRIBUTE17,
2031 p_ATTRIBUTE18 => l_price_adj_rec.ATTRIBUTE18,
2032 p_ATTRIBUTE19 => l_price_adj_rec.ATTRIBUTE19,
2033 p_ATTRIBUTE20 => l_price_adj_rec.ATTRIBUTE20,
2034 p_ORIG_SYS_DISCOUNT_REF => l_price_adj_rec.ORIG_SYS_DISCOUNT_REF ,
2035 p_CHANGE_SEQUENCE => l_price_adj_rec.CHANGE_SEQUENCE ,
2036 -- p_LIST_HEADER_ID => l_price_adj_rec. ,
2037 -- p_LIST_LINE_ID => l_price_adj_rec. ,
2038 -- p_LIST_LINE_TYPE_CODE => l_price_adj_rec.,
2039 p_UPDATE_ALLOWED => l_price_adj_rec.UPDATE_ALLOWED,
2040 p_CHANGE_REASON_CODE => l_price_adj_rec.CHANGE_REASON_CODE,
2041 p_CHANGE_REASON_TEXT => l_price_adj_rec.CHANGE_REASON_TEXT,
2042 p_COST_ID => l_price_adj_rec.COST_ID ,
2043 p_TAX_CODE => l_price_adj_rec.TAX_CODE,
2044 p_TAX_EXEMPT_FLAG => l_price_adj_rec.TAX_EXEMPT_FLAG,
2045 p_TAX_EXEMPT_NUMBER => l_price_adj_rec.TAX_EXEMPT_NUMBER,
2046 p_TAX_EXEMPT_REASON_CODE => l_price_adj_rec.TAX_EXEMPT_REASON_CODE,
2047 p_PARENT_ADJUSTMENT_ID => l_price_adj_rec.PARENT_ADJUSTMENT_ID,
2048 p_INVOICED_FLAG => l_price_adj_rec.INVOICED_FLAG,
2049 p_ESTIMATED_FLAG => l_price_adj_rec.ESTIMATED_FLAG,
2050 p_INC_IN_SALES_PERFORMANCE => l_price_adj_rec.INC_IN_SALES_PERFORMANCE,
2051 p_SPLIT_ACTION_CODE => l_price_adj_rec.SPLIT_ACTION_CODE,
2052 p_ADJUSTED_AMOUNT => l_price_adj_rec.ADJUSTED_AMOUNT ,
2053 p_CHARGE_TYPE_CODE => l_price_adj_rec.CHARGE_TYPE_CODE,
2054 p_CHARGE_SUBTYPE_CODE => l_price_adj_rec.CHARGE_SUBTYPE_CODE,
2055 p_RANGE_BREAK_QUANTITY => l_price_adj_rec.RANGE_BREAK_QUANTITY,
2056 p_ACCRUAL_CONVERSION_RATE => l_price_adj_rec.ACCRUAL_CONVERSION_RATE ,
2057 p_PRICING_GROUP_SEQUENCE => l_price_adj_rec.PRICING_GROUP_SEQUENCE,
2058 p_ACCRUAL_FLAG => l_price_adj_rec.ACCRUAL_FLAG,
2059 p_LIST_LINE_NO => l_price_adj_rec.LIST_LINE_NO,
2060 p_SOURCE_SYSTEM_CODE => l_price_adj_rec.SOURCE_SYSTEM_CODE ,
2061 p_BENEFIT_QTY => l_price_adj_rec.BENEFIT_QTY,
2062 p_BENEFIT_UOM_CODE => l_price_adj_rec.BENEFIT_UOM_CODE,
2063 p_PRINT_ON_INVOICE_FLAG => l_price_adj_rec.PRINT_ON_INVOICE_FLAG,
2064 p_EXPIRATION_DATE => l_price_adj_rec.EXPIRATION_DATE,
2065 p_REBATE_TRANSACTION_TYPE_CODE => l_price_adj_rec.REBATE_TRANSACTION_TYPE_CODE,
2066 p_REBATE_TRANSACTION_REFERENCE => l_price_adj_rec.REBATE_TRANSACTION_REFERENCE,
2067 p_REBATE_PAYMENT_SYSTEM_CODE => l_price_adj_rec.REBATE_PAYMENT_SYSTEM_CODE,
2068 p_REDEEMED_DATE => l_price_adj_rec.REDEEMED_DATE,
2069 p_REDEEMED_FLAG => l_price_adj_rec.REDEEMED_FLAG,
2070 p_MODIFIER_LEVEL_CODE => l_price_adj_rec.MODIFIER_LEVEL_CODE,
2071 p_PRICE_BREAK_TYPE_CODE => l_price_adj_rec.PRICE_BREAK_TYPE_CODE ,
2072 p_SUBSTITUTION_ATTRIBUTE => l_price_adj_rec.SUBSTITUTION_ATTRIBUTE,
2073 p_PRORATION_TYPE_CODE => l_price_adj_rec.PRORATION_TYPE_CODE ,
2074 p_INCLUDE_ON_RETURNS_FLAG => l_price_adj_rec.INCLUDE_ON_RETURNS_FLAG,
2075 p_CREDIT_OR_CHARGE_FLAG => l_price_adj_rec.CREDIT_OR_CHARGE_FLAG,
2076 p_quote_shipment_id => l_price_adj_rec.quote_shipment_id,
2077 p_OPERAND_PER_PQTY => l_price_adj_rec.OPERAND_PER_PQTY,
2078 p_ADJUSTED_AMOUNT_PER_PQTY => l_price_adj_rec.ADJUSTED_AMOUNT_PER_PQTY,
2079 p_OBJECT_VERSION_NUMBER => l_price_adj_rec.OBJECT_VERSION_NUMBER
2080 );
2081 ELSIF P_Price_Adjustment_Tbl(i).operation_code = 'DELETE' THEN
2082 ASO_PRICE_ADJUSTMENTS_PKG.Delete_Row(
2083 p_PRICE_ADJUSTMENT_ID => p_price_adjustment_tbl(i).PRICE_ADJUSTMENT_ID);
2084 END IF;
2085 END LOOP;
2086
2087 FOR i IN 1..l_Price_Adj_Attr_Tbl.count LOOP
2088
2089 l_sysdate := sysdate;
2090
2091 IF l_price_adj_attr_tbl(i).operation_code = 'CREATE' and
2092 l_price_adj_attr_tbl(i).price_adjustment_id is not null and
2093 l_price_adj_attr_tbl(i).price_adjustment_id <> fnd_api.g_miss_num THEN
2094
2095
2096 x_price_adj_attr_tbl(i) := l_price_adj_attr_tbl(i);
2097
2098 --l_price_adj_attr_rec := l_price_adj_attr_tbl(i);
2099 -- BC4J Fix
2100 --x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID := NULL;
2101 x_price_adj_attr_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2102
2103 ASO_PRICE_ADJ_ATTRIBS_PKG.Insert_Row(
2104 px_PRICE_ADJ_ATTRIB_ID => x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
2105 p_CREATION_DATE => SYSDATE,
2106 p_CREATED_BY => G_USER_ID,
2107 p_LAST_UPDATE_DATE => l_sysdate,
2108 p_LAST_UPDATED_BY => G_USER_ID,
2109 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2110 p_PROGRAM_APPLICATION_ID =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
2111 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
2112 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
2113 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
2114 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
2115 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
2116 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
2117 p_PRICING_ATTR_VALUE_FROM => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
2118 p_PRICING_ATTR_VALUE_TO => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
2119 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
2120 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE,
2121 p_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER
2122 );
2123
2124 ELSIF l_Price_Adj_Attr_Tbl(i).operation_code = 'UPDATE' THEN
2125
2126 x_price_adj_attr_tbl(i) := l_price_adj_attr_tbl(i);
2127 --l_price_adj_attr_rec := l_price_adj_attr_tbl(i);
2128 x_price_adj_attr_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2129
2130 ASO_PRICE_ADJ_ATTRIBS_PKG.Update_Row(
2131 p_PRICE_ADJ_ATTRIB_ID => x_price_adj_attr_tbl(i).PRICE_ADJ_ATTRIB_ID,
2132 p_CREATION_DATE => l_price_adj_attr_tbl(i).creation_date,
2133 p_CREATED_BY => G_USER_ID,
2134 p_LAST_UPDATE_DATE => l_sysdate,
2135 p_LAST_UPDATED_BY => G_USER_ID,
2136 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2137 p_PROGRAM_APPLICATION_ID =>l_price_adj_attr_tbl(i).PROGRAM_APPLICATION_ID,
2138 p_PROGRAM_ID => l_price_adj_attr_tbl(i).PROGRAM_ID,
2139 p_PROGRAM_UPDATE_DATE => l_price_adj_attr_tbl(i).PROGRAM_UPDATE_DATE,
2140 p_REQUEST_ID => l_price_adj_attr_tbl(i).REQUEST_ID,
2141 p_PRICE_ADJUSTMENT_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID,
2142 p_PRICING_CONTEXT => l_price_adj_attr_tbl(i).PRICING_CONTEXT,
2143 p_PRICING_ATTRIBUTE => l_price_adj_attr_tbl(i).PRICING_ATTRIBUTE,
2144 p_PRICING_ATTR_VALUE_FROM => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_FROM,
2145 p_PRICING_ATTR_VALUE_TO => l_price_adj_attr_tbl(i).PRICING_ATTR_VALUE_TO,
2146 p_COMPARISON_OPERATOR => l_price_adj_attr_tbl(i).COMPARISON_OPERATOR,
2147 p_FLEX_TITLE => l_price_adj_attr_tbl(i).FLEX_TITLE,
2148 p_OBJECT_VERSION_NUMBER => l_price_adj_attr_tbl(i).OBJECT_VERSION_NUMBER);
2149 ELSIF l_Price_Adj_Attr_Tbl(i).operation_code = 'DELETE' THEN
2150 ASO_PRICE_ADJ_ATTRIBS_PKG.Delete_Row(
2151 p_PRICE_ADJ_ATTRIB_ID => l_price_adj_attr_tbl(i).PRICE_ADJUSTMENT_ID);
2152 END IF;
2153 END LOOP;
2154
2155 x_payment_tbl := p_payment_tbl;
2156
2157 FOR i IN 1..P_Payment_Tbl.count LOOP
2158 IF P_Payment_Tbl(i).operation_code = 'CREATE' THEN
2159
2160 l_sysdate := sysdate;
2161 l_payment_rec := p_payment_tbl(i);
2162 l_payment_rec.PAYMENT_TERM_ID_FROM := p_payment_tbl(i).payment_term_id;
2163
2164 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2165 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');
2166 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');
2167 END IF;
2168 -- BC4J Fix
2169 --x_payment_tbl(i).PAYMENT_ID := NULL;
2170 x_payment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2171 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
2172
2173
2174 -- Payments Changes
2175
2176 l_payment_rec.quote_header_id := l_qte_header_id;
2177
2178 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2179 aso_debug_pub.add('Update_Rows: Before call to create_payment_row ', 1, 'Y');
2180 END IF;
2181
2182 aso_payment_int.create_payment_row(p_payment_rec => l_payment_rec ,
2183 x_payment_rec => x_payment_tbl(i),
2184 x_return_status => x_return_status,
2185 x_msg_count => x_msg_count,
2186 x_msg_data => x_msg_data);
2187
2188 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2189 aso_debug_pub.add('Update_Rows: After call to create_payment_row: x_return_status: '||x_return_status, 1, 'Y');
2190 END IF;
2191
2192 if x_return_status <> fnd_api.g_ret_sts_success then
2193 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2194 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2195 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2196 RAISE FND_API.G_EXC_ERROR;
2197 ELSE
2198 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2199 END IF;
2200 end if;
2201
2202 x_payment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2203 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
2204
2205 -- End Payment Changes
2206
2207 ELSIF P_Payment_Tbl(i).operation_code = 'UPDATE' THEN
2208
2209 l_payment_rec := p_payment_tbl(i);
2210 l_sysdate := sysdate;
2211
2212 IF l_payment_rec.payment_term_id = FND_API.G_MISS_NUM THEN
2213
2214 FOR l_payment_db_rec IN c_db_payment_terms(p_payment_tbl(i).PAYMENT_ID) LOOP
2215
2216 IF l_payment_db_rec.payment_term_id_from IS NULL THEN
2217 l_payment_rec.payment_term_id_from := l_payment_db_rec.payment_term_id;
2218 END IF;
2219
2220 END LOOP;
2221
2222 ELSE
2223 l_payment_rec.payment_term_id_from := l_payment_rec.payment_term_id;
2224
2225 END IF;
2226
2227 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2228 aso_debug_pub.add('Inside ASO_PAYMENTS_PKG - Update Rows l_payment_rec.payment_term_id'||l_payment_rec.payment_term_id, 1, 'Y');
2229 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');
2230 END IF;
2231
2232 x_payment_tbl(i).last_update_date := l_sysdate;
2233 x_payment_tbl(i).payment_term_id_from := l_payment_rec.payment_term_id_from;
2234
2235 -- Payments Changes
2236
2237 l_payment_rec.quote_header_id := l_qte_header_id;
2238
2239 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2240 aso_debug_pub.add('Update_Rows: Before call to update_payment_row ', 1, 'Y');
2241 END IF;
2242
2243 aso_payment_int.update_payment_row(p_payment_rec => l_payment_rec ,
2244 x_payment_rec => x_payment_tbl(i),
2245 x_return_status => x_return_status,
2246 x_msg_count => x_msg_count,
2247 x_msg_data => x_msg_data);
2248
2249 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2250 aso_debug_pub.add('Update_Rows: After call to update_payment_row: x_return_status: '||x_return_status, 1, 'Y');
2251 END IF;
2252
2253 if x_return_status <> fnd_api.g_ret_sts_success then
2254 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2255 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2256 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2257 RAISE FND_API.G_EXC_ERROR;
2258 ELSE
2259 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2260 END IF;
2261 end if;
2262
2263 x_payment_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2264 x_payment_tbl(i).PAYMENT_TERM_ID_FROM := l_payment_rec.PAYMENT_TERM_ID_FROM;
2265
2266 -- End Payment Changes
2267
2268 ELSIF P_Payment_Tbl(i).operation_code = 'DELETE' THEN
2269
2270 -- Payments Changes
2271 l_payment_rec := P_Payment_Tbl(i);
2272 l_payment_rec.quote_header_id := l_qte_header_id;
2273
2274 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2275 aso_debug_pub.add('Update_Rows: Before call to delete_payment_row ', 1, 'Y');
2276 END IF;
2277
2278 aso_payment_int.delete_payment_row(p_payment_rec => l_payment_rec ,
2279 x_return_status => x_return_status,
2280 x_msg_count => x_msg_count,
2281 x_msg_data => x_msg_data);
2282
2283 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2284 aso_debug_pub.add('Update_Rows: After call to delete_payment_row: x_return_status: '||x_return_status, 1, 'Y');
2285 END IF;
2286 if x_return_status <> fnd_api.g_ret_sts_success then
2287 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2288 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2289 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2290 RAISE FND_API.G_EXC_ERROR;
2291 ELSE
2292 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2293 END IF;
2294 end if;
2295
2296 -- End Payment Changes
2297
2298 END IF;
2299 END LOOP;
2300
2301
2302 x_shipment_tbl := p_shipment_tbl;
2303 l_freight_charge_tbl := p_freight_charge_tbl;
2304
2305 FOR i IN 1..P_Shipment_Tbl.count LOOP
2306
2307 IF P_Shipment_Tbl(i).operation_code = 'CREATE' THEN
2308
2309 l_shipment_rec := x_shipment_tbl(i);
2310 l_shipment_rec.ship_method_code_from := p_shipment_tbl(1).ship_method_code;
2311 l_shipment_rec.freight_terms_code_from := p_shipment_tbl(1).freight_terms_code;
2312
2313 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2314 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');
2315 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');
2316 END IF;
2317
2318 l_sysdate := sysdate;
2319 -- BC4J Fix
2320 x_shipment_tbl(i).shipment_id := p_shipment_tbl(1).shipment_id;
2321 --x_shipment_tbl(i).shipment_id := null;
2322 x_shipment_tbl(i).last_update_date := l_sysdate;
2323 x_shipment_tbl(i).ship_method_code_from := l_shipment_rec.ship_method_code_from;
2324 x_shipment_tbl(i).freight_terms_code_from := l_shipment_rec.freight_terms_code_from;
2325
2326 ASO_SHIPMENTS_PKG.Insert_Row(
2327 px_SHIPMENT_ID => x_shipment_tbl(i).SHIPMENT_ID,
2328 p_CREATION_DATE => SYSDATE,
2329 p_CREATED_BY => G_USER_ID,
2330 p_LAST_UPDATE_DATE => l_sysdate,
2331 p_LAST_UPDATED_BY => G_USER_ID,
2332 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2333 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
2334 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
2335 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
2336 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
2337 p_QUOTE_HEADER_ID => l_qte_HEADER_ID,
2338 p_QUOTE_LINE_ID => NULL,
2339 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
2340 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
2341 p_SCHEDULE_SHIP_DATE => l_shipment_rec.SCHEDULE_SHIP_DATE,
2342 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
2343 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
2344 p_ship_to_CUST_ACCOUNT_ID => l_shipment_rec.ship_to_CUST_ACCOUNT_ID,
2345 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
2346 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
2347 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
2348 p_FREIGHT_TERMS_CODE => l_shipment_rec.FREIGHT_TERMS_CODE,
2349 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
2350 p_FOB_CODE => l_shipment_rec.FOB_CODE,
2351 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
2352 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
2353 p_QUANTITY => l_shipment_rec.QUANTITY,
2354 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
2355 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
2356 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
2357 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
2358 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
2359 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
2360 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
2361 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
2362 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
2363 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
2364 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
2365 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
2366 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
2367 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
2368 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
2369 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
2370 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
2371 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
2372 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
2373 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
2374 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
2375 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
2376 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
2377 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
2378 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
2379 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
2380 p_SHIP_FROM_ORG_ID => l_shipment_rec.SHIP_FROM_ORG_ID,
2381 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
2382 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
2383 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
2384 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
2385 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
2386 p_demand_class_code => l_shipment_rec.demand_class_code
2387 );
2388
2389 FOR j IN 1..l_Freight_Charge_Tbl.count LOOP
2390 IF l_Freight_Charge_Tbl(j).shipment_index = i THEN
2391 l_freight_charge_tbl(j).QUOTE_SHIPMENT_ID := x_shipment_tbl(i).SHIPMENT_ID;
2392 END IF;
2393 END LOOP;
2394
2395
2396 ELSIF P_Shipment_Tbl(i).operation_code = 'UPDATE' THEN
2397
2398 l_sysdate := sysdate;
2399 x_shipment_tbl(i).last_update_date := l_sysdate;
2400 l_shipment_rec := x_shipment_tbl(i);
2401
2402 IF l_shipment_rec.ship_method_code = fnd_api.g_miss_char THEN
2403
2404 FOR l_ship_db_rec IN c_db_ship_freight_terms(l_shipment_rec.shipment_id) LOOP
2405
2406 IF l_ship_db_rec.ship_method_code_from is null THEN
2407 l_shipment_rec.ship_method_code_from := l_ship_db_rec.ship_method_code;
2408 END IF;
2409
2410 END LOOP;
2411
2412 ELSE
2413 l_shipment_rec.ship_method_code_from := l_shipment_rec.ship_method_code;
2414
2415 END IF;
2416
2417
2418 IF l_shipment_rec.freight_terms_code = fnd_api.g_miss_char THEN
2419
2420 FOR l_ship_db_rec IN c_db_ship_freight_terms(l_shipment_rec.shipment_id) LOOP
2421
2422 IF l_ship_db_rec.freight_terms_code_from is null THEN
2423 l_shipment_rec.freight_terms_code_from := l_ship_db_rec.freight_terms_code;
2424 END IF;
2425
2426 END LOOP;
2427
2428 ELSE
2429 l_shipment_rec.freight_terms_code_from := l_shipment_rec.freight_terms_code;
2430
2431 END IF;
2432
2433 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2434 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.update_rows - l_shipment_rec.ship_method_code'||l_shipment_rec.ship_method_code, 1, 'Y');
2435 aso_debug_pub.add('Before ASO_SHIPMENTS_PKG.update_rows - l_shipment_rec.freight_terms_code'||l_shipment_rec.freight_terms_code, 1, 'Y');
2436 END IF;
2437
2438 x_shipment_tbl(i).ship_method_code_from := l_shipment_rec.ship_method_code_from;
2439 x_shipment_tbl(i).freight_terms_code_from := l_shipment_rec.freight_terms_code_from;
2440
2441 ASO_SHIPMENTS_PKG.Update_Row(
2442 p_SHIPMENT_ID => l_shipment_rec.SHIPMENT_ID,
2443 p_CREATION_DATE => l_shipment_rec.creation_date,
2444 p_CREATED_BY => G_USER_ID,
2445 p_LAST_UPDATE_DATE => l_sysdate,
2446 p_LAST_UPDATED_BY => G_USER_ID,
2447 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2448 p_REQUEST_ID => l_shipment_rec.REQUEST_ID,
2449 p_PROGRAM_APPLICATION_ID => l_shipment_rec.PROGRAM_APPLICATION_ID,
2450 p_PROGRAM_ID => l_shipment_rec.PROGRAM_ID,
2451 p_PROGRAM_UPDATE_DATE => l_shipment_rec.PROGRAM_UPDATE_DATE,
2452 p_QUOTE_HEADER_ID => l_qte_HEADER_ID,
2453 p_QUOTE_LINE_ID => NULL,
2454 p_PROMISE_DATE => l_shipment_rec.PROMISE_DATE,
2455 p_REQUEST_DATE => l_shipment_rec.REQUEST_DATE,
2456 p_SCHEDULE_SHIP_DATE => l_shipment_rec.SCHEDULE_SHIP_DATE,
2457 p_SHIP_TO_PARTY_SITE_ID => l_shipment_rec.SHIP_TO_PARTY_SITE_ID,
2458 p_SHIP_TO_PARTY_ID => l_shipment_rec.SHIP_TO_PARTY_ID,
2459 p_ship_to_CUST_ACCOUNT_ID => l_shipment_rec.ship_to_CUST_ACCOUNT_ID,
2460 p_SHIP_PARTIAL_FLAG => l_shipment_rec.SHIP_PARTIAL_FLAG,
2461 p_SHIP_SET_ID => l_shipment_rec.SHIP_SET_ID,
2462 p_SHIP_METHOD_CODE => l_shipment_rec.SHIP_METHOD_CODE,
2463 p_FREIGHT_TERMS_CODE => l_shipment_rec.FREIGHT_TERMS_CODE,
2464 p_FREIGHT_CARRIER_CODE => l_shipment_rec.FREIGHT_CARRIER_CODE,
2465 p_FOB_CODE => l_shipment_rec.FOB_CODE,
2466 p_SHIPPING_INSTRUCTIONS => l_shipment_rec.SHIPPING_INSTRUCTIONS,
2467 p_PACKING_INSTRUCTIONS => l_shipment_rec.PACKING_INSTRUCTIONS,
2468 p_QUANTITY => l_shipment_rec.QUANTITY,
2469 p_RESERVED_QUANTITY => l_shipment_rec.RESERVED_QUANTITY,
2470 p_RESERVATION_ID => l_shipment_rec.RESERVATION_ID,
2471 p_ORDER_LINE_ID => l_shipment_rec.ORDER_LINE_ID,
2472 p_ATTRIBUTE_CATEGORY => l_shipment_rec.ATTRIBUTE_CATEGORY,
2473 p_ATTRIBUTE1 => l_shipment_rec.ATTRIBUTE1,
2474 p_ATTRIBUTE2 => l_shipment_rec.ATTRIBUTE2,
2475 p_ATTRIBUTE3 => l_shipment_rec.ATTRIBUTE3,
2476 p_ATTRIBUTE4 => l_shipment_rec.ATTRIBUTE4,
2477 p_ATTRIBUTE5 => l_shipment_rec.ATTRIBUTE5,
2478 p_ATTRIBUTE6 => l_shipment_rec.ATTRIBUTE6,
2479 p_ATTRIBUTE7 => l_shipment_rec.ATTRIBUTE7,
2480 p_ATTRIBUTE8 => l_shipment_rec.ATTRIBUTE8,
2481 p_ATTRIBUTE9 => l_shipment_rec.ATTRIBUTE9,
2482 p_ATTRIBUTE10 => l_shipment_rec.ATTRIBUTE10,
2483 p_ATTRIBUTE11 => l_shipment_rec.ATTRIBUTE11,
2484 p_ATTRIBUTE12 => l_shipment_rec.ATTRIBUTE12,
2485 p_ATTRIBUTE13 => l_shipment_rec.ATTRIBUTE13,
2486 p_ATTRIBUTE14 => l_shipment_rec.ATTRIBUTE14,
2487 p_ATTRIBUTE15 => l_shipment_rec.ATTRIBUTE15,
2488 p_ATTRIBUTE16 => l_shipment_rec.ATTRIBUTE16,
2489 p_ATTRIBUTE17 => l_shipment_rec.ATTRIBUTE17,
2490 p_ATTRIBUTE18 => l_shipment_rec.ATTRIBUTE18,
2491 p_ATTRIBUTE19 => l_shipment_rec.ATTRIBUTE19,
2492 p_ATTRIBUTE20 => l_shipment_rec.ATTRIBUTE20,
2493 p_SHIPMENT_PRIORITY_CODE => l_shipment_rec.SHIPMENT_PRIORITY_CODE,
2494 p_SHIP_QUOTE_PRICE => l_shipment_rec.SHIP_QUOTE_PRICE,
2495 p_SHIP_FROM_ORG_ID => l_shipment_rec.SHIP_FROM_ORG_ID,
2496 p_SHIP_TO_CUST_PARTY_ID => l_shipment_rec.SHIP_TO_CUST_PARTY_ID,
2497 p_SHIP_METHOD_CODE_FROM => l_shipment_rec.SHIP_METHOD_CODE_FROM,
2498 p_FREIGHT_TERMS_CODE_FROM => l_shipment_rec.FREIGHT_TERMS_CODE_FROM,
2499 p_OBJECT_VERSION_NUMBER => l_shipment_rec.OBJECT_VERSION_NUMBER,
2500 p_REQUEST_DATE_TYPE => l_shipment_rec.REQUEST_DATE_TYPE,
2501 p_demand_class_code => l_shipment_rec.demand_class_code
2502 );
2503 ELSIF P_Shipment_Tbl(i).operation_code = 'DELETE' THEN
2504 ASO_SHIPMENTS_PKG.Delete_Row(
2505 p_SHIPMENT_ID => P_Shipment_Tbl(i).SHIPMENT_ID);
2506 END IF;
2507 END LOOP;
2508
2509 x_freight_charge_tbl := l_freight_charge_tbl;
2510 FOR i IN 1..l_Freight_Charge_Tbl.count LOOP
2511 IF l_Freight_Charge_Tbl(i).operation_code = 'CREATE' THEN
2512 l_sysdate := sysdate;
2513 l_freight_charge_rec := l_freight_charge_tbl(i);
2514 x_FREIGHT_CHARGE_tbl(i).last_update_date := l_sysdate;
2515 -- BC4J Fix
2516 --x_FREIGHT_CHARGE_tbl(i).freight_charge_id := NULL;
2517 ASO_FREIGHT_CHARGES_PKG.Insert_Row(
2518 px_FREIGHT_CHARGE_ID => x_FREIGHT_CHARGE_tbl(i).freight_charge_id,
2519 p_CREATION_DATE => SYSDATE,
2520 p_CREATED_BY => G_USER_ID,
2521 p_LAST_UPDATE_DATE => l_sysdate,
2522 p_LAST_UPDATED_BY => G_USER_ID,
2523 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2524 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
2525 p_PROGRAM_APPLICATION_ID => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
2526 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
2527 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
2528 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.Quote_SHIPMENT_ID,
2529 p_FREIGHT_CHARGE_TYPE_ID => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
2530 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
2531 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
2532 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
2533 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
2534 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
2535 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
2536 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
2537 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
2538 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
2539 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
2540 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
2541 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
2542 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
2543 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
2544 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
2545 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
2546 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
2547 ELSIF l_Freight_Charge_Tbl(i).operation_code = 'UPDATE' THEN
2548 l_sysdate := sysdate;
2549 l_freight_charge_rec := l_freight_charge_tbl(i);
2550 x_FREIGHT_CHARGE_tbl(i).last_update_date := l_sysdate;
2551 ASO_FREIGHT_CHARGES_PKG.Update_Row(
2552 p_FREIGHT_CHARGE_ID => l_freight_charge_rec.freight_charge_id,
2553 p_CREATION_DATE => l_freight_charge_rec.creation_date,
2554 p_CREATED_BY => G_USER_ID,
2555 p_LAST_UPDATE_DATE => l_sysdate,
2556 p_LAST_UPDATED_BY => G_USER_ID,
2557 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2558 p_REQUEST_ID => l_freight_charge_rec.REQUEST_ID,
2559 p_PROGRAM_APPLICATION_ID => l_freight_charge_rec.PROGRAM_APPLICATION_ID,
2560 p_PROGRAM_ID => l_freight_charge_rec.PROGRAM_ID,
2561 p_PROGRAM_UPDATE_DATE => l_freight_charge_rec.PROGRAM_UPDATE_DATE,
2562 p_QUOTE_SHIPMENT_ID => l_freight_charge_rec.Quote_SHIPMENT_ID,
2563 p_FREIGHT_CHARGE_TYPE_ID => l_freight_charge_rec.FREIGHT_CHARGE_TYPE_ID,
2564 p_CHARGE_AMOUNT => l_freight_charge_rec.CHARGE_AMOUNT,
2565 p_ATTRIBUTE_CATEGORY => l_freight_charge_rec.ATTRIBUTE_CATEGORY,
2566 p_ATTRIBUTE1 => l_freight_charge_rec.ATTRIBUTE1,
2567 p_ATTRIBUTE2 => l_freight_charge_rec.ATTRIBUTE2,
2568 p_ATTRIBUTE3 => l_freight_charge_rec.ATTRIBUTE3,
2569 p_ATTRIBUTE4 => l_freight_charge_rec.ATTRIBUTE4,
2570 p_ATTRIBUTE5 => l_freight_charge_rec.ATTRIBUTE5,
2571 p_ATTRIBUTE6 => l_freight_charge_rec.ATTRIBUTE6,
2572 p_ATTRIBUTE7 => l_freight_charge_rec.ATTRIBUTE7,
2573 p_ATTRIBUTE8 => l_freight_charge_rec.ATTRIBUTE8,
2574 p_ATTRIBUTE9 => l_freight_charge_rec.ATTRIBUTE9,
2575 p_ATTRIBUTE10 => l_freight_charge_rec.ATTRIBUTE10,
2576 p_ATTRIBUTE11 => l_freight_charge_rec.ATTRIBUTE11,
2577 p_ATTRIBUTE12 => l_freight_charge_rec.ATTRIBUTE12,
2578 p_ATTRIBUTE13 => l_freight_charge_rec.ATTRIBUTE13,
2579 p_ATTRIBUTE14 => l_freight_charge_rec.ATTRIBUTE14,
2580 p_ATTRIBUTE15 => l_freight_charge_rec.ATTRIBUTE15);
2581 ELSIF l_Freight_Charge_Tbl(i).operation_code = 'DELETE' THEN
2582 ASO_FREIGHT_CHARGES_PKG.Delete_Row(
2583 p_FREIGHT_CHARGE_ID => l_freight_charge_tbl(i).freight_charge_id);
2584 END IF;
2585 END LOOP;
2586
2587 x_tax_detail_tbl := p_tax_detail_tbl;
2588 FOR i IN 1..P_Tax_Detail_Tbl.count LOOP
2589 IF P_Tax_Detail_Tbl(i).operation_code = 'CREATE' THEN
2590 l_sysdate := sysdate;
2591 l_tax_detail_rec := x_tax_detail_tbl(i);
2592 -- BC4J Fix
2593 --x_tax_detail_tbl(i).TAX_DETAIL_ID := NULL;
2594 x_tax_detail_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2595 ASO_TAX_DETAILS_PKG.Insert_Row(
2596 px_TAX_DETAIL_ID => x_tax_detail_tbl(i).TAX_DETAIL_ID,
2597 p_CREATION_DATE => SYSDATE,
2598 p_CREATED_BY => G_USER_ID,
2599 p_LAST_UPDATE_DATE => l_sysdate,
2600 p_LAST_UPDATED_BY => G_USER_ID,
2601 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2602 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
2603 p_PROGRAM_APPLICATION_ID => l_tax_detail_rec.PROGRAM_APPLICATION_ID,
2604 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
2605 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
2606 p_QUOTE_HEADER_ID => l_qte_HEADER_ID,
2607 p_QUOTE_LINE_ID => NULL,
2608 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.quote_shipment_id,
2609 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
2610 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
2611 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
2612 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
2613 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
2614 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
2615 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
2616 p_TAX_EXEMPT_REASON_CODE => l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
2617 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
2618 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
2619 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
2620 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
2621 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
2622 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
2623 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
2624 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
2625 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
2626 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
2627 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
2628 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
2629 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
2630 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
2631 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
2632 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
2633 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
2634 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
2635 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
2636 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
2637 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
2638 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
2639 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
2640 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
2641 );
2642
2643 ELSIF P_Tax_Detail_Tbl(i).operation_code = 'UPDATE' THEN
2644 l_sysdate := sysdate;
2645 l_tax_detail_rec := x_tax_detail_tbl(i);
2646 x_tax_detail_tbl(i).LAST_UPDATE_DATE := l_sysdate;
2647 ASO_TAX_DETAILS_PKG.update_Row(
2648 p_TAX_DETAIL_ID => l_tax_detail_rec.TAX_DETAIL_ID,
2649 p_CREATION_DATE => l_tax_detail_rec.creation_date,
2650 p_CREATED_BY => G_USER_ID,
2651 p_LAST_UPDATE_DATE => l_sysdate,
2652 p_LAST_UPDATED_BY => G_USER_ID,
2653 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2654 p_REQUEST_ID => l_tax_detail_rec.REQUEST_ID,
2655 p_PROGRAM_APPLICATION_ID => l_tax_detail_rec.PROGRAM_APPLICATION_ID,
2656 p_PROGRAM_ID => l_tax_detail_rec.PROGRAM_ID,
2657 p_PROGRAM_UPDATE_DATE => l_tax_detail_rec.PROGRAM_UPDATE_DATE,
2658 p_QUOTE_HEADER_ID => l_Qte_HEADER_ID,
2659 p_QUOTE_LINE_ID => NULL,
2660 p_QUOTE_SHIPMENT_ID => l_tax_detail_rec.quote_shipment_id,
2661 p_ORIG_TAX_CODE => l_tax_detail_rec.ORIG_TAX_CODE,
2662 p_TAX_CODE => l_tax_detail_rec.TAX_CODE,
2663 p_TAX_RATE => l_tax_detail_rec.TAX_RATE,
2664 p_TAX_DATE => l_tax_detail_rec.TAX_DATE,
2665 p_TAX_AMOUNT => l_tax_detail_rec.TAX_AMOUNT,
2666 p_TAX_EXEMPT_FLAG => l_tax_detail_rec.TAX_EXEMPT_FLAG,
2667 p_TAX_EXEMPT_NUMBER => l_tax_detail_rec.TAX_EXEMPT_NUMBER,
2668 p_TAX_EXEMPT_REASON_CODE => l_tax_detail_rec.TAX_EXEMPT_REASON_CODE,
2669 p_ATTRIBUTE_CATEGORY => l_tax_detail_rec.ATTRIBUTE_CATEGORY,
2670 p_ATTRIBUTE1 => l_tax_detail_rec.ATTRIBUTE1,
2671 p_ATTRIBUTE2 => l_tax_detail_rec.ATTRIBUTE2,
2672 p_ATTRIBUTE3 => l_tax_detail_rec.ATTRIBUTE3,
2673 p_ATTRIBUTE4 => l_tax_detail_rec.ATTRIBUTE4,
2674 p_ATTRIBUTE5 => l_tax_detail_rec.ATTRIBUTE5,
2675 p_ATTRIBUTE6 => l_tax_detail_rec.ATTRIBUTE6,
2676 p_ATTRIBUTE7 => l_tax_detail_rec.ATTRIBUTE7,
2677 p_ATTRIBUTE8 => l_tax_detail_rec.ATTRIBUTE8,
2678 p_ATTRIBUTE9 => l_tax_detail_rec.ATTRIBUTE9,
2679 p_ATTRIBUTE10 => l_tax_detail_rec.ATTRIBUTE10,
2680 p_ATTRIBUTE11 => l_tax_detail_rec.ATTRIBUTE11,
2681 p_ATTRIBUTE12 => l_tax_detail_rec.ATTRIBUTE12,
2682 p_ATTRIBUTE13 => l_tax_detail_rec.ATTRIBUTE13,
2683 p_ATTRIBUTE14 => l_tax_detail_rec.ATTRIBUTE14,
2684 p_ATTRIBUTE15 => l_tax_detail_rec.ATTRIBUTE15,
2685 p_ATTRIBUTE16 => l_tax_detail_rec.ATTRIBUTE16,
2686 p_ATTRIBUTE17 => l_tax_detail_rec.ATTRIBUTE17,
2687 p_ATTRIBUTE18 => l_tax_detail_rec.ATTRIBUTE18,
2688 p_ATTRIBUTE19 => l_tax_detail_rec.ATTRIBUTE19,
2689 p_ATTRIBUTE20 => l_tax_detail_rec.ATTRIBUTE20,
2690 p_TAX_INCLUSIVE_FLAG => l_tax_detail_rec.TAX_INCLUSIVE_FLAG,
2691 p_OBJECT_VERSION_NUMBER => l_tax_detail_rec.OBJECT_VERSION_NUMBER,
2692 p_TAX_RATE_ID => l_tax_detail_rec.TAX_RATE_ID
2693 );
2694 ELSIF P_Tax_Detail_Tbl(i).operation_code = 'DELETE' THEN
2695 ASO_TAX_DETAILS_PKG.Delete_Row(
2696 p_TAX_DETAIL_ID => P_Tax_Detail_Tbl(i).TAX_DETAIL_ID);
2697 END IF;
2698 END LOOP;
2699
2700
2701 -- check for duplicate promotions, see bug 4521799
2702 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2703 aso_debug_pub.add('Before calling Validate_Promotion price_attr_tbl.count: '|| p_price_attributes_tbl.count, 1, 'Y');
2704 END IF;
2705
2706 ASO_VALIDATE_PVT.Validate_Promotion (
2707 P_Api_Version_Number => 1.0,
2708 P_Init_Msg_List => FND_API.G_FALSE,
2709 P_Commit => FND_API.G_FALSE,
2710 p_price_attr_tbl => p_price_attributes_tbl,
2711 x_price_attr_tbl => lx_price_attr_tbl,
2712 x_return_status => x_return_status,
2713 x_msg_count => x_msg_count,
2714 x_msg_data => x_msg_data);
2715
2716 IF aso_debug_pub.g_debug_flag = 'Y' THEN
2717 aso_debug_pub.add('after calling Validate_Promotion ', 1, 'Y');
2718 aso_debug_pub.add('Validate_Promotion Return Status: '||x_return_status, 1, 'Y');
2719 END IF;
2720
2721 if x_return_status <> fnd_api.g_ret_sts_success then
2722 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2723 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2724 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
2725 RAISE FND_API.G_EXC_ERROR;
2726 ELSE
2727 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2728 END IF;
2729 end if;
2730
2731
2732 -- end of check for duplicate promotions
2733
2734
2735
2736 -- Added to support the pricing attributes at header level
2737
2738
2739 FOR i in 1..p_Price_Attributes_Tbl.count LOOP
2740
2741 l_price_attributes_rec := p_Price_Attributes_Tbl(i);
2742 -- l_price_attributes_rec.quote_line_id := p_qte_line_rec.quote_line_id;
2743 x_price_attributes_tbl(i) := l_price_attributes_rec;
2744
2745 IF l_price_attributes_rec.operation_code = 'CREATE' THEN
2746
2747 l_price_attributes_rec.quote_header_id := l_qte_header_id;
2748 -- BC4J Fix
2749 --x_price_attributes_tbl(1).price_attribute_id := NULL;
2750
2751 ASO_PRICE_ATTRIBUTES_PKG.Insert_Row(
2752 px_PRICE_ATTRIBUTE_ID => x_price_attributes_tbl(i).price_attribute_id,
2753 p_CREATION_DATE => SYSDATE,
2754 p_CREATED_BY => G_USER_ID,
2755 p_LAST_UPDATE_DATE => SYSDATE,
2756 p_LAST_UPDATED_BY => G_USER_ID,
2757 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2758 p_REQUEST_ID => l_price_attributes_rec.REQUEST_ID,
2759 p_PROGRAM_APPLICATION_ID => l_price_attributes_rec.PROGRAM_APPLICATION_ID,
2760 p_PROGRAM_ID => l_price_attributes_rec.PROGRAM_ID,
2761 p_PROGRAM_UPDATE_DATE => l_price_attributes_rec.PROGRAM_UPDATE_DATE,
2762 p_QUOTE_HEADER_ID => l_price_attributes_rec.QUOTE_HEADER_ID,
2763 p_QUOTE_LINE_ID => null,
2764 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
2765 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
2766 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
2767 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
2768 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
2769 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
2770 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
2771 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
2772 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
2773 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
2774 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
2775 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
2776 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
2777 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
2778 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
2779 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
2780 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
2781 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
2782 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
2783 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
2784 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
2785 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
2786 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
2787 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
2788 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
2789 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
2790 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
2791 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
2792 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
2793 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
2794 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
2795 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
2796 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
2797 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
2798 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
2799 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
2800 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
2801 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
2802 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
2803 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
2804 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
2805 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
2806 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
2807 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
2808 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
2809 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
2810 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
2811 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
2812 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
2813 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
2814 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
2815 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
2816 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
2817 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
2818 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
2819 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
2820 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
2821 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
2822 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
2823 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
2824 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
2825 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
2826 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
2827 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
2828 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
2829 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
2830 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
2831 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
2832 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
2833 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
2834 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
2835 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
2836 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
2837 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
2838 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
2839 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
2840 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
2841 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
2842 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
2843 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
2844 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
2845 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
2846 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
2847 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
2848 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
2849 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
2850 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
2851 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
2852 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
2853 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
2854 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
2855 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
2856 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
2857 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
2858 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
2859 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
2860 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
2861 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
2862 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
2863 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
2864 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
2865 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
2866 p_CONTEXT => l_price_attributes_rec.CONTEXT,
2867 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
2868 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
2869 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
2870 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
2871 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
2872 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
2873 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
2874 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
2875 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
2876 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
2877 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
2878 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
2879 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
2880 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
2881 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
2882 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
2883 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
2884 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
2885 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
2886 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
2887 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
2888 );
2889
2890
2891 ELSIF l_price_attributes_rec.operation_code = 'UPDATE' THEN
2892
2893 ASO_PRICE_ATTRIBUTES_PKG.Update_Row(
2894 p_PRICE_ATTRIBUTE_ID => l_price_attributes_rec.price_attribute_id,
2895 p_CREATION_DATE => l_price_attributes_rec.creation_date,
2896 p_CREATED_BY => G_USER_ID,
2897 p_LAST_UPDATE_DATE => SYSDATE,
2898 p_LAST_UPDATED_BY => G_USER_ID,
2899 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
2900 p_REQUEST_ID => l_price_attributes_rec.REQUEST_ID,
2901 p_PROGRAM_APPLICATION_ID => l_price_attributes_rec.PROGRAM_APPLICATION_ID,
2902 p_PROGRAM_ID => l_price_attributes_rec.PROGRAM_ID,
2903 p_PROGRAM_UPDATE_DATE => l_price_attributes_rec.PROGRAM_UPDATE_DATE,
2904 p_QUOTE_HEADER_ID => l_price_attributes_rec.QUOTE_HEADER_ID,
2905 p_QUOTE_LINE_ID => l_price_attributes_rec.quote_line_id,
2906 p_FLEX_TITLE => l_price_attributes_rec.flex_title,
2907 p_PRICING_CONTEXT => l_price_attributes_rec.pricing_context,
2908 p_PRICING_ATTRIBUTE1 => l_price_attributes_rec.PRICING_ATTRIBUTE1,
2909 p_PRICING_ATTRIBUTE2 => l_price_attributes_rec.PRICING_ATTRIBUTE2,
2910 p_PRICING_ATTRIBUTE3 => l_price_attributes_rec.PRICING_ATTRIBUTE3,
2911 p_PRICING_ATTRIBUTE4 => l_price_attributes_rec.PRICING_ATTRIBUTE4,
2912 p_PRICING_ATTRIBUTE5 => l_price_attributes_rec.PRICING_ATTRIBUTE5,
2913 p_PRICING_ATTRIBUTE6 => l_price_attributes_rec.PRICING_ATTRIBUTE6,
2914 p_PRICING_ATTRIBUTE7 => l_price_attributes_rec.PRICING_ATTRIBUTE7,
2915 p_PRICING_ATTRIBUTE8 => l_price_attributes_rec.PRICING_ATTRIBUTE8,
2916 p_PRICING_ATTRIBUTE9 => l_price_attributes_rec.PRICING_ATTRIBUTE9,
2917 p_PRICING_ATTRIBUTE10 => l_price_attributes_rec.PRICING_ATTRIBUTE10,
2918 p_PRICING_ATTRIBUTE11 => l_price_attributes_rec.PRICING_ATTRIBUTE11,
2919 p_PRICING_ATTRIBUTE12 => l_price_attributes_rec.PRICING_ATTRIBUTE12,
2920 p_PRICING_ATTRIBUTE13 => l_price_attributes_rec.PRICING_ATTRIBUTE13,
2921 p_PRICING_ATTRIBUTE14 => l_price_attributes_rec.PRICING_ATTRIBUTE14,
2922 p_PRICING_ATTRIBUTE15 => l_price_attributes_rec.PRICING_ATTRIBUTE15,
2923 p_PRICING_ATTRIBUTE16 => l_price_attributes_rec.PRICING_ATTRIBUTE16,
2924 p_PRICING_ATTRIBUTE17 => l_price_attributes_rec.PRICING_ATTRIBUTE17,
2925 p_PRICING_ATTRIBUTE18 => l_price_attributes_rec.PRICING_ATTRIBUTE18,
2926 p_PRICING_ATTRIBUTE19 => l_price_attributes_rec.PRICING_ATTRIBUTE19,
2927 p_PRICING_ATTRIBUTE20 => l_price_attributes_rec.PRICING_ATTRIBUTE20,
2928 p_PRICING_ATTRIBUTE21 => l_price_attributes_rec.PRICING_ATTRIBUTE21,
2929 p_PRICING_ATTRIBUTE22 => l_price_attributes_rec.PRICING_ATTRIBUTE22,
2930 p_PRICING_ATTRIBUTE23 => l_price_attributes_rec.PRICING_ATTRIBUTE23,
2931 p_PRICING_ATTRIBUTE24 => l_price_attributes_rec.PRICING_ATTRIBUTE24,
2932 p_PRICING_ATTRIBUTE25 => l_price_attributes_rec.PRICING_ATTRIBUTE25,
2933 p_PRICING_ATTRIBUTE26 => l_price_attributes_rec.PRICING_ATTRIBUTE26,
2934 p_PRICING_ATTRIBUTE27 => l_price_attributes_rec.PRICING_ATTRIBUTE27,
2935 p_PRICING_ATTRIBUTE28 => l_price_attributes_rec.PRICING_ATTRIBUTE28,
2936 p_PRICING_ATTRIBUTE29 => l_price_attributes_rec.PRICING_ATTRIBUTE29,
2937 p_PRICING_ATTRIBUTE30 => l_price_attributes_rec.PRICING_ATTRIBUTE30,
2938 p_PRICING_ATTRIBUTE31 => l_price_attributes_rec.PRICING_ATTRIBUTE31,
2939 p_PRICING_ATTRIBUTE32 => l_price_attributes_rec.PRICING_ATTRIBUTE32,
2940 p_PRICING_ATTRIBUTE33 => l_price_attributes_rec.PRICING_ATTRIBUTE33,
2941 p_PRICING_ATTRIBUTE34 => l_price_attributes_rec.PRICING_ATTRIBUTE34,
2942 p_PRICING_ATTRIBUTE35 => l_price_attributes_rec.PRICING_ATTRIBUTE35,
2943 p_PRICING_ATTRIBUTE36 => l_price_attributes_rec.PRICING_ATTRIBUTE36,
2944 p_PRICING_ATTRIBUTE37 => l_price_attributes_rec.PRICING_ATTRIBUTE37,
2945 p_PRICING_ATTRIBUTE38 => l_price_attributes_rec.PRICING_ATTRIBUTE38,
2946 p_PRICING_ATTRIBUTE39 => l_price_attributes_rec.PRICING_ATTRIBUTE39,
2947 p_PRICING_ATTRIBUTE40 => l_price_attributes_rec.PRICING_ATTRIBUTE40,
2948 p_PRICING_ATTRIBUTE41 => l_price_attributes_rec.PRICING_ATTRIBUTE41,
2949 p_PRICING_ATTRIBUTE42 => l_price_attributes_rec.PRICING_ATTRIBUTE42,
2950 p_PRICING_ATTRIBUTE43 => l_price_attributes_rec.PRICING_ATTRIBUTE43,
2951 p_PRICING_ATTRIBUTE44 => l_price_attributes_rec.PRICING_ATTRIBUTE44,
2952 p_PRICING_ATTRIBUTE45 => l_price_attributes_rec.PRICING_ATTRIBUTE45,
2953 p_PRICING_ATTRIBUTE46 => l_price_attributes_rec.PRICING_ATTRIBUTE46,
2954 p_PRICING_ATTRIBUTE47 => l_price_attributes_rec.PRICING_ATTRIBUTE47,
2955 p_PRICING_ATTRIBUTE48 => l_price_attributes_rec.PRICING_ATTRIBUTE48,
2956 p_PRICING_ATTRIBUTE49 => l_price_attributes_rec.PRICING_ATTRIBUTE49,
2957 p_PRICING_ATTRIBUTE50 => l_price_attributes_rec.PRICING_ATTRIBUTE50,
2958 p_PRICING_ATTRIBUTE51 => l_price_attributes_rec.PRICING_ATTRIBUTE51,
2959 p_PRICING_ATTRIBUTE52 => l_price_attributes_rec.PRICING_ATTRIBUTE52,
2960 p_PRICING_ATTRIBUTE53 => l_price_attributes_rec.PRICING_ATTRIBUTE53,
2961 p_PRICING_ATTRIBUTE54 => l_price_attributes_rec.PRICING_ATTRIBUTE54,
2962 p_PRICING_ATTRIBUTE55 => l_price_attributes_rec.PRICING_ATTRIBUTE55,
2963 p_PRICING_ATTRIBUTE56 => l_price_attributes_rec.PRICING_ATTRIBUTE56,
2964 p_PRICING_ATTRIBUTE57 => l_price_attributes_rec.PRICING_ATTRIBUTE57,
2965 p_PRICING_ATTRIBUTE58 => l_price_attributes_rec.PRICING_ATTRIBUTE58,
2966 p_PRICING_ATTRIBUTE59 => l_price_attributes_rec.PRICING_ATTRIBUTE59,
2967 p_PRICING_ATTRIBUTE60 => l_price_attributes_rec.PRICING_ATTRIBUTE60,
2968 p_PRICING_ATTRIBUTE61 => l_price_attributes_rec.PRICING_ATTRIBUTE61,
2969 p_PRICING_ATTRIBUTE62 => l_price_attributes_rec.PRICING_ATTRIBUTE62,
2970 p_PRICING_ATTRIBUTE63 => l_price_attributes_rec.PRICING_ATTRIBUTE63,
2971 p_PRICING_ATTRIBUTE64 => l_price_attributes_rec.PRICING_ATTRIBUTE64,
2972 p_PRICING_ATTRIBUTE65 => l_price_attributes_rec.PRICING_ATTRIBUTE65,
2973 p_PRICING_ATTRIBUTE66 => l_price_attributes_rec.PRICING_ATTRIBUTE66,
2974 p_PRICING_ATTRIBUTE67 => l_price_attributes_rec.PRICING_ATTRIBUTE67,
2975 p_PRICING_ATTRIBUTE68 => l_price_attributes_rec.PRICING_ATTRIBUTE68,
2976 p_PRICING_ATTRIBUTE69 => l_price_attributes_rec.PRICING_ATTRIBUTE69,
2977 p_PRICING_ATTRIBUTE70 => l_price_attributes_rec.PRICING_ATTRIBUTE70,
2978 p_PRICING_ATTRIBUTE71 => l_price_attributes_rec.PRICING_ATTRIBUTE71,
2979 p_PRICING_ATTRIBUTE72 => l_price_attributes_rec.PRICING_ATTRIBUTE72,
2980 p_PRICING_ATTRIBUTE73 => l_price_attributes_rec.PRICING_ATTRIBUTE73,
2981 p_PRICING_ATTRIBUTE74 => l_price_attributes_rec.PRICING_ATTRIBUTE74,
2982 p_PRICING_ATTRIBUTE75 => l_price_attributes_rec.PRICING_ATTRIBUTE75,
2983 p_PRICING_ATTRIBUTE76 => l_price_attributes_rec.PRICING_ATTRIBUTE76,
2984 p_PRICING_ATTRIBUTE77 => l_price_attributes_rec.PRICING_ATTRIBUTE77,
2985 p_PRICING_ATTRIBUTE78 => l_price_attributes_rec.PRICING_ATTRIBUTE78,
2986 p_PRICING_ATTRIBUTE79 => l_price_attributes_rec.PRICING_ATTRIBUTE79,
2987 p_PRICING_ATTRIBUTE80 => l_price_attributes_rec.PRICING_ATTRIBUTE80,
2988 p_PRICING_ATTRIBUTE81 => l_price_attributes_rec.PRICING_ATTRIBUTE81,
2989 p_PRICING_ATTRIBUTE82 => l_price_attributes_rec.PRICING_ATTRIBUTE82,
2990 p_PRICING_ATTRIBUTE83 => l_price_attributes_rec.PRICING_ATTRIBUTE83,
2991 p_PRICING_ATTRIBUTE84 => l_price_attributes_rec.PRICING_ATTRIBUTE84,
2992 p_PRICING_ATTRIBUTE85 => l_price_attributes_rec.PRICING_ATTRIBUTE85,
2993 p_PRICING_ATTRIBUTE86 => l_price_attributes_rec.PRICING_ATTRIBUTE86,
2994 p_PRICING_ATTRIBUTE87 => l_price_attributes_rec.PRICING_ATTRIBUTE87,
2995 p_PRICING_ATTRIBUTE88 => l_price_attributes_rec.PRICING_ATTRIBUTE88,
2996 p_PRICING_ATTRIBUTE89 => l_price_attributes_rec.PRICING_ATTRIBUTE89,
2997 p_PRICING_ATTRIBUTE90 => l_price_attributes_rec.PRICING_ATTRIBUTE90,
2998 p_PRICING_ATTRIBUTE91 => l_price_attributes_rec.PRICING_ATTRIBUTE91,
2999 p_PRICING_ATTRIBUTE92 => l_price_attributes_rec.PRICING_ATTRIBUTE92,
3000 p_PRICING_ATTRIBUTE93 => l_price_attributes_rec.PRICING_ATTRIBUTE93,
3001 p_PRICING_ATTRIBUTE94 => l_price_attributes_rec.PRICING_ATTRIBUTE94,
3002 p_PRICING_ATTRIBUTE95 => l_price_attributes_rec.PRICING_ATTRIBUTE95,
3003 p_PRICING_ATTRIBUTE96 => l_price_attributes_rec.PRICING_ATTRIBUTE96,
3004 p_PRICING_ATTRIBUTE97 => l_price_attributes_rec.PRICING_ATTRIBUTE97,
3005 p_PRICING_ATTRIBUTE98 => l_price_attributes_rec.PRICING_ATTRIBUTE98,
3006 p_PRICING_ATTRIBUTE99 => l_price_attributes_rec.PRICING_ATTRIBUTE99,
3007 p_PRICING_ATTRIBUTE100 => l_price_attributes_rec.PRICING_ATTRIBUTE100,
3008 p_CONTEXT => l_price_attributes_rec.CONTEXT,
3009 p_ATTRIBUTE1 => l_price_attributes_rec.ATTRIBUTE1,
3010 p_ATTRIBUTE2 => l_price_attributes_rec.ATTRIBUTE2,
3011 p_ATTRIBUTE3 => l_price_attributes_rec.ATTRIBUTE3,
3012 p_ATTRIBUTE4 => l_price_attributes_rec.ATTRIBUTE4,
3013 p_ATTRIBUTE5 => l_price_attributes_rec.ATTRIBUTE5,
3014 p_ATTRIBUTE6 => l_price_attributes_rec.ATTRIBUTE6,
3015 p_ATTRIBUTE7 => l_price_attributes_rec.ATTRIBUTE7,
3016 p_ATTRIBUTE8 => l_price_attributes_rec.ATTRIBUTE8,
3017 p_ATTRIBUTE9 => l_price_attributes_rec.ATTRIBUTE9,
3018 p_ATTRIBUTE10 => l_price_attributes_rec.ATTRIBUTE10,
3019 p_ATTRIBUTE11 => l_price_attributes_rec.ATTRIBUTE11,
3020 p_ATTRIBUTE12 => l_price_attributes_rec.ATTRIBUTE12,
3021 p_ATTRIBUTE13 => l_price_attributes_rec.ATTRIBUTE13,
3022 p_ATTRIBUTE14 => l_price_attributes_rec.ATTRIBUTE14,
3023 p_ATTRIBUTE15 => l_price_attributes_rec.ATTRIBUTE15,
3024 p_ATTRIBUTE16 => l_price_attributes_rec.ATTRIBUTE16,
3025 p_ATTRIBUTE17 => l_price_attributes_rec.ATTRIBUTE17,
3026 p_ATTRIBUTE18 => l_price_attributes_rec.ATTRIBUTE18,
3027 p_ATTRIBUTE19 => l_price_attributes_rec.ATTRIBUTE19,
3028 p_ATTRIBUTE20 => l_price_attributes_rec.ATTRIBUTE20,
3029 p_OBJECT_VERSION_NUMBER => l_price_attributes_rec.OBJECT_VERSION_NUMBER
3030 );
3031
3032 /* Commented the following code to call new api aso_pricing_int.delete_promotion 07/22/02
3033
3034 ELSIF l_price_attributes_rec.operation_code = 'DELETE' THEN
3035 ASO_PRICE_ATTRIBUTES_PKG.Delete_Row(
3036 p_PRICE_ATTRIBUTE_ID => l_price_attributes_rec.price_attribute_id);
3037
3038 */
3039
3040 END IF;
3041
3042 END LOOP;
3043
3044 -- New code to call aso_pricing_int.delete_promotion 07/22/02
3045
3046 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3047 aso_debug_pub.add('Update_Rows: p_Price_Attributes_Tbl.count: '||p_Price_Attributes_Tbl.count,1, 'N');
3048 aso_debug_pub.add('Update_Rows: Before call to aso_pricing_int.Delete_Promotion',1, 'N');
3049 END IF;
3050
3051 IF p_Price_Attributes_Tbl.count > 0 THEN
3052
3053 aso_pricing_int.Delete_Promotion (
3054 P_Api_Version_Number => 1.0,
3055 P_Init_Msg_List => FND_API.G_FALSE,
3056 P_Commit => FND_API.G_FALSE,
3057 p_price_attr_tbl => p_Price_Attributes_Tbl,
3058 x_return_status => x_return_status,
3059 x_msg_count => x_msg_count,
3060 x_msg_data => x_msg_data
3061 );
3062
3063 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3064 aso_debug_pub.add('Update_Rows: After call to Delete_Promotion: x_return_status: '||x_return_status,1, 'N');
3065 END IF;
3066
3067 END IF;
3068
3069 -- End of New code to call aso_pricing_int.delete_promotion 07/22/02
3070
3071
3072 -- sales credits
3073 FOR i in 1..p_Sales_Credit_Tbl.count LOOP
3074
3075 l_Sales_Credit_rec := p_sales_credit_tbl(i);
3076 x_sales_credit_tbl(i) := l_sales_credit_rec;
3077
3078 IF l_sales_credit_rec.operation_code = 'CREATE' THEN
3079 l_sales_credit_rec.quote_header_id := l_qte_header_id;
3080 -- BC4J Fix
3081 --x_sales_credit_tbl(i).sales_credit_id := NULL;
3082 ASO_SALES_CREDITS_PKG.Insert_Row(
3083 p_CREATION_DATE => SYSDATE,
3084 p_CREATED_BY => G_USER_ID,
3085 p_LAST_UPDATED_BY => G_USER_ID,
3086 p_LAST_UPDATE_DATE => SYSDATE,
3087 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3088 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
3089 p_PROGRAM_APPLICATION_ID => l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
3090 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
3091 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
3092 px_SALES_CREDIT_ID => x_SALES_CREDIT_tbl(i).SALES_CREDIT_ID,
3093 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
3094 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
3095 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
3096 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
3097 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
3098 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
3099 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
3100 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
3101 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
3102 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
3103 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
3104 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
3105 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
3106 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
3107 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
3108 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
3109 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
3110 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
3111 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
3112 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
3113 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
3114 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
3115 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
3116 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
3117 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
3118 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
3119 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
3120 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
3121 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
3122 p_SYSTEM_ASSIGNED_FLAG => 'N',
3123 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
3124 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
3125
3126 ELSIF l_sales_credit_rec.operation_code = 'UPDATE' THEN
3127 ASO_SALES_CREDITS_PKG.Update_Row(
3128 p_CREATION_DATE => l_sales_CREDIT_rec.creation_date,
3129 p_CREATED_BY => G_USER_ID,
3130 p_LAST_UPDATED_BY => G_USER_ID,
3131 p_LAST_UPDATE_DATE => SYSDATE,
3132 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3133 p_REQUEST_ID => l_sales_CREDIT_rec.REQUEST_ID,
3134 p_PROGRAM_APPLICATION_ID=> l_sales_CREDIT_rec.PROGRAM_APPLICATION_ID,
3135 p_PROGRAM_ID => l_sales_CREDIT_rec.PROGRAM_ID,
3136 p_PROGRAM_UPDATE_DATE => l_sales_CREDIT_rec.PROGRAM_UPDATE_DATE,
3137 p_SALES_CREDIT_ID => l_SALES_CREDIT_rec.SALES_CREDIT_ID,
3138 p_QUOTE_HEADER_ID => l_sales_CREDIT_rec.QUOTE_HEADER_ID,
3139 p_QUOTE_LINE_ID => l_sales_CREDIT_rec.QUOTE_LINE_ID,
3140 p_PERCENT => l_sales_CREDIT_rec.PERCENT,
3141 p_RESOURCE_ID => l_sales_CREDIT_rec.RESOURCE_ID,
3142 p_RESOURCE_GROUP_ID => l_sales_CREDIT_rec.RESOURCE_GROUP_ID,
3143 p_EMPLOYEE_PERSON_ID => l_sales_CREDIT_rec.EMPLOYEE_PERSON_ID,
3144 p_SALES_CREDIT_TYPE_ID => l_sales_CREDIT_rec.SALES_CREDIT_TYPE_ID,
3145 -- p_SECURITY_GROUP_ID => l_sales_CREDIT_rec.SECURITY_GROUP_ID,
3146 p_ATTRIBUTE_CATEGORY_CODE => l_sales_CREDIT_rec.ATTRIBUTE_CATEGORY_CODE,
3147 p_ATTRIBUTE1 => l_sales_CREDIT_rec.ATTRIBUTE1,
3148 p_ATTRIBUTE2 => l_sales_CREDIT_rec.ATTRIBUTE2,
3149 p_ATTRIBUTE3 => l_sales_CREDIT_rec.ATTRIBUTE3,
3150 p_ATTRIBUTE4 => l_sales_CREDIT_rec.ATTRIBUTE4,
3151 p_ATTRIBUTE5 => l_sales_CREDIT_rec.ATTRIBUTE5,
3152 p_ATTRIBUTE6 => l_sales_CREDIT_rec.ATTRIBUTE6,
3153 p_ATTRIBUTE7 => l_sales_CREDIT_rec.ATTRIBUTE7,
3154 p_ATTRIBUTE8 => l_sales_CREDIT_rec.ATTRIBUTE8,
3155 p_ATTRIBUTE9 => l_sales_CREDIT_rec.ATTRIBUTE9,
3156 p_ATTRIBUTE10 => l_sales_CREDIT_rec.ATTRIBUTE10,
3157 p_ATTRIBUTE11 => l_sales_CREDIT_rec.ATTRIBUTE11,
3158 p_ATTRIBUTE12 => l_sales_CREDIT_rec.ATTRIBUTE12,
3159 p_ATTRIBUTE13 => l_sales_CREDIT_rec.ATTRIBUTE13,
3160 p_ATTRIBUTE14 => l_sales_CREDIT_rec.ATTRIBUTE14,
3161 p_ATTRIBUTE15 => l_sales_CREDIT_rec.ATTRIBUTE15,
3162 p_ATTRIBUTE16 => l_sales_CREDIT_rec.ATTRIBUTE16,
3163 p_ATTRIBUTE17 => l_sales_CREDIT_rec.ATTRIBUTE17,
3164 p_ATTRIBUTE18 => l_sales_CREDIT_rec.ATTRIBUTE18,
3165 p_ATTRIBUTE19 => l_sales_CREDIT_rec.ATTRIBUTE19,
3166 p_ATTRIBUTE20 => l_sales_CREDIT_rec.ATTRIBUTE20,
3167 p_SYSTEM_ASSIGNED_FLAG => 'N',
3168 p_CREDIT_RULE_ID => l_sales_CREDIT_rec.CREDIT_RULE_ID,
3169 p_OBJECT_VERSION_NUMBER => l_sales_CREDIT_rec.OBJECT_VERSION_NUMBER);
3170 ELSIF l_sales_credit_rec.operation_code = 'DELETE' THEN
3171 ASO_SALES_CREDITS_PKG.Delete_Row(
3172 p_SALES_CREDIT_ID => l_SALES_CREDIT_rec.SALES_CREDIT_ID);
3173
3174 END IF;
3175 END LOOP;
3176 -- Quote Party
3177 FOR i IN 1..p_quote_party_Tbl.count LOOP
3178 l_quote_party_rec := p_quote_party_tbl(i);
3179 x_quote_party_tbl(i) := l_quote_party_rec;
3180
3181 IF l_quote_party_rec.operation_code = 'CREATE' THEN
3182 l_quote_party_rec.quote_header_id := l_qte_header_id;
3183 -- BC4J Fix
3184 --x_quote_party_tbl(i).QUOTE_PARTY_ID := NULL;
3185
3186 ASO_QUOTE_PARTIES_PKG.Insert_Row(
3187 px_QUOTE_PARTY_ID => x_quote_party_tbl(i).QUOTE_PARTY_ID,
3188 p_CREATION_DATE => SYSDATE,
3189 p_CREATED_BY => G_USER_ID,
3190 p_LAST_UPDATE_DATE => SYSDATE,
3191 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3192 p_LAST_UPDATED_BY => G_USER_ID,
3193 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
3194 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
3195 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
3196 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
3197 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
3198 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
3199 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
3200 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
3201 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
3202 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
3203 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
3204 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
3205 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
3206 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
3207 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
3208 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
3209 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
3210 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
3211 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
3212 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
3213 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
3214 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
3215 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
3216 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
3217 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
3218 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
3219 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
3220 -- p_SECURITY_GROUP_ID => p_QUOTE_PARTY_rec.SECURITY_GROUP_ID);
3221 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
3222
3223 ELSIF l_quote_party_rec.operation_code = 'UPDATE' THEN
3224 ASO_QUOTE_PARTIES_PKG.Update_Row(
3225 p_QUOTE_PARTY_ID => l_quote_party_rec.QUOTE_PARTY_ID,
3226 p_CREATION_DATE => l_quote_party_rec.creation_date,
3227 p_CREATED_BY => G_USER_ID,
3228 p_LAST_UPDATE_DATE => SYSDATE,
3229 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3230 p_LAST_UPDATED_BY => G_USER_ID,
3231 p_REQUEST_ID => l_QUOTE_PARTY_rec.REQUEST_ID,
3232 p_PROGRAM_APPLICATION_ID =>l_QUOTE_PARTY_rec.PROGRAM_APPLICATION_ID,
3233 p_PROGRAM_ID => l_QUOTE_PARTY_rec.PROGRAM_ID,
3234 p_PROGRAM_UPDATE_DATE => l_QUOTE_PARTY_rec.PROGRAM_UPDATE_DATE,
3235 p_QUOTE_HEADER_ID => l_QUOTE_PARTY_rec.QUOTE_HEADER_ID,
3236 p_QUOTE_LINE_ID => l_QUOTE_PARTY_rec.QUOTE_LINE_ID,
3237 p_QUOTE_SHIPMENT_ID => l_QUOTE_PARTY_rec.QUOTE_SHIPMENT_ID,
3238 p_PARTY_TYPE => l_QUOTE_PARTY_rec.PARTY_TYPE,
3239 p_PARTY_ID => l_QUOTE_PARTY_rec.PARTY_ID,
3240 p_PARTY_OBJECT_TYPE => l_QUOTE_PARTY_rec.PARTY_OBJECT_TYPE,
3241 p_PARTY_OBJECT_ID => l_QUOTE_PARTY_rec.PARTY_OBJECT_ID,
3242 p_ATTRIBUTE_CATEGORY => l_QUOTE_PARTY_rec.ATTRIBUTE_CATEGORY,
3243 p_ATTRIBUTE1 => l_QUOTE_PARTY_rec.ATTRIBUTE1,
3244 p_ATTRIBUTE2 => l_QUOTE_PARTY_rec.ATTRIBUTE2,
3245 p_ATTRIBUTE3 => l_QUOTE_PARTY_rec.ATTRIBUTE3,
3246 p_ATTRIBUTE4 => l_QUOTE_PARTY_rec.ATTRIBUTE4,
3247 p_ATTRIBUTE5 => l_QUOTE_PARTY_rec.ATTRIBUTE5,
3248 p_ATTRIBUTE6 => l_QUOTE_PARTY_rec.ATTRIBUTE6,
3249 p_ATTRIBUTE7 => l_QUOTE_PARTY_rec.ATTRIBUTE7,
3250 p_ATTRIBUTE8 => l_QUOTE_PARTY_rec.ATTRIBUTE8,
3251 p_ATTRIBUTE9 => l_QUOTE_PARTY_rec.ATTRIBUTE9,
3252 p_ATTRIBUTE10 => l_QUOTE_PARTY_rec.ATTRIBUTE10,
3253 p_ATTRIBUTE11 => l_QUOTE_PARTY_rec.ATTRIBUTE11,
3254 p_ATTRIBUTE12 => l_QUOTE_PARTY_rec.ATTRIBUTE12,
3255 p_ATTRIBUTE13 => l_QUOTE_PARTY_rec.ATTRIBUTE13,
3256 p_ATTRIBUTE14 => l_QUOTE_PARTY_rec.ATTRIBUTE14,
3257 p_ATTRIBUTE15 => l_QUOTE_PARTY_rec.ATTRIBUTE15,
3258 p_OBJECT_VERSION_NUMBER => l_QUOTE_PARTY_rec.OBJECT_VERSION_NUMBER);
3259
3260 ELSIF l_quote_party_rec.operation_code = 'DELETE' THEN
3261 ASO_QUOTE_PARTIES_PKG.Delete_Row(
3262 p_QUOTE_PARTY_ID => l_QUOTE_PARTY_rec.QUOTE_PARTY_ID);
3263
3264 END IF;
3265 END LOOP;
3266 FOR i IN 1..P_hd_Attr_Ext_Tbl.count LOOP
3267 l_line_attribs_rec := P_hd_Attr_Ext_Tbl(i);
3268 l_line_attribs_rec.quote_header_id := l_qte_header_id ;
3269 x_hd_Attr_Ext_Tbl(i) := l_line_attribs_rec;
3270
3271 IF l_line_attribs_rec.operation_code = 'CREATE' THEN
3272 -- BC4J Fix
3273 --x_hd_Attr_Ext_Tbl(i).LINE_ATTRIBUTE_ID := null;
3274
3275 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row(
3276 px_LINE_ATTRIBUTE_ID => x_hd_Attr_Ext_Tbl(i).LINE_ATTRIBUTE_ID,
3277 p_CREATION_DATE => SYSDATE,
3278 p_CREATED_BY => G_USER_ID,
3279 p_LAST_UPDATE_DATE => SYSDATE,
3280 p_LAST_UPDATED_BY => G_USER_ID,
3281 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3282 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
3283 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
3284 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
3285 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
3286 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
3287 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
3288 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
3289 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
3290 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
3291 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
3292 p_NAME => l_LINE_ATTRIBS_rec.NAME,
3293 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
3294 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
3295 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
3296 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
3297 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
3298
3299 ELSIF l_line_attribs_rec.operation_code = 'UPDATE' THEN
3300 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Update_Row(
3301 p_LINE_ATTRIBUTE_ID => l_LINE_ATTRIBS_REC.LINE_ATTRIBUTE_ID,
3302 p_CREATION_DATE => l_LINE_ATTRIBS_REC.creation_date,
3303 p_CREATED_BY => G_USER_ID,
3304 p_LAST_UPDATE_DATE => SYSDATE,
3305 p_LAST_UPDATED_BY => G_USER_ID,
3306 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
3307 p_REQUEST_ID => l_LINE_ATTRIBS_rec.REQUEST_ID,
3308 p_PROGRAM_APPLICATION_ID =>l_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
3309 p_PROGRAM_ID => l_LINE_ATTRIBS_rec.PROGRAM_ID,
3310 p_PROGRAM_UPDATE_DATE => l_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
3311 p_APPLICATION_ID => l_LINE_ATTRIBS_rec.APPLICATION_ID,
3312 p_STATUS => l_LINE_ATTRIBS_rec.STATUS,
3313 p_QUOTE_HEADER_ID => l_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
3314 p_QUOTE_LINE_ID => l_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
3315 p_QUOTE_SHIPMENT_ID => l_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
3316 p_ATTRIBUTE_TYPE_CODE => l_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
3317 p_NAME => l_LINE_ATTRIBS_rec.NAME,
3318 p_VALUE => l_LINE_ATTRIBS_rec.VALUE,
3319 p_VALUE_TYPE => l_LINE_ATTRIBS_rec.VALUE_TYPE,
3320 p_START_DATE_ACTIVE => l_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
3321 p_END_DATE_ACTIVE => l_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
3322 p_OBJECT_VERSION_NUMBER => l_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER);
3323
3324 ELSIF l_line_attribs_rec.operation_code = 'DELETE' THEN
3325 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.delete_Row(
3326 p_LINE_ATTRIB_ID => l_LINE_ATTRIBS_rec.LINE_ATTRIBUTE_ID);
3327 END IF;
3328 END LOOP; -- line attribs
3329
3330
3331 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3332 aso_debug_pub.add('Update_Rows: l_qte_access_tbl.count: '||l_qte_access_tbl.count, 1, 'Y');
3333 END IF;
3334
3335 for i in 1 .. p_qte_access_tbl.count loop
3336
3337 if p_qte_access_tbl(i).operation_code = 'CREATE' then
3338
3339 l_qte_access_tbl(1) := p_qte_access_tbl(i);
3340 l_qte_access_tbl(1).batch_price_flag := fnd_api.g_false;
3341
3342 if l_qte_access_tbl(1).quote_number is null or l_qte_access_tbl(1).quote_number = fnd_api.g_miss_num then
3343
3344 open c_quote_number;
3345 fetch c_quote_number into l_qte_access_tbl(1).quote_number;
3346 close c_quote_number;
3347
3348 end if;
3349
3350 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3351 aso_debug_pub.add('Update_Rows: Before call to Add_Resource', 1, 'Y');
3352 END IF;
3353
3354 ASO_SECURITY_INT.Add_Resource(
3355 P_INIT_MSG_LIST => FND_API.G_FALSE,
3356 P_COMMIT => FND_API.G_FALSE,
3357 P_Qte_Access_tbl => l_qte_access_tbl,
3358 p_call_from_oafwk_flag => FND_API.G_TRUE,
3359 X_Qte_Access_tbl => lx_qte_access_tbl,
3360 X_RETURN_STATUS => x_return_status,
3361 X_msg_count => X_msg_count,
3362 X_msg_data => X_msg_data );
3363
3364 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3365 aso_debug_pub.add('Update_Rows: After call to Add_Resource: x_return_status: '|| x_return_status, 1, 'Y');
3366 aso_debug_pub.add('Update_Rows: lx_Qte_Access_tbl.count: '|| lx_Qte_Access_tbl.count, 1, 'Y');
3367 END IF;
3368
3369 for i in 1 .. lx_qte_access_tbl.count loop
3370 X_Qte_Access_tbl(X_Qte_Access_tbl.count + 1) := lx_qte_access_tbl(i);
3371 end loop;
3372
3373 elsif p_qte_access_tbl(i).operation_code = 'UPDATE' then
3374
3375 l_qte_access_tbl(1) := p_qte_access_tbl(i);
3376 l_qte_access_tbl(1).batch_price_flag := fnd_api.g_false;
3377
3378 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3379 aso_debug_pub.add('Update_Rows: Before call to Add_Resource to update access', 1, 'Y');
3380 END IF;
3381
3382 ASO_SECURITY_INT.Add_Resource(
3383 P_INIT_MSG_LIST => FND_API.G_FALSE,
3384 P_COMMIT => FND_API.G_FALSE,
3385 P_Qte_Access_tbl => l_qte_access_tbl,
3386 p_call_from_oafwk_flag => FND_API.G_TRUE,
3387 X_Qte_Access_tbl => lx_qte_access_tbl,
3388 X_RETURN_STATUS => x_return_status,
3389 X_msg_count => X_msg_count,
3390 X_msg_data => X_msg_data );
3391
3392 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3393 aso_debug_pub.add('Update_Rows: After call to Add_Resource: x_return_status: '||x_return_status, 1, 'Y');
3394 aso_debug_pub.add('Update_Rows: lx_Qte_Access_tbl.count: '|| lx_Qte_Access_tbl.count, 1, 'Y');
3395 END IF;
3396
3397 for i in 1 .. lx_qte_access_tbl.count loop
3398 X_Qte_Access_tbl(X_Qte_Access_tbl.count + 1) := lx_qte_access_tbl(i);
3399 end loop;
3400
3401 elsif p_qte_access_tbl(i).operation_code = 'DELETE' then
3402
3403 l_qte_access_tbl(1) := p_qte_access_tbl(i);
3404 l_qte_access_tbl(1).batch_price_flag := fnd_api.g_false;
3405
3406 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3407 aso_debug_pub.add('Update_Rows: Before call to Add_Resource', 1, 'Y');
3408 END IF;
3409
3410 ASO_SECURITY_INT.Delete_Resource(
3411 P_INIT_MSG_LIST => FND_API.G_FALSE,
3412 P_COMMIT => FND_API.G_FALSE,
3413 P_Qte_Access_tbl => l_qte_access_tbl,
3414 X_RETURN_STATUS => x_return_status,
3415 X_msg_count => X_msg_count,
3416 X_msg_data => X_msg_data );
3417
3418 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3419 aso_debug_pub.add('Update_Rows: After call to Add_Resource: x_return_status: '||x_return_status, 1, 'Y');
3420 END IF;
3421
3422 X_Qte_Access_tbl(X_Qte_Access_tbl.count + 1) := p_qte_access_tbl(i);
3423
3424 end if;
3425
3426 end loop;
3427
3428 END Update_Rows;
3429
3430
3431
3432 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
3433 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
3434 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
3435 -- IF calculate_tax_flag = 'N', no summation on line level tax,
3436 -- just take the value of p_qte_header_rec.total_tax as the total_tax
3437 -- IF calculate_Freight_Charge_Flag = 'N', not summation on line level freight charge,
3438 -- just take the value of p_qte_header_rec.total_freight_charge
3439
3440
3441
3442 PROCEDURE Update_Quote_Total ( P_Qte_Header_id IN NUMBER,
3443 P_Calculate_Tax IN VARCHAR2,
3444 P_Calculate_Freight_Charge IN VARCHAR2,
3445 P_Control_Rec IN ASO_QUOTE_PUB.CONTROL_REC_TYPE
3446 := ASO_QUOTE_PUB.G_MISS_CONTROL_REC,
3447 P_Call_Ar_Api_Flag IN VARCHAR2 := FND_API.G_FALSE,
3448 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3449 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3450 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3451 )
3452 IS
3453
3454 CURSOR c_qte_sum IS
3455 SELECT quote_line_id, line_category_code, nvl(line_list_price * quantity, 0) total_list_price,
3456 nvl(line_adjusted_amount * quantity,
3457 nvl(line_adjusted_percent * line_list_price * quantity, 0)) ln_total_discount
3458 FROM ASO_QUOTE_LINES_ALL
3459 WHERE quote_header_id = p_qte_header_id
3460 and charge_periodicity_code is null; -- Recurring charges Change
3461
3462
3463 CURSOR c_tax_line(p_quote_line_id NUMBER) IS
3464 SELECT nvl(sum(decode(tax_inclusive_flag, 'Y', 0,nvl(tax_amount,0))),0) tax_amt_for_qte_total,
3465 nvl(sum(nvl(tax_amount, 0)),0) tax_amount
3466 FROM ASO_TAX_DETAILS
3467 WHERE quote_header_id = p_qte_header_id
3468 and quote_line_id = p_quote_line_id;
3469
3470 CURSOR c_tax IS
3471 SELECT nvl(sum(nvl(tax_amount, 0)),0)
3472 FROM ASO_TAX_DETAILS
3473 WHERE quote_header_id = p_qte_header_id
3474 and quote_line_id is null;
3475
3476 CURSOR c_tax_rec_cnt IS
3477 select count(tax_detail_id)
3478 from aso_tax_details
3479 where quote_header_id = p_qte_header_id
3480 and tax_amount is not null;
3481
3482
3483 CURSOR c_old_shipping_charge IS
3484 SELECT total_shipping_charge
3485 FROM aso_quote_headers_all
3486 WHERE quote_header_id = p_qte_header_id;
3487
3488
3489 CURSOR c_hd_discount IS
3490 SELECT total_adjusted_percent
3491 FROM aso_quote_headers_all
3492 WHERE quote_header_id = p_qte_header_id;
3493
3494
3495 Cursor get_hdr_payment_term IS
3496 SELECT payment_term_id
3497 FROM aso_payments
3498 WHERE quote_header_id = p_qte_header_id
3499 and quote_line_id is null;
3500
3501 Cursor get_hdr_curr_code IS
3502 SELECT currency_code
3503 FROM aso_quote_headers_all
3504 WHERE quote_header_id = p_qte_header_id;
3505
3506 Cursor c_org_id IS
3507 Select org_id,quote_type
3508 from aso_quote_headers_all
3509 where quote_header_id = p_qte_header_id;
3510
3511 Cursor get_total_payment_amount( l_qte_hdr_id number) is
3512 select sum(payment_amount)
3513 from aso_payments
3514 where quote_header_id = l_qte_hdr_id
3515 and quote_line_id is not null;
3516
3517 l_total_list_price NUMBER := 0;
3518 l_ln_total_discount NUMBER := 0;
3519 l_total_quote_price NUMBER := 0;
3520 l_total_adjusted_amount NUMBER := 0;
3521 l_hd_discount_percent NUMBER := 0;
3522 l_total_tax NUMBER := 0;
3523 l_total_tax_for_qte_total NUMBER := 0;
3524 l_header_tax NUMBER := 0;
3525 l_total_shipping_charge NUMBER := 0;
3526 l_line_shipping_charge NUMBER := 0;
3527 l_header_shipping_charge NUMBER := 0;
3528 l_count NUMBER;
3529
3530 l_installment_option VARCHAR2(240);
3531 l_hdr_currency_code varchar2(15);
3532 l_hdr_term_id NUMBER;
3533 l_paynow_amount NUMBER;
3534 l_paynow_tax NUMBER;
3535 l_paynow_charges NUMBER:= null;
3536 l_paynow_total NUMBER;
3537 l_org_id NUMBER;
3538 l_quote_type varchar2(1);
3539 l_total_payment_amount NUMBER :=0;
3540
3541 BEGIN
3542
3543 --Initialize API return status to SUCCESS
3544
3545 x_return_status := FND_API.G_RET_STS_SUCCESS;
3546
3547 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3548 aso_debug_pub.add('Begin update_quote_total procedure.', 1, 'Y');
3549 aso_debug_pub.add('Update_quote_total: Input parameters value.');
3550 aso_debug_pub.add('Update_quote_total: p_qte_header_id: '|| p_qte_header_id);
3551 aso_debug_pub.add('Update_quote_total: p_calculate_tax: '|| p_calculate_tax);
3552 aso_debug_pub.add('Update_quote_total: p_calculate_freight_charge: '|| p_calculate_freight_charge);
3553 aso_debug_pub.add('p_control_rec.header_pricing_event: '|| p_control_rec.header_pricing_event);
3554 aso_debug_pub.add('p_control_rec.line_pricing_event: '|| p_control_rec.header_pricing_event);
3555 END IF;
3556
3557
3558
3559 FOR qte_rec IN c_qte_sum LOOP
3560
3561 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3562 aso_debug_pub.add('Update_quote_total: l_total_quote_price: '|| l_total_quote_price);
3563 aso_debug_pub.add('qte_rec.line_category_code: '|| qte_rec.line_category_code);
3564 END IF;
3565
3566 IF qte_rec.line_category_code = 'RETURN' THEN
3567
3568 l_total_list_price := l_total_list_price - qte_rec.total_list_price;
3569 l_ln_total_discount := l_ln_total_discount - qte_rec.ln_total_discount;
3570
3571 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3572 aso_debug_pub.add('Update_quote_total: l_total_list_price: '|| l_total_list_price);
3573 aso_debug_pub.add('Update_quote_total: l_ln_total_discount: '|| l_ln_total_discount);
3574 END IF;
3575
3576 FOR tax_line_rec IN c_tax_line(qte_rec.quote_line_id) LOOP
3577
3578 l_total_tax := l_total_tax - tax_line_rec.tax_amount;
3579 l_total_tax_for_qte_total := l_total_tax_for_qte_total - tax_line_rec.tax_amt_for_qte_total;
3580
3581 END LOOP;
3582
3583 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3584 aso_debug_pub.add('Update_quote_total: l_total_tax (-): '|| l_total_tax);
3585 END IF;
3586
3587 IF p_calculate_freight_charge = 'Y' then
3588
3589 l_line_shipping_charge := aso_shipping_int.get_line_freight_charges( p_qte_header_id,
3590 qte_rec.quote_line_id );
3591
3592 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3593 aso_debug_pub.add('Update_quote_total: After call to get_line_freight_charges');
3594 aso_debug_pub.add('l_line_shipping_charge: '|| l_line_shipping_charge);
3595 END IF;
3596
3597 l_total_shipping_charge := l_total_shipping_charge - l_line_shipping_charge;
3598
3599 END IF;
3600
3601 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3602 aso_debug_pub.add('l_total_shipping_charge: '|| l_total_shipping_charge );
3603 END IF;
3604
3605 ELSE
3606
3607 l_total_list_price := l_total_list_price + qte_rec.total_list_price;
3608 l_ln_total_discount := l_ln_total_discount + qte_rec.ln_total_discount;
3609
3610 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3611 aso_debug_pub.add('Update_quote_total: l_total_list_price: '|| l_total_list_price);
3612 aso_debug_pub.add('Update_quote_total: l_ln_total_discount: '|| l_ln_total_discount);
3613 END IF;
3614
3615 FOR tax_line_rec IN c_tax_line(qte_rec.quote_line_id) LOOP
3616
3617 l_total_tax := l_total_tax + tax_line_rec.tax_amount;
3618 l_total_tax_for_qte_total := l_total_tax_for_qte_total + tax_line_rec.tax_amt_for_qte_total;
3619
3620 END LOOP;
3621
3622 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3623 aso_debug_pub.add('Update_quote_total: l_total_tax (+): '|| l_total_tax);
3624 END IF;
3625
3626 IF p_calculate_freight_charge = 'Y' then
3627
3628 l_line_shipping_charge := aso_shipping_int.get_line_freight_charges( p_qte_header_id,
3629 qte_rec.quote_line_id );
3630
3631 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3632 aso_debug_pub.add('Update_quote_total: After call to get_line_freight_charges');
3633 aso_debug_pub.add('l_line_shipping_charge: '|| l_line_shipping_charge);
3634 END IF;
3635
3636 l_total_shipping_charge := l_total_shipping_charge + l_line_shipping_charge;
3637
3638 END IF;
3639
3640 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3641 aso_debug_pub.add('l_total_shipping_charge: '|| l_total_shipping_charge );
3642 END IF;
3643
3644 END IF;
3645
3646 END LOOP;
3647
3648 --Get the header level tax amount and add it to the total tax
3649
3650 OPEN c_tax;
3651 FETCH c_tax INTO l_header_tax;
3652 CLOSE c_tax;
3653
3654 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3655 aso_debug_pub.add('Update_quote_total: l_header_tax: '|| l_header_tax);
3656 aso_debug_pub.add('Update_Quote_Total: p_control_rec.price_mode: '|| p_control_rec.price_mode);
3657 END IF;
3658
3659 IF (p_calculate_tax = 'N') OR
3660 (p_control_rec.price_mode = 'QUOTE_LINE') OR
3661 ((p_control_rec.price_mode = 'ENTIRE_QUOTE') AND
3662 (p_control_rec.header_pricing_event = 'ORDER')) OR
3663 ((p_control_rec.price_mode = 'ENTIRE_QUOTE') AND
3664 (p_control_rec.header_pricing_event = 'PRICE')) THEN
3665
3666 OPEN c_tax_rec_cnt;
3667 FETCH c_tax_rec_cnt INTO l_count;
3668 CLOSE c_tax_rec_cnt;
3669
3670 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3671 aso_debug_pub.add('Update_quote_total: l_count: '|| l_count);
3672 END IF;
3673
3674 IF l_count = 0 THEN
3675 l_total_tax := null;
3676 l_total_tax_for_qte_total := null;
3677 ELSE
3678 l_total_tax := l_total_tax + nvl(l_header_tax,0);
3679 l_total_tax_for_qte_total := l_total_tax_for_qte_total + nvl(l_header_tax,0);
3680 END IF;
3681
3682 ELSE
3683
3684 l_total_tax := l_total_tax + nvl(l_header_tax,0);
3685 l_total_tax_for_qte_total := l_total_tax_for_qte_total + nvl(l_header_tax,0);
3686
3687 END IF;
3688
3689
3690 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3691 aso_debug_pub.add('Update_quote_total: l_total_tax: '|| l_total_tax);
3692 aso_debug_pub.add('Update_quote_total: l_total_tax_for_qte_total: '|| l_total_tax_for_qte_total);
3693 END IF;
3694
3695
3696 IF P_calculate_Freight_Charge = 'Y' THEN
3697
3698 l_header_shipping_charge := ASO_SHIPPING_INT.get_Header_freight_charges(p_qte_header_id);
3699
3700 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3701 aso_debug_pub.add('Update_quote_total: l_header_shipping_charge: '|| l_header_shipping_charge);
3702 END IF;
3703
3704 l_total_shipping_charge := l_total_shipping_charge + l_header_shipping_charge;
3705
3706 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3707 aso_debug_pub.add('Update_quote_total: l_total_shipping_charge: '|| l_total_shipping_charge);
3708 END IF;
3709
3710 ELSE
3711
3712 open c_old_shipping_charge;
3713 fetch c_old_shipping_charge into l_total_shipping_charge;
3714 close c_old_shipping_charge;
3715
3716 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3717 aso_debug_pub.add('Update_quote_total: l_total_shipping_charge: '|| l_total_shipping_charge);
3718 END IF;
3719
3720 END IF;
3721
3722
3723 l_total_quote_price := l_total_list_price + l_ln_total_discount + nvl(l_total_tax_for_qte_total,0) +
3724 nvl(l_total_shipping_charge,0);
3725
3726 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3727 aso_debug_pub.add('Update_quote_total: l_total_quote_price: '|| l_total_quote_price);
3728 END IF;
3729
3730 -- removed the if condition for pricing event check as per bug 5237393
3731 IF ( l_total_quote_price < 0 ) THEN
3732
3733 x_return_status := FND_API.G_RET_STS_ERROR;
3734
3735 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3736 aso_debug_pub.add('Inside price check: x_return_status: '|| x_return_status );
3737 END IF;
3738
3739 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3740
3741 FND_MESSAGE.Set_Name('ASO', 'ASO_NEGATIVE_QUOTE_TOTAL');
3742 FND_MSG_PUB.ADD;
3743
3744 END IF;
3745
3746 RAISE FND_API.G_EXC_ERROR;
3747
3748 END IF;
3749
3750 -- Start of PNPL Changes
3751 Open c_org_id;
3752 fetch c_org_id into l_org_id,l_quote_type;
3753 Close c_org_id;
3754
3755 l_installment_option := oe_sys_parameters.value(param_name => 'INSTALLMENT_OPTIONS',
3756 p_org_id =>l_org_id);
3757
3758 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3759 aso_debug_pub.add('Update_Quote_Total - Value of Installment Option Param: '||l_installment_option, 1, 'Y');
3760 END IF;
3761
3762 IF ( (l_installment_option = 'ENABLE_PAY_NOW') and (nvl(l_quote_type,'X') <> 'T')
3763 and ((p_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR and p_control_rec.header_pricing_event is not null)
3764 or (p_control_rec.calculate_tax_flag = 'Y')) ) then
3765
3766 l_header_shipping_charge := ASO_SHIPPING_INT.get_Header_freight_charges(p_qte_header_id);
3767
3768 -- get the payment term id for the header
3769 open get_hdr_payment_term;
3770 fetch get_hdr_payment_term into l_hdr_term_id;
3771 close get_hdr_payment_term;
3772
3773 -- get the currency code id for the header
3774 open get_hdr_curr_code;
3775 fetch get_hdr_curr_code into l_hdr_currency_code;
3776 close get_hdr_curr_code;
3777
3778
3779 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3780
3781 aso_debug_pub.add('Update_Quote_Total- Input to AR_VIEW_TERM_GRP.pay_now_amounts follows: ', 1, 'Y');
3782 aso_debug_pub.add('Update_Quote_Total- l_header_shipping_charge: '||l_header_shipping_charge, 1, 'Y');
3783 aso_debug_pub.add('Update_Quote_Total- l_hdr_currency_code: '||l_hdr_currency_code, 1, 'Y');
3784 aso_debug_pub.add('Update_Quote_Total- l_hdr_term_id: '||l_hdr_term_id, 1, 'Y');
3785 aso_debug_pub.add('Update_Quote_Total- P_Call_Ar_Api_Flag: '||P_Call_Ar_Api_Flag,1,'Y');
3786 END IF;
3787
3788 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
3789
3790 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3791 aso_debug_pub.add('Update_Quote_Total: before call to AR_VIEW_TERM_GRP.pay_now_amounts', 1, 'Y');
3792 END IF;
3793
3794 -- Call the AR API to get the amounts
3795 AR_VIEW_TERM_GRP.pay_now_amounts(
3796 p_api_version => 1.0,
3797 p_init_msg_list => FND_API.G_FALSE,
3798 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3799 p_term_id => l_hdr_term_id,
3800 p_currency_code => l_hdr_currency_code,
3801 p_line_amount => 0,
3802 p_tax_amount => 0,
3803 p_freight_amount => l_header_shipping_charge ,
3804 x_pay_now_line_amount => l_paynow_amount,
3805 x_pay_now_tax_amount => l_paynow_tax,
3806 x_pay_now_freight_amount => l_paynow_charges,
3807 x_pay_now_total_amount => l_paynow_total,
3808 X_Return_Status => x_return_status ,
3809 X_Msg_Count => x_msg_count ,
3810 X_Msg_Data => x_msg_data );
3811
3812 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3813 aso_debug_pub.add('Update_Quote_Total: After call to AR_VIEW_TERM_GRP.pay_now_amounts: x_return_status: '
3814 || x_return_status, 1, 'Y');
3815 END IF;
3816
3817 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
3818
3819 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3820 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
3821 FND_MESSAGE.Set_Token('API', 'AR_PayNow_Amounts', FALSE);
3822 FND_MSG_PUB.ADD;
3823 END IF;
3824
3825 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3826 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3827 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
3828 RAISE FND_API.G_EXC_ERROR;
3829 END IF;
3830
3831 END IF;
3832
3833 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3834 aso_debug_pub.add('Update_Quote_Total- Output from AR_VIEW_TERM_GRP.pay_now_amounts follows: ', 1, 'Y');
3835 aso_debug_pub.add('Update_Quote_Total- l_paynow_amount: '||l_paynow_amount, 1, 'Y');
3836 aso_debug_pub.add('Update_Quote_Total- l_paynow_charges: '||l_paynow_charges, 1, 'Y');
3837 aso_debug_pub.add('Update_Quote_Total- l_paynow_tax: '||l_paynow_tax, 1, 'Y');
3838 aso_debug_pub.add('Update_Quote_Total- l_paynow_total: '||l_paynow_total, 1, 'Y');
3839 END IF;
3840
3841
3842 -- Update the corresponding columns in the header table
3843 -- this update has been commented out as the update for this column is done below
3844 /*update aso_quote_headers_all
3845 set header_paynow_charges = l_paynow_charges,
3846 last_updated_by = fnd_global.user_id,
3847 last_update_login = fnd_global.conc_login_id
3848 where quote_header_id = P_Qte_Header_id; */
3849
3850
3851 END IF; -- end if for payment trm id null check
3852
3853 END IF;
3854
3855 -- End of PNPL Changes
3856
3857 UPDATE ASO_QUOTE_HEADERS_ALL
3858 SET total_list_price = l_total_list_price,
3859 total_shipping_charge = l_total_shipping_charge,
3860 total_adjusted_amount = l_ln_total_discount,
3861 total_adjusted_percent = decode( l_total_list_price, 0, NULL,
3862 (l_ln_total_discount/l_total_list_price) * 100 ),
3863 total_quote_price = l_total_quote_price,
3864 total_tax = l_total_tax,
3865 header_paynow_charges = nvl(l_paynow_charges,header_paynow_charges),
3866 last_update_date = sysdate,
3867 last_updated_by = fnd_global.user_id,
3868 last_update_login = fnd_global.conc_login_id
3869 WHERE quote_header_id = p_qte_header_id;
3870
3871 IF SQL%ROWCOUNT = 0 THEN
3872
3873 x_return_status := fnd_api.g_ret_sts_error;
3874
3875 END IF;
3876
3877 IF aso_debug_pub.g_debug_flag = 'Y' THEN
3878 aso_debug_pub.add('Update_quote_total: l_total_quote_price: '|| l_total_quote_price);
3879 aso_debug_pub.add('End of Update_quote_total');
3880 END IF;
3881
3882 END Update_Quote_Total;
3883
3884
3885
3886
3887 -- Hint: Primary key needs to be returned.
3888 PROCEDURE Create_quote(
3889 P_Api_Version_Number IN NUMBER,
3890 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
3891 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
3892 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3893 P_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_Miss_Control_Rec,
3894 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
3895 P_hd_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
3896 P_hd_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL,
3897 P_hd_Shipment_Rec IN ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC,
3898 P_hd_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl,
3899 P_hd_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl,
3900 P_hd_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL,
3901 P_hd_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
3902 P_hd_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
3903 P_Qte_Line_Tbl IN ASO_QUOTE_PUB.Qte_Line_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL,
3904 P_Qte_Line_Dtl_Tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL,
3905 P_Line_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL,
3906 P_line_rltship_tbl IN ASO_QUOTE_PUB.Line_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Rltship_Tbl,
3907 P_Price_Adjustment_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl,
3908 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
3909 P_Price_Adj_Rltship_Tbl IN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Adj_Rltship_Tbl,
3910 P_ln_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
3911 P_ln_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL,
3912 P_ln_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL,
3913 P_ln_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl,
3914 P_ln_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl,
3915 P_ln_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
3916 P_ln_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
3917 P_Qte_Access_Tbl IN ASO_QUOTE_PUB.Qte_Access_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_ACCESS_TBL,
3918 P_Template_Tbl IN ASO_QUOTE_PUB.Template_Tbl_Type := ASO_QUOTE_PUB.G_MISS_TEMPLATE_TBL,
3919 P_Related_Obj_Tbl IN ASO_QUOTE_PUB.Related_Obj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_RELATED_OBJ_TBL,
3920 x_Qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Rec_Type,
3921 X_Qte_Line_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
3922 X_Qte_Line_Dtl_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
3923 X_hd_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
3924 X_hd_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
3925 X_hd_Shipment_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Rec_Type,
3926 X_hd_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
3927 X_hd_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
3928 X_hd_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
3929 X_hd_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
3930 X_hd_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
3931 x_Line_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
3932 X_line_rltship_tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Rltship_Tbl_Type,
3933 X_Price_Adjustment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
3934 X_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
3935 X_Price_Adj_Rltship_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
3936 X_ln_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
3937 X_ln_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
3938 X_ln_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
3939 X_ln_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
3940 X_ln_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
3941 X_Ln_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
3942 X_Ln_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
3943 X_Qte_Access_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
3944 X_Template_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Template_Tbl_Type,
3945 X_Related_Obj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Related_Obj_Tbl_Type,
3946 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
3947 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
3948 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
3949 )
3950 IS
3951
3952 l_api_name CONSTANT VARCHAR2(30) := 'Create_quote';
3953 l_api_version_number CONSTANT NUMBER := 1.0;
3954 l_return_status_full VARCHAR2(1);
3955 l_return_status VARCHAR2(1);
3956 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
3957 lx_out_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type; --Nocopy changes
3958 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
3959 l_qte_line_rec_out ASO_QUOTE_PUB.Qte_Line_Rec_Type;
3960 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
3961 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
3962 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
3963 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
3964 l_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
3965 l_ln_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
3966 l_ln_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
3967 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
3968 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
3969 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
3970 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
3971 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
3972 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
3973 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
3974 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
3975 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
3976 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
3977 l_Price_Adj_Tbl_out ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
3978 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
3979 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
3980 l_Price_Adjustment_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type :=p_Price_Adjustment_Tbl;
3981 l_line_rltship_rec ASO_QUOTE_PUB.Line_Rltship_Rec_Type;
3982 l_price_adj_rltship_rec ASO_QUOTE_PUB.Price_Adj_Rltship_Rec_Type;
3983 l_pricing_control_rec ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE;
3984
3985 l_shipment_id NUMBER;
3986 l_payment_id NUMBER;
3987 l_found VARCHAR2(1);
3988 l_calculate_freight_charge VARCHAR2(1) := 'Y';
3989 l_calculate_tax VARCHAR2(1) := 'Y';
3990 l_index NUMBER;
3991 l_index_2 NUMBER;
3992 line_index NUMBER;
3993 l_shp_index_link Index_Link_Tbl_Type;
3994 l_prc_index_link Index_Link_Tbl_Type;
3995 l_prc_index_link_rev Index_Link_Tbl_Type;
3996 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
3997 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
3998 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
3999 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
4000 l_control_rec ASO_QUOTE_PUB.Control_rec_type := p_control_rec;
4001 l_Tax_Control_Rec ASO_TAX_INT.Tax_Control_Rec_Type;
4002 x_tax_amount NUMBER;
4003 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC;
4004
4005 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
4006 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
4007
4008 l_price_updated_date_flag VARCHAR2(1) := fnd_api.g_false;
4009
4010 cursor c_last_update_date( p_qte_hdr_id number ) is
4011 select last_update_date
4012 from aso_quote_headers_all
4013 where quote_header_id = p_qte_hdr_id;
4014
4015 -- Code for Sales Team Assignment Changes
4016 CURSOR C_Check_Qte_Status (l_qte_hdr NUMBER) IS
4017 SELECT 'Y'
4018 FROM ASO_QUOTE_HEADERS_ALL A, ASO_QUOTE_STATUSES_B B
4019 WHERE A.Quote_Header_Id = l_qte_hdr
4020 AND A.Quote_Status_Id = B.Quote_Status_Id
4021 AND B.Status_Code = 'STORE DRAFT';
4022
4023 CURSOR C_Get_Quota_Credit_Type IS
4024 SELECT Sales_Credit_Type_Id
4025 FROM OE_SALES_CREDIT_TYPES
4026 WHERE Quota_Flag = 'Y';
4027
4028 Cursor c_obj_id(p_qte_header_id Number) IS
4029 Select object_id
4030 from aso_quote_related_objects
4031 where quote_object_id = p_qte_header_id
4032 and quote_object_type_code = 'HEADER'
4033 and relationship_type_code = 'OPP_QUOTE';
4034
4035 CURSOR c_tax_line(p_qte_header_id NUMBER, p_quote_line_id NUMBER) IS
4036 select nvl(sum(nvl(tax_amount, 0)),0) tax_amount
4037 FROM ASO_TAX_DETAILS
4038 WHERE quote_header_id = p_qte_header_id
4039 and quote_line_id = p_quote_line_id;
4040
4041 Cursor get_line_payment_term(p_qte_header_id NUMBER, p_quote_line_id NUMBER) IS
4042 SELECT payment_term_id
4043 FROM aso_payments
4044 WHERE quote_header_id = p_qte_header_id
4045 and quote_line_id = p_quote_line_id;
4046
4047 Cursor get_hdr_payment_term(p_qte_header_id NUMBER) IS
4048 SELECT payment_term_id
4049 FROM aso_payments
4050 WHERE quote_header_id = p_qte_header_id
4051 and quote_line_id IS NULL ;
4052
4053 Cursor get_line_qte_price( p_quote_line_id NUMBER) IS
4054 select line_quote_price,quantity
4055 from aso_quote_lines_all
4056 where quote_line_id = p_quote_line_id;
4057
4058 Cursor c_inv_org_id(l_main_org_id Number) IS
4059 select master_organization_id
4060 from oe_system_parameters
4061 where org_id = l_main_org_id;
4062
4063 l_quota_id NUMBER;
4064
4065 l_istore_source VARCHAR2(1) := 'N';
4066 l_sales_team_prof VARCHAR2(30) := FND_PROFILE.value('ASO_AUTO_TEAM_ASSIGN');
4067
4068 --New Code for to call overload pricing_order
4069 lv_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
4070 lx_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
4071 lx_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
4072 lv_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4073 lv_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
4074 lv_hd_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
4075 lx_price_adj_rltship_tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
4076
4077 -- hyang defaulting framework
4078 l_def_control_rec ASO_DEFAULTING_INT.Control_Rec_Type := ASO_DEFAULTING_INT.G_MISS_CONTROL_REC;
4079 l_db_object_name VARCHAR2(30);
4080 l_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Shipment_REC;
4081 l_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Payment_REC;
4082 l_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type := ASO_QUOTE_PUB.G_MISS_Tax_Detail_REC;
4083 l_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type := ASO_DEFAULTING_INT.G_MISS_HEADER_MISC_REC;
4084 lx_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4085 lx_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
4086 lx_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
4087 lx_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type;
4088 lx_quote_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
4089 lx_ln_misc_rec ASO_DEFAULTING_INT.Line_Misc_Rec_Type;
4090 lx_ln_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
4091 lx_ln_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
4092 lx_ln_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
4093 lx_changed_flag VARCHAR2(1);
4094 l_hd_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
4095 l_hd_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
4096
4097 --Template changes
4098 l_template_tbl aso_quote_tmpl_int.list_template_tbl_type;
4099 l_qte_line_tbl aso_quote_pub.qte_line_tbl_type := p_qte_line_tbl;
4100 lx_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type := p_qte_line_dtl_tbl;
4101 l_count number;
4102
4103 l_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
4104 l_related_obj_id number;
4105 x_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
4106 l_obj_id number;
4107
4108 l_installment_option VARCHAR2(240);
4109 l_line_shipping_charge NUMBER;
4110 l_line_tax NUMBER;
4111 l_line_amount NUMBER;
4112 l_line_term_id NUMBER := NULL;
4113 l_paynow_amount NUMBER;
4114 l_paynow_tax NUMBER;
4115 l_paynow_charges NUMBER;
4116 l_paynow_total NUMBER;
4117 l_call_ar_api varchar2(1);
4118 l_line_quote_price NUMBER;
4119 l_quantity NUMBER;
4120 l_master_organization_id NUMBER;
4121
4122
4123 BEGIN
4124 -- Standard Start of API savepoint
4125 SAVEPOINT CREATE_quote_PVT;
4126
4127 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4128 aso_debug_pub.add('******************************************************', 1, 'Y');
4129 aso_debug_pub.add('Begin Create_Quote Procedure', 1, 'Y');
4130 aso_debug_pub.add('******************************************************', 1, 'Y');
4131 END IF;
4132
4133 -- Standard call to check for call compatibility.
4134 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
4135 p_api_version_number,
4136 l_api_name,
4137 G_PKG_NAME) THEN
4138
4139 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4140 END IF;
4141
4142
4143 -- Initialize message list if p_init_msg_list is set to TRUE.
4144 IF FND_API.to_Boolean( p_init_msg_list ) THEN
4145 FND_MSG_PUB.initialize;
4146 END IF;
4147
4148 --Procedure added by Anoop Rajan on 30/09/2005 to print login details
4149 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4150 aso_debug_pub.add('Before call to printing login info details', 1, 'Y');
4151 ASO_UTILITY_PVT.print_login_info;
4152 aso_debug_pub.add('After call to printing login info details', 1, 'Y');
4153 END IF;
4154
4155 -- Change Done By Girish
4156 -- Procedure added to validate the operating unit
4157 ASO_VALIDATE_PVT.VALIDATE_OU(P_Qte_Header_Rec);
4158
4159 -- Initialize API return status to SUCCESS
4160 x_return_status := FND_API.G_RET_STS_SUCCESS;
4161
4162 --
4163 -- API body
4164 --
4165 l_control_rec.line_pricing_event := NULL;
4166 l_control_rec.calculate_tax_flag := NULL;
4167
4168 -- Validate Environment
4169
4170 IF FND_GLOBAL.User_Id IS NULL THEN
4171
4172 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4173 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
4174 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
4175 FND_MSG_PUB.ADD;
4176 END IF;
4177 RAISE FND_API.G_EXC_ERROR;
4178 END IF;
4179
4180 -- create Quote Header
4181
4182 l_index := 1;
4183
4184 FOR i IN 1..p_price_adjustment_tbl.count LOOP
4185
4186 IF p_price_adjustment_tbl(i).qte_line_index IS NULL OR
4187 p_price_adjustment_tbl(i).qte_line_index = FND_API.G_MISS_NUM THEN
4188
4189 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(i);
4190 l_prc_index_link(l_index) := i;
4191 l_prc_index_link_rev(i) := l_index;
4192 l_index := l_index + 1;
4193
4194 END IF;
4195
4196 END LOOP;
4197
4198 l_index := 1;
4199
4200 FOR i IN 1..p_price_adj_attr_tbl.count LOOP
4201
4202 IF p_price_adj_attr_tbl(i).price_adj_index <> FND_API.G_MISS_NUM
4203 AND l_prc_index_link_rev.exists(p_price_adj_attr_tbl(i).price_adj_index) THEN
4204
4205 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(i);
4206 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);
4207 l_index := l_index + 1;
4208
4209 END IF;
4210
4211 END LOOP;
4212
4213 IF Shipment_Rec_Exists(p_hd_shipment_rec) THEN
4214 l_hd_shipment_tbl(1) := p_hd_shipment_rec;
4215 END IF;
4216
4217 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4218 aso_debug_pub.add('Create_Quote: Before call to aso_input_param_debug.print_quote_input procedure', 1, 'Y');
4219
4220 ASO_INPUT_PARAM_DEBUG.Print_quote_input(
4221 P_Quote_Header_Rec => p_qte_header_rec
4222 , P_hd_Price_Attributes_Tbl => P_hd_Price_Attributes_Tbl
4223 , P_hd_Payment_Tbl => P_hd_Payment_Tbl
4224 , P_hd_Shipment_tbl => l_hd_Shipment_tbl
4225 , P_hd_Tax_Detail_Tbl => P_hd_Tax_Detail_Tbl
4226 , P_hd_Sales_Credit_Tbl => P_hd_Sales_Credit_Tbl
4227 , P_Qte_Line_Tbl => P_Qte_Line_Tbl
4228 , P_Qte_Line_Dtl_Tbl => P_Qte_Line_Dtl_Tbl
4229 , P_Price_Adjustment_Tbl => P_Price_Adjustment_Tbl
4230 , P_Ln_Price_Attributes_Tbl => P_Ln_Price_Attributes_Tbl
4231 , P_Ln_Payment_Tbl => P_Ln_Payment_Tbl
4232 , P_Ln_Shipment_Tbl => P_Ln_Shipment_Tbl
4233 , P_Ln_Tax_Detail_Tbl => P_Ln_Tax_Detail_Tbl
4234 , P_ln_Sales_Credit_Tbl => P_ln_Sales_Credit_Tbl
4235 , P_Qte_Access_Tbl => P_Qte_Access_Tbl);
4236
4237 aso_debug_pub.add('Create_Quote: After call to aso_input_param_debug.print_quote_input procedure', 1, 'Y');
4238 END IF ;
4239
4240 -- hyang defaulting framework begin
4241
4242 l_qte_header_rec := P_Qte_Header_Rec;
4243
4244 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4245 aso_debug_pub.add('Create_Quote - before defaulting framework', 1, 'Y');
4246 aso_debug_pub.add('Create_Quote - populate defaulting control record from the header control record', 1, 'Y');
4247 END IF ;
4248
4249 l_def_control_rec.Dependency_Flag := FND_API.G_FALSE;
4250 l_def_control_rec.Defaulting_Flag := l_control_rec.Defaulting_Flag;
4251 l_def_control_rec.Application_Type_Code := l_control_rec.Application_Type_Code;
4252 l_def_control_rec.Defaulting_Flow_Code := 'CREATE';
4253
4254 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4255 aso_debug_pub.add('Defaulting_Fwk_Flag - '||l_control_rec.Defaulting_Fwk_Flag, 1, 'Y');
4256 aso_debug_pub.add('Dependency_Flag - '||l_def_control_rec.Dependency_Flag, 1, 'Y');
4257 aso_debug_pub.add('Defaulting_Flag - '||l_def_control_rec.Defaulting_Flag, 1, 'Y');
4258 aso_debug_pub.add('Application_Type_Code - '||l_def_control_rec.Application_Type_Code, 1, 'Y');
4259 aso_debug_pub.add('Defaulting_Flow_Code - '||l_def_control_rec.Defaulting_Flow_Code, 1, 'Y');
4260 END IF ;
4261
4262 IF l_def_control_rec.application_type_code = 'QUOTING HTML' OR l_def_control_rec.application_type_code = 'QUOTING FORM' THEN
4263
4264 l_db_object_name := G_QUOTE_HEADER_DB_NAME;
4265
4266 ELSIF l_def_control_rec.application_type_code = 'ISTORE' THEN
4267 l_db_object_name := G_STORE_CART_HEADER_DB_NAME;
4268
4269 ELSE
4270 l_control_rec.Defaulting_Fwk_Flag := 'N';
4271 END IF;
4272
4273 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4274 aso_debug_pub.add('Create_Quote - Pick '||l_db_object_name ||' based on calling application '||l_def_control_rec.application_type_code, 1, 'Y');
4275 END IF ;
4276
4277 IF l_hd_shipment_tbl.count > 0 THEN
4278 l_hd_shipment_rec := l_hd_shipment_tbl(1);
4279 END IF;
4280
4281 IF p_hd_payment_tbl.count > 0 THEN
4282 l_hd_payment_rec := p_hd_payment_tbl(1);
4283 END IF;
4284
4285 IF p_hd_tax_detail_tbl.count > 0 THEN
4286 l_hd_tax_detail_rec := p_hd_tax_detail_tbl(1);
4287 END IF;
4288
4289 l_hd_payment_tbl := p_hd_payment_tbl;
4290 l_hd_tax_detail_tbl := p_hd_tax_detail_tbl;
4291
4292 -- In create quote, it never deaults any line level records.
4293 /* Removing Call for defaulting from create_quote
4294 IF l_control_rec.defaulting_fwk_flag = 'Y' THEN
4295
4296 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4297 aso_debug_pub.add('Create_Quote - Calling default_entity', 1, 'Y');
4298 END IF ;
4299
4300 ASO_DEFAULTING_INT.Default_Entity (
4301 p_api_version => 1.0
4302 , p_control_rec => l_def_control_rec
4303 , p_database_object_name => l_db_object_name
4304 , p_quote_header_rec => P_Qte_Header_Rec
4305 , p_header_misc_rec => l_hd_misc_rec
4306 , p_header_shipment_rec => l_hd_shipment_rec
4307 , p_header_payment_rec => l_hd_payment_rec
4308 , p_header_tax_detail_rec => l_hd_tax_detail_rec
4309 , x_quote_header_rec => l_qte_header_rec
4310 , x_header_misc_rec => lx_hd_misc_rec
4311 , x_header_shipment_rec => lx_hd_shipment_rec
4312 , x_header_payment_rec => lx_hd_payment_rec
4313 , x_header_tax_detail_rec => lx_hd_tax_detail_rec
4314 , x_quote_line_rec => lx_quote_line_rec
4315 , x_line_misc_rec => lx_ln_misc_rec
4316 , x_line_shipment_rec => lx_ln_shipment_rec
4317 , x_line_payment_rec => lx_ln_payment_rec
4318 , x_line_tax_detail_rec => lx_ln_tax_detail_rec
4319 , x_changed_flag => lx_changed_flag
4320 , x_return_status => x_return_status
4321 , x_msg_count => x_msg_count
4322 , x_msg_data => x_msg_data);
4323
4324 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4325
4326 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4327 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_DEFAULTING');
4328 FND_MSG_PUB.ADD;
4329 END IF;
4330
4331 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
4332 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4333 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
4334 RAISE FND_API.G_EXC_ERROR;
4335 END IF;
4336
4337 END IF;
4338
4339 IF Shipment_Null_Rec_Exists(lx_hd_shipment_rec, l_db_object_name) THEN
4340 l_hd_shipment_tbl(1) := lx_hd_shipment_rec;
4341 END IF;
4342
4343 IF Payment_Null_Rec_Exists(lx_hd_payment_rec, l_db_object_name) THEN
4344 l_hd_payment_tbl(1) := lx_hd_payment_rec;
4345 END IF;
4346
4347 IF Tax_Detail_Null_Rec_Exists(lx_hd_tax_detail_rec, l_db_object_name) THEN
4348 l_hd_tax_detail_tbl(1) := lx_hd_tax_detail_rec;
4349 END IF;
4350
4351 END IF;
4352 */
4353 -- hyang defaulting framework end
4354
4355
4356 -- validate header information
4357
4358 if aso_debug_pub.g_debug_flag = 'Y' then
4359 aso_debug_pub.add('Create_Quote: p_validation_level: ' || p_validation_level, 1, 'Y');
4360 end if;
4361
4362 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4363
4364 ASO_PARTY_INT.Validate_CustAccount (
4365 p_init_msg_list => FND_API.G_FALSE,
4366 p_party_id => l_qte_header_rec.party_id,
4367 p_cust_account_id => l_qte_header_rec.cust_account_id,
4368 x_return_status => x_return_status,
4369 x_msg_count => x_msg_count,
4370 x_msg_data => x_msg_data );
4371
4372 if aso_debug_pub.g_debug_flag = 'Y' then
4373 aso_debug_pub.add('Create_Quote: After call to validate_custaccount: x_return_status: ' || x_return_status, 1, 'Y');
4374 end if;
4375
4376 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4377 RAISE FND_API.G_EXC_ERROR;
4378 END IF;
4379
4380 ASO_VALIDATE_PVT.Validate_Quote_Exp_date(
4381 p_init_msg_list => FND_API.G_FALSE,
4382 p_quote_expiration_date => p_qte_header_rec.quote_expiration_date,
4383 x_return_status => x_return_status,
4384 x_msg_count => x_msg_count,
4385 x_msg_data => x_msg_data );
4386
4387 if aso_debug_pub.g_debug_flag = 'Y' then
4388 aso_debug_pub.add('Create_Quote: After call to Validate_Quote_Exp_date: x_return_status: ' || x_return_status, 1, 'Y');
4389 end if;
4390
4391 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4392
4393 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4394 FND_MESSAGE.Set_Name('ASO', 'ASO_API_EXPIRATION_DATE');
4395 FND_MSG_PUB.ADD;
4396 END IF;
4397 RAISE FND_API.G_EXC_ERROR;
4398 END IF;
4399
4400 -- price list must exist and be active in OE_PRICE_LISTS
4401 ASO_VALIDATE_PVT.Validate_PriceList (
4402 p_init_msg_list => FND_API.G_FALSE,
4403 p_price_list_id => l_qte_header_rec.price_list_id,
4404 x_return_status => x_return_status,
4405 x_msg_count => x_msg_count,
4406 x_msg_data => x_msg_data);
4407
4408 if aso_debug_pub.g_debug_flag = 'Y' then
4409 aso_debug_pub.add('Create_Quote: After call to Validate_PriceList: x_return_status: ' || x_return_status, 1, 'Y');
4410 end if;
4411
4412 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4413
4414 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4415 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
4416 FND_MESSAGE.Set_Token('COLUMN', 'PRICE_LIST_ID', FALSE);
4417 FND_MSG_PUB.ADD;
4418 END IF;
4419 RAISE FND_API.G_EXC_ERROR;
4420 END IF;
4421
4422 ASO_VALIDATE_PVT.Validate_Quote_Price_Exp(
4423 p_init_msg_list => FND_API.G_FALSE,
4424 p_price_list_id => l_qte_header_rec.price_list_id,
4425 p_quote_expiration_date => l_qte_header_rec.quote_expiration_date,
4426 x_return_status => x_return_status,
4427 x_msg_count => x_msg_count,
4428 x_msg_data => x_msg_data);
4429
4430 if aso_debug_pub.g_debug_flag = 'Y' then
4431 aso_debug_pub.add('Create_Quote: After call to Validate_Quote_Price_Exp: x_return_status: ' || x_return_status, 1, 'Y');
4432 end if;
4433
4434 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4435
4436 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4437 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
4438 FND_MESSAGE.Set_Token('COLUMN', 'Price List Expires Before Quote', FALSE);
4439 FND_MSG_PUB.ADD;
4440 END IF;
4441 RAISE FND_API.G_EXC_ERROR;
4442 END IF;
4443
4444 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
4445
4446 -- status must exist and be active in ASO_QUOTE_STATUSES
4447 ASO_VALIDATE_PVT.Validate_Quote_Status (
4448 p_init_msg_list => FND_API.G_FALSE,
4449 p_quote_status_id => l_qte_header_rec.quote_status_id,
4450 x_return_status => x_return_status,
4451 x_msg_count => x_msg_count,
4452 x_msg_data => x_msg_data);
4453
4454 if aso_debug_pub.g_debug_flag = 'Y' then
4455 aso_debug_pub.add('Create_Quote: After call to Validate_Quote_Status: x_return_status: ' || x_return_status, 1, 'Y');
4456 end if;
4457
4458 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4459
4460 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4461 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
4462 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_STATUS_ID', FALSE);
4463 FND_MSG_PUB.ADD;
4464 END IF;
4465 RAISE FND_API.G_EXC_ERROR;
4466 END IF;
4467
4468 END IF;
4469
4470 if aso_debug_pub.g_debug_flag = 'Y' then
4471 aso_debug_pub.add('Create_Quote: p_hd_sales_credit_tbl.count: ' || p_hd_sales_credit_tbl.count, 1, 'Y');
4472 end if;
4473
4474 FOR i in 1..p_hd_sales_credit_tbl.count LOOP
4475
4476 if aso_debug_pub.g_debug_flag = 'Y' then
4477 aso_debug_pub.add('p_hd_sales_credit_tbl('||i||').operation_code: '|| p_hd_sales_credit_tbl(i).operation_code,1,'Y');
4478 end if;
4479
4480 if (p_hd_sales_credit_tbl(i).operation_code = 'CREATE' or p_hd_sales_credit_tbl(i).operation_code = 'UPDATE') then
4481
4482 ASO_VALIDATE_PVT.Validate_Resource_id(
4483 p_init_msg_list => FND_API.G_FALSE,
4484 p_resource_id => p_hd_sales_credit_tbl(i).resource_id ,
4485 x_return_status => x_return_status,
4486 x_msg_count => x_msg_count,
4487 x_msg_data => x_msg_data);
4488
4489 if aso_debug_pub.g_debug_flag = 'Y' then
4490 aso_debug_pub.add('Create_Quote: After call to Validate_Resource_id: x_return_status: ' || x_return_status, 1, 'Y');
4491 end if;
4492
4493 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4494
4495 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4496 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_SALES_REP_ID');
4497 FND_MSG_PUB.ADD;
4498 END IF;
4499 RAISE FND_API.G_EXC_ERROR;
4500 END IF;
4501
4502 ASO_VALIDATE_PVT.Validate_Resource_group_id(
4503 p_init_msg_list => FND_API.G_FALSE,
4504 p_resource_group_id => p_hd_sales_credit_tbl(i).resource_group_id,
4505 x_return_status => x_return_status,
4506 x_msg_count => x_msg_count,
4507 x_msg_data => x_msg_data);
4508
4509 if aso_debug_pub.g_debug_flag = 'Y' then
4510 aso_debug_pub.add('Create_Quote: After call to Validate_Resource_group_id: x_return_status: ' || x_return_status, 1, 'Y');
4511 end if;
4512
4513 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4514 RAISE FND_API.G_EXC_ERROR;
4515 END IF;
4516
4517 ASO_VALIDATE_PVT.Validate_Salescredit_Type(
4518 p_init_msg_list => FND_API.G_FALSE,
4519 p_salescredit_type_id => p_hd_sales_credit_tbl(i).sales_credit_type_id,
4520 x_return_status => x_return_status,
4521 x_msg_count => x_msg_count,
4522 x_msg_data => x_msg_data);
4523
4524 if aso_debug_pub.g_debug_flag = 'Y' then
4525 aso_debug_pub.add('Create_Quote: After call to Validate_Salescredit_Type: x_return_status: ' || x_return_status, 1, 'Y');
4526 end if;
4527
4528 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4529 RAISE FND_API.G_EXC_ERROR;
4530 END IF;
4531
4532 ASO_VALIDATE_PVT.Validate_EmployPerson(
4533 p_init_msg_list => FND_API.G_FALSE,
4534 p_employee_id => p_hd_sales_credit_tbl(i).employee_person_id,
4535 x_return_status => x_return_status,
4536 x_msg_count => x_msg_count,
4537 x_msg_data => x_msg_data);
4538
4539 if aso_debug_pub.g_debug_flag = 'Y' then
4540 aso_debug_pub.add('Create_Quote: After call to Validate_EmployPerson: x_return_status: ' || x_return_status, 1, 'Y');
4541 end if;
4542
4543 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4544 RAISE FND_API.G_EXC_ERROR;
4545 END IF;
4546
4547 end if;
4548
4549 END LOOP;
4550
4551 if aso_debug_pub.g_debug_flag = 'Y' then
4552 aso_debug_pub.add('Create_Quote: p_hd_quote_party_tbl.count: ' || p_hd_quote_party_tbl.count, 1, 'Y');
4553 end if;
4554
4555 FOR i in 1..p_hd_quote_party_tbl.count LOOP
4556
4557 ASO_VALIDATE_PVT.Validate_Party_Type(
4558 p_init_msg_list => FND_API.G_FALSE,
4559 p_party_type => p_hd_quote_party_tbl(i).party_type,
4560 x_return_status => x_return_status,
4561 x_msg_count => x_msg_count,
4562 x_msg_data => x_msg_data);
4563
4564 if aso_debug_pub.g_debug_flag = 'Y' then
4565 aso_debug_pub.add('Create_Quote: After call to Validate_Party_Type: x_return_status: ' || x_return_status, 1, 'Y');
4566 end if;
4567
4568 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4569 RAISE FND_API.G_EXC_ERROR;
4570 END IF;
4571
4572 ASO_VALIDATE_PVT.Validate_Party(
4573 p_init_msg_list => FND_API.G_FALSE,
4574 p_party_id => p_hd_quote_party_tbl(i).party_id,
4575 p_party_usage => null,
4576 x_return_status => x_return_status,
4577 x_msg_count => x_msg_count,
4578 x_msg_data => x_msg_data);
4579
4580 if aso_debug_pub.g_debug_flag = 'Y' then
4581 aso_debug_pub.add('Create_Quote: After call to Validate_Party: x_return_status: ' || x_return_status, 1, 'Y');
4582 end if;
4583
4584 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4585 RAISE FND_API.G_EXC_ERROR;
4586 END IF;
4587
4588 ASO_VALIDATE_PVT.Validate_Party_Object_Type(
4589 p_init_msg_list => FND_API.G_FALSE,
4590 p_party_object_type => p_hd_quote_party_tbl(i).party_object_type,
4591 x_return_status => x_return_status,
4592 x_msg_count => x_msg_count,
4593 x_msg_data => x_msg_data);
4594
4595 if aso_debug_pub.g_debug_flag = 'Y' then
4596 aso_debug_pub.add('Create_Quote: After call to Validate_Party_Object_Type: x_return_status: ' || x_return_status, 1, 'Y');
4597 end if;
4598
4599 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4600 RAISE FND_API.G_EXC_ERROR;
4601 END IF;
4602
4603 END LOOP;
4604
4605
4606 ASO_VALIDATE_PVT.Validate_item_tca_bsc(
4607 p_init_msg_list => FND_API.G_FALSE,
4608 p_qte_header_rec => l_qte_header_rec,
4609 p_shipment_rec => lx_hd_shipment_rec,
4610 p_operation_code => 'CREATE',
4611 p_application_type_code => l_control_rec.application_type_code,
4612 x_return_status => x_return_status,
4613 x_msg_count => x_msg_count,
4614 x_msg_data => x_msg_data);
4615
4616 if aso_debug_pub.g_debug_flag = 'Y' then
4617 aso_debug_pub.add('Create_Quote: After call to Validate_item_tca_bsc: x_return_status: ' || x_return_status, 1, 'Y');
4618 end if;
4619
4620 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4621 RAISE FND_API.G_EXC_ERROR;
4622 END IF;
4623
4624 ASO_VALIDATE_PVT.Validate_Resource_id(
4625 p_init_msg_list => FND_API.G_FALSE,
4626 p_resource_id => l_qte_header_rec.resource_id,
4627 x_return_status => x_return_status,
4628 x_msg_count => x_msg_count,
4629 x_msg_data => x_msg_data);
4630
4631 if aso_debug_pub.g_debug_flag = 'Y' then
4632 aso_debug_pub.add('Create_Quote: After call to Validate_Resource_id: x_return_status: ' || x_return_status, 1, 'Y');
4633 end if;
4634
4635 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4636 RAISE FND_API.G_EXC_ERROR;
4637 END IF;
4638
4639 END IF; --IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4640
4641
4642 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4643 aso_debug_pub.add('Create_Quote: Before call to Populate_Qte_Header', 1, 'Y');
4644 END IF;
4645
4646
4647 Populate_Qte_Header( p_qte_header_rec => l_qte_header_rec,
4648 p_Control_Rec => l_control_rec,
4649 x_qte_header_rec => lx_out_qte_header_rec);
4650
4651 l_qte_header_rec := lx_out_qte_header_rec;
4652
4653 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4654 aso_debug_pub.add('Create_Quote: After call to Populate_Qte_Header', 1, 'Y');
4655 END IF;
4656
4657
4658 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4659
4660 IF l_hd_shipment_tbl.count > 0 THEN
4661 l_shipment_rec := l_hd_shipment_tbl(1);
4662 END IF;
4663
4664 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4665 aso_debug_pub.add('Create_Quote: Before call to Validate_record_tca_crs', 1, 'N');
4666 END IF;
4667
4668 ASO_VALIDATE_PVT.Validate_record_tca_crs(
4669 p_init_msg_list => FND_API.G_FALSE,
4670 p_qte_header_rec => l_qte_header_rec,
4671 p_shipment_rec => l_shipment_rec,
4672 p_operation_code => 'CREATE',
4673 p_application_type_code => l_control_rec.application_type_code,
4674 x_return_status => x_return_status,
4675 x_msg_count => x_msg_count,
4676 x_msg_data => x_msg_data);
4677
4678 if aso_debug_pub.g_debug_flag = 'Y' then
4679 aso_debug_pub.add('Create_Quote: After call to Validate_record_tca_crs: x_return_status: ' || x_return_status, 1, 'Y');
4680 end if;
4681
4682 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4683 RAISE FND_API.G_EXC_ERROR;
4684 END IF;
4685
4686 -- bug 5196952 validate the ship method code
4687 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
4688
4689 -- get the master org id from the quote hdr org id
4690 OPEN c_inv_org_id(l_qte_header_rec.org_id);
4691 FETCH c_inv_org_id into l_master_organization_id;
4692 CLOSE c_inv_org_id;
4693
4694 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4695 aso_debug_pub.add('Create_Quote - l_master_organization_id: '|| l_master_organization_id, 1, 'N');
4696 aso_debug_pub.add('Create_Quote - l_qte_header_rec.org_id: '|| l_qte_header_rec.org_id, 1, 'N');
4697 aso_debug_pub.add('Create_Quote - before validate ship_method_code ', 1, 'N');
4698 end if;
4699 ASO_VALIDATE_PVT.validate_ship_method_code
4700 (
4701 p_init_msg_list => fnd_api.g_false,
4702 p_qte_header_id => l_qte_header_rec.quote_header_id,
4703 p_qte_line_id => fnd_api.g_miss_num,
4704 p_organization_id => l_master_organization_id,
4705 p_ship_method_code => l_shipment_rec.ship_method_code,
4706 p_operation_code => 'CREATE',
4707 x_return_status => x_return_status,
4708 x_msg_count => x_msg_count,
4709 x_msg_data => x_msg_data);
4710
4711 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4712 aso_debug_pub.add('Create_Quote - After validate ship_method_code ', 1, 'N');
4713 end if;
4714
4715 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4716 RAISE FND_API.G_EXC_ERROR;
4717 END IF;
4718 end if; -- end if for ship method code check
4719
4720 END IF; --IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
4721
4722
4723 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4724 aso_debug_pub.add('Create_Quote: Before call to check_tca', 1, 'N');
4725 END IF;
4726
4727 ASO_CHECK_TCA_PVT.check_tca( p_api_version => 1.0,
4728 p_init_msg_list => FND_API.G_FALSE,
4729 P_Qte_Rec => l_qte_header_rec,
4730 p_Header_Shipment_Tbl => l_hd_Shipment_Tbl,
4731 P_Operation_Code => 'CREATE',
4732 p_application_type_code => l_control_rec.application_type_code,
4733 x_return_status => x_return_status,
4734 x_msg_count => x_msg_count,
4735 x_msg_data => x_msg_data);
4736
4737 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4738 aso_debug_pub.add('Create_Quote: After call to check_tca: x_return_status: ' || x_return_status, 1, 'Y');
4739 END IF;
4740
4741 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4742 RAISE FND_API.G_EXC_ERROR;
4743 END IF;
4744
4745 -- order_type must exist and be active in OE_ORDER_TYPES
4746 ASO_TRADEIN_PVT.OrderType( p_init_msg_list => FND_API.G_FALSE,
4747 p_qte_header_rec => l_qte_header_rec,
4748 x_return_status => x_return_status,
4749 x_msg_count => x_msg_count,
4750 x_msg_data => x_msg_data);
4751
4752 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4753 RAISE FND_API.G_EXC_ERROR;
4754 END IF;
4755
4756 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4757 aso_debug_pub.add('Create_Quote: After call to OrderType: x_return_status: ' || x_return_status, 1, 'Y');
4758 END IF;
4759
4760 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD THEN
4761
4762
4763 ASO_VALIDATE_PVT.Validate_NotNULL_VARCHAR2 (
4764 p_init_msg_list => FND_API.G_FALSE,
4765 p_column_name => 'CURRENCY_CODE',
4766 p_notnull_column => l_qte_header_rec.currency_code,
4767 x_return_status => x_return_status,
4768 x_msg_count => x_msg_count,
4769 x_msg_data => x_msg_data);
4770
4771 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4772 aso_debug_pub.add('Create_Quote: After call to Validate_NotNULL_VARCHAR2: x_return_status: ' || x_return_status, 1, 'Y');
4773 END IF;
4774
4775 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4776 RAISE FND_API.G_EXC_ERROR;
4777 END IF;
4778
4779 ASO_VALIDATE_PVT.Validate_NotNULL_VARCHAR2 (
4780 p_init_msg_list => FND_API.G_FALSE,
4781 p_column_name => 'SOURCE_CODE',
4782 p_notnull_column => l_qte_header_rec.quote_source_code,
4783 x_return_status => x_return_status,
4784 x_msg_count => x_msg_count,
4785 x_msg_data => x_msg_data );
4786
4787 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4788 aso_debug_pub.add('Create_Quote: After call to Validate_NotNULL_VARCHAR2: x_return_status: ' || x_return_status, 1, 'Y');
4789 END IF;
4790
4791 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4792
4793 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4794 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
4795 FND_MESSAGE.Set_Token('COLUMN', 'SOURCE_CODE', FALSE);
4796 FND_MSG_PUB.ADD;
4797 END IF;
4798 RAISE FND_API.G_EXC_ERROR;
4799 END IF;
4800
4801 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4802 aso_debug_pub.add('Create_Quote: Before validate_tax_exemption ', 1, 'N');
4803 END IF;
4804
4805 -- tax_exempt_flag must be in 'E', 'R' and 'S'
4806 -- and tax_exempt_reason_code must exist if tax_exempt_flag is 'E'.
4807
4808 FOR i IN 1..l_hd_tax_detail_tbl.count LOOP
4809
4810 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
4811 p_init_msg_list => FND_API.G_FALSE,
4812 p_tax_exempt_flag => l_hd_tax_detail_tbl(i).tax_exempt_flag,
4813 p_tax_exempt_reason_code => l_hd_tax_detail_tbl(i).tax_exempt_reason_code,
4814 x_return_status => x_return_status,
4815 x_msg_count => x_msg_count,
4816 x_msg_data => x_msg_data );
4817
4818 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4819 aso_debug_pub.add('Create_Quote: After call to Validate_Tax_Exemption: x_return_status: ' || x_return_status, 1, 'Y');
4820 END IF;
4821
4822 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4823
4824 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4825 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
4826 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
4827 FND_MSG_PUB.ADD;
4828 END IF;
4829 RAISE FND_API.G_EXC_ERROR;
4830 END IF;
4831
4832 END LOOP;
4833
4834 FOR i IN 1..p_ln_tax_detail_tbl.count LOOP
4835
4836 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
4837 p_init_msg_list => FND_API.G_FALSE,
4838 p_tax_exempt_flag => p_ln_tax_detail_tbl(i).tax_exempt_flag,
4839 p_tax_exempt_reason_code => p_ln_tax_detail_tbl(i).tax_exempt_reason_code,
4840 x_return_status => x_return_status,
4841 x_msg_count => x_msg_count,
4842 x_msg_data => x_msg_data );
4843
4844 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4845 aso_debug_pub.add('Create_Quote: After call to Validate_Tax_Exemption: x_return_status: ' || x_return_status, 1, 'Y');
4846 END IF;
4847
4848 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4849
4850 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4851 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
4852 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
4853 FND_MSG_PUB.ADD;
4854 END IF;
4855 RAISE FND_API.G_EXC_ERROR;
4856 END IF;
4857
4858 END LOOP;
4859
4860 FOR i in 1..p_hd_quote_party_tbl.count LOOP
4861
4862 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4863 aso_debug_pub.add('Create_Quote: Before call to Validate_Party_Object_Id', 1, 'N');
4864 END IF;
4865
4866 ASO_VALIDATE_PVT.Validate_Party_Object_Id(
4867 p_init_msg_list => FND_API.G_FALSE,
4868 p_party_id => p_hd_quote_party_tbl(i).party_id,
4869 p_party_object_type => p_hd_quote_party_tbl(i).party_object_type,
4870 p_party_object_id => p_hd_quote_party_tbl(i).party_object_id,
4871 x_return_status => x_return_status,
4872 x_msg_count => x_msg_count,
4873 x_msg_data => x_msg_data);
4874
4875 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4876 aso_debug_pub.add('Create_Quote: After call to Validate_Party_Object_Id: x_return_status: ' || x_return_status, 1, 'Y');
4877 END IF;
4878
4879 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4880
4881 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4882 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
4883 FND_MESSAGE.Set_Token('INFO', 'PARTY OBJECT ID', FALSE);
4884 FND_MSG_PUB.ADD;
4885 END IF;
4886 RAISE FND_API.G_EXC_ERROR;
4887 END IF;
4888
4889 END LOOP;
4890
4891 ASO_VALIDATE_PVT.Validate_Emp_Res_id(
4892 p_init_msg_list => FND_API.G_FALSE,
4893 p_resource_id => p_qte_header_rec.resource_id,
4894 p_employee_person_id => p_qte_header_rec.employee_person_id ,
4895 x_return_status => x_return_status,
4896 x_msg_count => x_msg_count,
4897 x_msg_data => x_msg_data );
4898
4899 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4900 aso_debug_pub.add('Create_Quote: After call to Validate_Emp_Res_id: x_return_status: ' || x_return_status, 1, 'Y');
4901 END IF;
4902
4903 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4904 RAISE FND_API.G_EXC_ERROR;
4905 END IF;
4906
4907 END IF; --IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD THEN
4908
4909
4910 IF (FND_PROFILE.Value('ASO_ENABLE_SPLIT_PAYMENT') = 'N') THEN
4911
4912 IF l_hd_payment_tbl.count > 1 THEN
4913
4914 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4915 FND_MESSAGE.Set_Name('ASO', 'ASO_API_SPLIT_PAYMENT');
4916 FND_MSG_PUB.ADD;
4917 END IF;
4918 RAISE FND_API.G_EXC_ERROR;
4919
4920 ELSIF l_hd_payment_tbl.count = 1 THEN
4921
4922 IF l_hd_payment_tbl(1).payment_option = 'SPLIT' THEN
4923
4924 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4925 FND_MESSAGE.Set_Name('ASO', 'ASO_API_SPLIT_PAYMENT');
4926 FND_MSG_PUB.ADD;
4927 END IF;
4928 RAISE FND_API.G_EXC_ERROR;
4929 END IF;
4930
4931 END IF;
4932
4933 END IF;
4934
4935 IF (FND_PROFILE.Value('ASO_ENABLE_SPLIT_PAYMENT') = 'Y') THEN
4936
4937 IF l_hd_payment_tbl.count > 1 THEN
4938
4939 FOR i IN 1..l_hd_payment_tbl.count LOOP
4940
4941 IF l_hd_payment_tbl(i).payment_option <> 'SPLIT' THEN
4942
4943 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4944 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_PAYMENTS');
4945 FND_MSG_PUB.ADD;
4946 END IF;
4947 RAISE FND_API.G_EXC_ERROR;
4948 END IF;
4949
4950 END LOOP;
4951 END IF;
4952 END IF;
4953
4954 IF l_hd_tax_detail_tbl.count > 1 THEN
4955
4956 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
4957 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_TAX_RECORDS');
4958 FND_MSG_PUB.ADD;
4959 END IF;
4960 RAISE FND_API.G_EXC_ERROR;
4961 END IF;
4962
4963 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4964 aso_debug_pub.add('Create_Quote: Before Validate_Agreement:l_qte_header_rec.contract_id: '||l_qte_header_rec.contract_id, 1, 'N');
4965 END IF;
4966
4967 IF (l_qte_header_rec.contract_id IS NOT NULL AND
4968 l_qte_header_rec.contract_id <> FND_API.G_MISS_NUM) THEN
4969
4970 ASO_VALIDATE_PVT.Validate_Agreement(
4971 p_init_msg_list => FND_API.G_FALSE,
4972 P_Agreement_Id => l_qte_header_rec.contract_id,
4973 x_return_status => x_return_status,
4974 x_msg_count => x_msg_count,
4975 x_msg_data => x_msg_data);
4976
4977 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4978 aso_debug_pub.add('Create_Quote: After call to Validate_Agreement: x_return_status: '||x_return_status, 1, 'N');
4979 END IF;
4980
4981 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
4982 RAISE FND_API.G_EXC_ERROR;
4983 END IF;
4984 END IF;
4985
4986 IF aso_debug_pub.g_debug_flag = 'Y' THEN
4987 aso_debug_pub.add('Create_Quote: p_qte_header_rec.minisite_id: '|| p_qte_header_rec.minisite_id);
4988 END IF;
4989
4990 IF (p_qte_header_rec.minisite_id IS NOT NULL AND
4991 p_qte_header_rec.minisite_id <> FND_API.G_MISS_NUM) THEN
4992
4993 ASO_VALIDATE_PVT.Validate_MiniSite( p_init_msg_list => FND_API.G_FALSE,
4994 p_minisite_id => p_qte_header_rec.minisite_id,
4995 x_return_status => x_return_status,
4996 x_msg_count => x_msg_count,
4997 x_msg_data => x_msg_data);
4998
4999 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5000 aso_debug_pub.add('Create_Quote: After call to ASO_VALIDATE_PVT.Validate_MiniSite');
5001 aso_debug_pub.add('Create_Quote: x_return_status: '|| x_return_status);
5002 END IF;
5003
5004 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5005 RAISE FND_API.G_EXC_ERROR;
5006 END IF;
5007
5008 END IF;
5009
5010 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5011 aso_debug_pub.add('Create_Quote: Before call to insert_rows', 1, 'Y');
5012 END IF;
5013
5014 Insert_Rows (
5015 p_qte_header_rec => l_qte_header_rec,
5016 p_Price_Attributes_Tbl => p_hd_price_attributes_tbl,
5017 P_Price_Adjustment_Tbl => l_price_adj_tbl,
5018 P_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl,
5019 P_Payment_Tbl => l_hd_payment_tbl,
5020 P_Shipment_tbl => l_hd_shipment_tbl,
5021 P_Freight_Charge_Tbl => p_hd_freight_charge_tbl,
5022 P_Tax_Detail_Tbl => l_hd_tax_detail_tbl,
5023 P_hd_Attr_Ext_Tbl => P_hd_Attr_Ext_Tbl,
5024 P_sales_credit_tbl => p_hd_sales_credit_tbl,
5025 P_quote_party_tbl => p_hd_quote_party_tbl,
5026 P_Qte_Access_Tbl => P_Qte_Access_Tbl,
5027 x_qte_header_rec => x_qte_header_rec,
5028 x_Price_Attributes_Tbl => x_hd_price_attributes_tbl,
5029 x_Price_Adjustment_Tbl => l_price_adj_tbl_out,
5030 x_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl_out,
5031 x_Payment_Tbl => x_hd_payment_tbl,
5032 x_Shipment_rec => x_hd_shipment_rec,
5033 x_Freight_Charge_Tbl => x_hd_freight_charge_tbl,
5034 x_Tax_Detail_Tbl => x_hd_tax_detail_tbl,
5035 x_hd_Attr_Ext_Tbl => x_hd_Attr_Ext_Tbl,
5036 x_sales_credit_tbl => x_hd_sales_credit_tbl,
5037 x_quote_party_tbl => x_hd_quote_party_tbl,
5038 x_Qte_Access_Tbl => x_Qte_Access_Tbl,
5039 X_Return_Status => l_return_status,
5040 X_Msg_Count => x_msg_count,
5041 X_Msg_Data => x_msg_data);
5042
5043 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5044 aso_debug_pub.add('Create_Quote: After call to Insert_Rows: x_return_status: '||x_return_status, 1, 'N');
5045 END IF;
5046
5047 l_price_adj_tbl := l_price_adj_tbl_out;
5048 l_price_adj_attr_tbl := l_price_adj_attr_tbl_out;
5049
5050
5051 -- Add template rows to p_qte_line_tbl and p_qte_line_dtl tbales
5052
5053 if aso_debug_pub.g_debug_flag = 'Y' then
5054 aso_debug_pub.add('Create_Quote: p_template_tbl.count: ' || p_template_tbl.count, 1, 'Y');
5055 end if;
5056
5057 if p_template_tbl.count > 0 then
5058
5059 for i in 1..p_template_tbl.count loop
5060 l_template_tbl(i) := p_template_tbl(i).template_id;
5061 end loop;
5062
5063 if aso_debug_pub.g_debug_flag = 'Y' then
5064 aso_debug_pub.add('Create_Quote: l_template_tbl.count: ' || l_template_tbl.count, 1, 'Y');
5065 aso_debug_pub.add('Create_Quote: x_qte_header_rec.currency_code: ' || x_qte_header_rec.currency_code, 1, 'Y');
5066 aso_debug_pub.add('Create_Quote: x_qte_header_rec.price_list_id: ' || x_qte_header_rec.price_list_id, 1, 'Y');
5067 aso_debug_pub.add('Create_Quote: Before call to aso_quote_templ_pvt.add_template_to_quote procedure', 1, 'Y');
5068 end if;
5069
5070 aso_quote_tmpl_pvt.add_template_to_quote(
5071 p_api_version_number => 1.0,
5072 p_init_msg_list => fnd_api.g_false,
5073 p_commit => fnd_api.g_false,
5074 p_validation_level => p_validation_level,
5075 p_update_flag => 'N',
5076 p_template_id_tbl => l_template_tbl,
5077 p_qte_header_rec => x_qte_header_rec,
5078 p_control_rec => p_control_rec,
5079 x_qte_line_tbl => lx_qte_line_tbl,
5080 x_qte_line_dtl_tbl => x_qte_line_dtl_tbl,
5081 x_return_status => x_return_status,
5082 x_msg_count => x_msg_count,
5083 x_msg_data => x_msg_data
5084 );
5085
5086
5087 if aso_debug_pub.g_debug_flag = 'Y' then
5088
5089 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');
5090 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl.count: ' || lx_qte_line_tbl.count, 1, 'Y');
5091 aso_debug_pub.add('Create_Quote: x_qte_line_dtl_tbl.count: ' || x_qte_line_dtl_tbl.count, 1, 'Y');
5092
5093 for i in 1 .. lx_qte_line_tbl.count loop
5094 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl('||i||').inventory_item_id: '|| lx_qte_line_tbl(i).inventory_item_id, 1, 'N');
5095 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl('||i||').uom_code: '|| lx_qte_line_tbl(i).uom_code, 1, 'N');
5096 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl('||i||').quantity: '|| lx_qte_line_tbl(i).quantity, 1, 'N');
5097 end loop;
5098
5099 for i in 1 .. x_qte_line_dtl_tbl.count loop
5100
5101 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');
5102 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');
5103 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');
5104 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');
5105
5106 end loop;
5107
5108 end if;
5109
5110
5111 if lx_qte_line_tbl.count > 0 then
5112
5113 l_qte_line_dtl_tbl_out := x_qte_line_dtl_tbl;
5114
5115 for i in 1 .. lx_qte_line_tbl.count loop
5116
5117 l_count := l_qte_line_tbl.count;
5118
5119 l_qte_line_tbl(l_count + 1) := lx_qte_line_tbl(i);
5120
5121 for j in 1 .. x_qte_line_dtl_tbl.count loop
5122
5123 if x_qte_line_dtl_tbl(j).qte_line_index = i then
5124 l_qte_line_dtl_tbl_out(j).qte_line_index := l_count + 1;
5125 end if;
5126
5127 if x_qte_line_dtl_tbl(j).ref_line_index = i then
5128 l_qte_line_dtl_tbl_out(j).ref_line_index := l_count + 1;
5129 end if;
5130
5131 if x_qte_line_dtl_tbl(j).service_ref_qte_line_index = i then
5132 l_qte_line_dtl_tbl_out(j).service_ref_qte_line_index := l_count + 1;
5133 end if;
5134
5135 if x_qte_line_dtl_tbl(j).top_model_line_index = i then
5136 l_qte_line_dtl_tbl_out(j).top_model_line_index := l_count + 1;
5137 end if;
5138
5139 if x_qte_line_dtl_tbl(j).ato_line_index = i then
5140 l_qte_line_dtl_tbl_out(j).ato_line_index := l_count + 1;
5141 end if;
5142
5143 end loop;
5144
5145 end loop;
5146
5147 if l_qte_line_dtl_tbl_out.count > 0 then
5148
5149 for i in 1 .. l_qte_line_dtl_tbl_out.count loop
5150 lx_qte_line_dtl_tbl(lx_qte_line_dtl_tbl.count + 1) := l_qte_line_dtl_tbl_out(i);
5151 end loop;
5152
5153 end if;
5154
5155 end if; -- if lx_qte_line_tbl.count > 0 then
5156
5157 end if; --if p_template_tbl.count > 0 then
5158
5159
5160 if aso_debug_pub.g_debug_flag = 'Y' then
5161
5162 aso_debug_pub.add('Create_Quote: l_qte_line_tbl.count: ' || l_qte_line_tbl.count, 1, 'Y');
5163 aso_debug_pub.add('Create_Quote: lx_qte_line_dtl_tbl.count: ' || lx_qte_line_dtl_tbl.count, 1, 'Y');
5164
5165 for i in 1 .. l_qte_line_tbl.count loop
5166 aso_debug_pub.add('Create_Quote: l_qte_line_tbl('||i||').inventory_item_id: '|| l_qte_line_tbl(i).inventory_item_id, 1, 'N');
5167 aso_debug_pub.add('Create_Quote: l_qte_line_tbl('||i||').uom_code: '|| l_qte_line_tbl(i).uom_code, 1, 'N');
5168 aso_debug_pub.add('Create_Quote: l_qte_line_tbl('||i||').quantity: '|| l_qte_line_tbl(i).quantity, 1, 'N');
5169 end loop;
5170
5171 for i in 1 .. lx_qte_line_dtl_tbl.count loop
5172
5173 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');
5174 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');
5175 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');
5176 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');
5177 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');
5178 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');
5179 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');
5180 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');
5181
5182 end loop;
5183
5184 end if;
5185
5186 -- End of Add template rows
5187
5188
5189 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5190 aso_debug_pub.add('Create_Quote: value of ASO_API_ENABLE_SECURITY: ' || FND_PROFILE.Value('ASO_API_ENABLE_SECURITY'), 1, 'Y');
5191 aso_debug_pub.add('Create_Quote: Before Assign_Team: l_sales_team_prof: ' || l_sales_team_prof, 1, 'Y');
5192 aso_debug_pub.add('Create_Quote: value of p_qte_header_rec.quote_type: ' || p_qte_header_rec.quote_type, 1, 'Y');
5193 END IF;
5194
5195 IF (NVL(FND_PROFILE.Value('ASO_API_ENABLE_SECURITY'),'N') = 'Y' AND NVL(p_qte_header_rec.quote_type, 'X') <> 'T') THEN
5196
5197 lx_qte_header_rec := x_qte_header_rec;
5198
5199 OPEN C_Check_Qte_Status (x_qte_header_rec.quote_header_id);
5200 FETCH C_Check_Qte_Status INTO l_istore_source;
5201 CLOSE C_Check_Qte_Status;
5202
5203 IF l_sales_team_prof = 'FULL' OR l_sales_team_prof = 'PARTIAL' THEN
5204
5205 IF p_control_rec.quote_source <> 'OPP_QUOTE' THEN
5206
5207 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5208 aso_debug_pub.add('Create_Quote: Before Assign_Team: p_control_rec.quote_source: ' || p_control_rec.quote_source, 1, 'Y');
5209 aso_debug_pub.add('Create_Quote: Before Assign_Team: l_istore_source: ' || l_istore_source, 1, 'Y');
5210 END IF;
5211
5212 IF l_istore_source <> 'Y' THEN
5213
5214 ASO_SALES_TEAM_PVT.Assign_Sales_Team (
5215 P_Init_Msg_List => FND_API.G_FALSE,
5216 P_Commit => FND_API.G_FALSE,
5217 p_Qte_Header_Rec => x_qte_header_rec,
5218 P_Operation => 'CREATE',
5219 x_Qte_Header_Rec => lx_qte_header_rec,
5220 x_return_status => x_return_status,
5221 x_msg_count => x_msg_count,
5222 x_msg_data => x_msg_data );
5223
5224 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5225 aso_debug_pub.add('Create_Quote: After call to Assign_Sales_Team: x_return_status: '||x_return_status, 1, 'N');
5226 END IF;
5227
5228 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5229 RAISE FND_API.G_EXC_ERROR;
5230 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5231 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5232 END IF;
5233
5234 END IF; --istore
5235
5236 ELSE -- opp_quote
5237
5238 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5239 aso_debug_pub.add('Create_Quote: Before Opp_Quote_Primary_SalesRep: p_control_rec.quote_source: ' || p_control_rec.quote_source, 1, 'Y');
5240 END IF;
5241
5242 ASO_SALES_TEAM_PVT.Opp_Quote_Primary_SalesRep (
5243 P_Init_Msg_List => FND_API.G_FALSE,
5244 p_Qte_Header_Rec => x_qte_header_rec,
5245 x_Qte_Header_Rec => lx_qte_header_rec,
5246 x_return_status => x_return_status,
5247 x_msg_count => x_msg_count,
5248 x_msg_data => x_msg_data );
5249
5250 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5251 aso_debug_pub.add('Create_Quote: After call to Opp_Quote_Primary_SalesRep: x_return_status: '||x_return_status, 1, 'N');
5252 END IF;
5253
5254 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5255 RAISE FND_API.G_EXC_ERROR;
5256 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5257 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5258 END IF;
5259
5260 END IF; -- opp_quote
5261
5262 ELSE -- prof = NONE
5263
5264 ASO_SECURITY_INT.Add_SalesRep_QuoteCreator (
5265 p_init_msg_list => FND_API.G_FALSE,
5266 p_commit => FND_API.G_FALSE,
5267 p_Qte_Header_Rec => x_qte_header_rec,
5268 x_return_status => x_return_status,
5269 x_msg_count => x_msg_count,
5270 x_msg_data => x_msg_data );
5271
5272 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5273 aso_debug_pub.add('Create_Quote: After call to Add_SalesRep_QuoteCreator: x_return_status: '||x_return_status, 1, 'N');
5274 END IF;
5275
5276 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5277 RAISE FND_API.G_EXC_ERROR;
5278 END IF;
5279
5280 open c_last_update_date(x_qte_header_rec.quote_header_id);
5281 fetch c_last_update_date into x_qte_header_rec.last_update_date;
5282 close c_last_update_date;
5283
5284 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
5285
5286 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5287 aso_debug_pub.add('Create_Quote: After call to Add_SalesRep_QuoteCreator');
5288 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
5289 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
5290 END IF;
5291
5292 END IF; -- prof
5293
5294 if aso_debug_pub.g_debug_flag = 'Y' then
5295 aso_debug_pub.add('Create_Quote: x_hd_sales_credit_tbl.count: '|| x_hd_sales_credit_tbl.count);
5296 end if;
5297
5298 IF x_hd_sales_credit_tbl.count < 1 AND l_istore_source <> 'Y' THEN
5299
5300 OPEN C_Get_Quota_Credit_Type;
5301 FETCH C_Get_Quota_Credit_Type INTO l_quota_id;
5302 CLOSE C_Get_Quota_Credit_Type;
5303
5304 if aso_debug_pub.g_debug_flag = 'Y' then
5305 aso_debug_pub.add('Create_Quote: l_quota_id: '|| l_quota_id);
5306 end if;
5307
5308 x_hd_sales_credit_tbl(1) := ASO_QUOTE_PUB.G_MISS_SALES_CREDIT_REC;
5309
5310 if aso_debug_pub.g_debug_flag = 'Y' then
5311 aso_debug_pub.add('Create_Quote: After assigning x_hd_sales_credit_tbl.count: '|| x_hd_sales_credit_tbl.count);
5312 end if;
5313
5314 ASO_SALES_CREDITS_PKG.Insert_Row(
5315 p_CREATION_DATE => SYSDATE,
5316 p_CREATED_BY => G_USER_ID,
5317 p_LAST_UPDATED_BY => G_USER_ID,
5318 p_LAST_UPDATE_DATE => SYSDATE,
5319 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
5320 p_REQUEST_ID => FND_API.G_MISS_NUM,
5321 p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM,
5322 p_PROGRAM_ID => FND_API.G_MISS_NUM,
5323 p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE,
5324 px_SALES_CREDIT_ID => x_hd_sales_credit_tbl(1).Sales_Credit_Id,
5325 p_QUOTE_HEADER_ID => lx_qte_header_rec.QUOTE_HEADER_ID,
5326 p_QUOTE_LINE_ID => FND_API.G_MISS_NUM,
5327 p_PERCENT => 100,
5328 p_RESOURCE_ID => lx_qte_header_rec.RESOURCE_ID,
5329 p_RESOURCE_GROUP_ID => lx_qte_header_rec.RESOURCE_GRP_ID,
5330 p_EMPLOYEE_PERSON_ID => FND_API.G_MISS_NUM,
5331 p_SALES_CREDIT_TYPE_ID => l_quota_id,
5332 p_ATTRIBUTE_CATEGORY_CODE => FND_API.G_MISS_CHAR,
5333 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
5334 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
5335 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
5336 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
5337 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
5338 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
5339 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
5340 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
5341 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
5342 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
5343 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
5344 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
5345 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
5346 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
5347 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
5348 p_ATTRIBUTE16 => FND_API.G_MISS_CHAR,
5349 p_ATTRIBUTE17 => FND_API.G_MISS_CHAR,
5350 p_ATTRIBUTE18 => FND_API.G_MISS_CHAR,
5351 p_ATTRIBUTE19 => FND_API.G_MISS_CHAR,
5352 p_ATTRIBUTE20 => FND_API.G_MISS_CHAR,
5353 p_SYSTEM_ASSIGNED_FLAG => 'N',
5354 p_CREDIT_RULE_ID => FND_API.G_MISS_NUM,
5355 p_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM );
5356
5357 if aso_debug_pub.g_debug_flag = 'Y' then
5358 aso_debug_pub.add('Create_Quote: After call to Insert_Row Sales_Credit_Id: '|| x_hd_sales_credit_tbl(1).Sales_Credit_Id);
5359 end if;
5360
5361 END IF; -- sales_cred_tbl.count
5362
5363 END IF; -- Enable API Security Prof
5364
5365 -- end security changes
5366
5367 -- changes for quote related objects
5368
5369 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5370 aso_debug_pub.add('Before creating object relationship ', 1, 'Y');
5371 END IF;
5372
5373 IF P_Related_Obj_Tbl.count > 0 THEN
5374
5375 For i in 1..P_Related_Obj_Tbl.count LOOP
5376
5377 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5378 aso_debug_pub.add('Inside the related object loop ', 1, 'Y');
5379 END IF;
5380
5381 l_related_obj_rec := P_Related_Obj_Tbl(i);
5382
5383 -- logic to populate the operation code
5384 Open c_obj_id(x_qte_header_rec.quote_header_id);
5385 Fetch c_obj_id INTO l_obj_id;
5386 IF c_obj_id%NOTFOUND THEN
5387 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5388 aso_debug_pub.add(' Setting the operation code for rel obj tbl ', 1, 'Y');
5389 aso_debug_pub.add(' Obj id in rel obj rec is : '|| to_char(l_related_obj_rec.object_id), 1, 'Y');
5390 END IF;
5391 IF l_related_obj_rec.object_id IS NOT NULL THEN
5392 l_related_obj_rec.operation_code := 'CREATE';
5393 END IF;
5394 END IF;
5395 Close c_obj_id;
5396
5397 IF l_related_obj_rec.operation_code = 'CREATE' THEN
5398 l_related_obj_rec.quote_object_id := x_qte_header_rec.quote_header_id;
5399 x_related_obj_rec := l_related_obj_rec;
5400
5401 ASO_RLTSHIP_PUB.Create_Object_Relationship(
5402 P_Api_Version_Number => 1.0,
5403 P_Init_Msg_List => FND_API.G_FALSE,
5404 P_Commit => FND_API.G_FALSE,
5405 p_validation_level => p_validation_level,
5406 P_RELATED_OBJ_Rec => l_related_obj_rec,
5407 X_related_object_id => x_related_obj_rec.related_object_id,
5408 X_Return_Status => X_Return_Status,
5409 X_Msg_Count => X_Msg_Count,
5410 X_Msg_Data => X_Msg_Data);
5411
5412 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5413 aso_debug_pub.add('Create_Quote: After call to Create_Object_Relationship: x_return_status: '||x_return_status, 1, 'N');
5414 END IF;
5415
5416 X_Related_Obj_Tbl(i) := x_related_obj_rec;
5417
5418 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
5419 RAISE FND_API.G_EXC_ERROR;
5420 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5421 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5422 END IF;
5423 END IF;
5424
5425 END LOOP;
5426
5427
5428 END IF;
5429
5430 -- end of Rel Obj changes
5431
5432
5433 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5434 aso_debug_pub.add('Before validate quote percent: p_validation_level: '|| p_validation_level, 1, 'Y');
5435 END IF;
5436
5437 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
5438
5439 IF x_hd_sales_credit_tbl.count > 0 THEN
5440
5441 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5442 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');
5443 END IF;
5444
5445 x_hd_sales_credit_tbl(1).quote_header_id := x_qte_header_rec.QUOTE_HEADER_ID;
5446
5447 ASO_VALIDATE_PVT.Validate_Quote_Percent(
5448 p_init_msg_list => FND_API.G_FALSE,
5449 p_sales_credit_tbl => x_hd_sales_credit_tbl,
5450 x_return_status => x_return_status,
5451 x_msg_count => x_msg_count,
5452 x_msg_data => x_msg_data);
5453
5454 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5455 aso_debug_pub.add('Create_Quote: After call to Validate_Quote_Percent: x_return_status: '|| x_return_status, 1, 'N');
5456 END IF;
5457
5458 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5459 RAISE FND_API.G_EXC_ERROR;
5460 END IF;
5461 END IF;
5462
5463 END IF;
5464
5465 l_index := X_Price_Adjustment_tbl.count + 1;
5466
5467 FOR i IN 1.. l_Price_Adj_tbl.count LOOP
5468 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(i);
5469 l_index := l_index + 1;
5470 END LOOP;
5471
5472 FOR j IN 1..l_prc_index_link.count LOOP
5473 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id := l_price_adj_tbl(j).price_adjustment_id;
5474 END LOOP;
5475
5476 l_index := X_Price_Adj_Attr_tbl.count + 1;
5477
5478 FOR i IN 1.. l_Price_Adj_Attr_tbl.count LOOP
5479 x_Price_Adj_Attr_tbl(l_index) := l_Price_Adj_Attr_tbl(i);
5480 l_index := l_index + 1;
5481 END LOOP;
5482
5483 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
5484
5485 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5486
5487 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5488 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
5489 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER INSERT ROW', TRUE);
5490 FND_MSG_PUB.ADD;
5491 END IF;
5492 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5493
5494 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
5495 x_return_status := FND_API.G_RET_STS_ERROR;
5496 END IF;
5497
5498 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5499 aso_debug_pub.add('Create_Quote - l_qte_line_tbl.count: '||l_qte_line_tbl.count, 1, 'N');
5500 END IF;
5501
5502 FOR i IN 1 .. l_qte_line_tbl.count LOOP
5503
5504 l_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
5505 l_index := 1;
5506
5507 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
5508
5509 IF lx_qte_line_dtl_tbl(j).qte_line_index = i THEN
5510
5511 l_qte_line_dtl_tbl(l_index) := lx_qte_line_dtl_tbl(j);
5512 l_index := l_index + 1;
5513 END IF;
5514 END LOOP;
5515
5516 l_price_attr_tbl := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl;
5517 l_index := 1;
5518
5519 FOR j IN 1..p_ln_price_attributes_tbl.count LOOP
5520
5521 IF p_ln_price_attributes_tbl(j).qte_line_index = i THEN
5522 l_price_attr_tbl(l_index) := p_ln_price_attributes_tbl(j);
5523 END IF;
5524
5525 END LOOP;
5526
5527 l_ln_shipment_tbl := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL;
5528 l_shp_index_link := G_Miss_Link_Tbl;
5529 l_index := 1;
5530
5531 FOR j IN 1..p_ln_shipment_tbl.count LOOP
5532
5533 IF p_ln_shipment_tbl(j).qte_line_index = i THEN
5534 l_ln_shipment_tbl(l_index) := p_ln_shipment_tbl(j);
5535 l_shp_index_link(j) := l_index;
5536 l_index := l_index+1;
5537 END IF;
5538
5539 END LOOP;
5540
5541 l_freight_charge_tbl := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl;
5542 l_index := 1;
5543
5544 FOR j IN 1..p_ln_freight_charge_tbl.count LOOP
5545
5546 IF p_ln_freight_charge_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5547 p_ln_freight_charge_tbl(j).shipment_index IS NOT NULL AND
5548 l_shp_index_link.EXISTS(p_ln_freight_charge_tbl(j).shipment_index) THEN
5549
5550 l_freight_charge_tbl(l_index) := p_ln_freight_charge_tbl(j);
5551 l_freight_charge_tbl(l_index).shipment_index :=
5552 l_shp_index_link(p_ln_freight_charge_tbl(j).shipment_index);
5553 l_index := l_index+1;
5554 END IF;
5555 END LOOP;
5556
5557 l_line_attr_ext_tbl := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL;
5558 l_index := 1;
5559
5560 FOR j IN 1..p_line_attr_ext_tbl.count LOOP
5561
5562 IF p_line_attr_ext_tbl(j).qte_line_index = i THEN
5563
5564 l_line_attr_ext_tbl(l_index) := p_line_attr_ext_tbl(j);
5565 l_line_attr_ext_tbl(l_index).quote_header_id := x_qte_header_rec.quote_header_id;
5566
5567 IF p_line_attr_ext_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5568 p_line_attr_ext_tbl(j).shipment_index IS NOT NULL AND
5569 l_shp_index_link.EXISTS(p_line_attr_ext_tbl(j).shipment_index) THEN
5570
5571 l_line_attr_ext_tbl(l_index).shipment_index := l_shp_index_link(p_line_attr_ext_tbl(j).shipment_index);
5572 END IF;
5573
5574 l_index := l_index + 1;
5575 END IF;
5576
5577 END LOOP;
5578
5579 l_payment_tbl := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL;
5580 l_index := 1;
5581
5582 FOR j IN 1..p_ln_payment_tbl.count LOOP
5583
5584 IF p_ln_payment_tbl(j).qte_line_index = i THEN
5585
5586 l_payment_tbl(l_index) := p_ln_payment_tbl(j);
5587
5588 IF p_ln_payment_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5589 p_ln_payment_tbl(j).shipment_index IS NOT NULL AND
5590 l_shp_index_link.EXISTS(p_ln_payment_tbl(j).shipment_index) THEN
5591
5592 l_payment_tbl(l_index).shipment_index := l_shp_index_link(p_ln_payment_tbl(j).shipment_index);
5593 END IF;
5594
5595 l_index := l_index +1;
5596 END IF;
5597
5598 END LOOP;
5599
5600 l_price_adj_tbl := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl;
5601 l_prc_index_link := G_Miss_Link_Tbl;
5602 l_prc_index_link_rev := G_Miss_Link_Tbl;
5603 l_index := 1;
5604
5605 FOR j IN 1..p_price_adjustment_tbl.count LOOP
5606
5607 IF p_price_adjustment_tbl(j).qte_line_index = i THEN
5608
5609 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(j);
5610 l_prc_index_link(l_index) := j;
5611 l_prc_index_link_rev(i) := l_index;
5612
5613 IF p_price_adjustment_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5614 p_price_adjustment_tbl(j).shipment_index IS NOT NULL AND
5615 l_shp_index_link.EXISTS(p_price_adjustment_tbl(j).shipment_index) THEN
5616
5617 l_price_adj_tbl(l_index).shipment_index := l_shp_index_link(p_price_adjustment_tbl(j).shipment_index);
5618 END IF;
5619 l_index := l_index + 1;
5620 END IF;
5621 END LOOP;
5622
5623 l_price_adj_attr_tbl := ASO_QUOTE_PUB.G_Miss_Price_Adj_Attr_Tbl;
5624 l_index := 1;
5625
5626 FOR j IN 1..p_price_adj_attr_tbl.count LOOP
5627
5628 IF p_price_adj_attr_tbl(j).price_adj_index <> FND_API.G_MISS_NUM AND
5629 l_prc_index_link_rev.exists(p_price_adj_attr_tbl(j).price_adj_index) THEN
5630
5631 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(j);
5632 l_price_adj_attr_tbl(l_index).price_adj_index :=
5633 l_prc_index_link_rev(l_price_adj_attr_tbl(l_index).price_adj_index);
5634 l_index := l_index + 1;
5635 END IF;
5636
5637 END LOOP;
5638
5639 l_tax_detail_tbl := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl;
5640 l_index := 1;
5641
5642 FOR j IN 1..p_ln_tax_detail_tbl.count LOOP
5643
5644 IF p_ln_tax_detail_tbl(j).qte_line_index = i THEN
5645
5646 l_tax_detail_tbl(l_index) := p_ln_tax_detail_tbl(j);
5647
5648 IF p_ln_tax_detail_tbl(j).shipment_index <> FND_API.G_MISS_NUM
5649 AND l_shp_index_link.EXISTS(p_ln_tax_detail_tbl(j).shipment_index)
5650 AND p_ln_tax_detail_tbl(l_index).shipment_index IS NOT NULL THEN
5651
5652 l_tax_detail_tbl(l_index).shipment_index := l_shp_index_link(p_ln_tax_detail_tbl(j).shipment_index);
5653 END IF;
5654 l_index := l_index+1;
5655 END IF;
5656
5657 END LOOP;
5658
5659 l_sales_credit_tbl := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl;
5660
5661 l_index := 1;
5662 FOR j IN 1..p_ln_sales_credit_tbl.count LOOP
5663
5664 IF p_ln_sales_credit_tbl(j).qte_line_index = i THEN
5665
5666 l_sales_credit_tbl(l_index) := p_ln_sales_credit_tbl(j);
5667 l_index := l_index +1;
5668 END IF;
5669
5670 END LOOP;
5671
5672 l_quote_party_tbl := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl;
5673 l_index := 1;
5674
5675 FOR j IN 1..p_ln_quote_party_tbl.count LOOP
5676
5677 IF p_ln_quote_party_tbl(j).qte_line_index = i THEN
5678
5679 l_quote_party_tbl(l_index) := p_ln_quote_party_tbl(j);
5680
5681 IF p_ln_quote_party_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
5682 p_ln_quote_party_tbl(j).shipment_index IS NOT NULL AND
5683 l_shp_index_link.EXISTS(p_ln_quote_party_tbl(j).shipment_index) THEN
5684
5685 l_quote_party_tbl(l_index).shipment_index := l_shp_index_link(p_ln_quote_party_tbl(j).shipment_index);
5686 END IF;
5687
5688 l_index := l_index +1;
5689
5690 END IF;
5691 END LOOP;
5692
5693 l_qte_line_rec := l_qte_line_tbl(i);
5694 l_qte_line_rec.quote_header_id := x_qte_header_rec.quote_header_id;
5695
5696 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5697 aso_debug_pub.add('Create_Quote - before Validate_Commitment ', 1, 'N');
5698 END IF;
5699
5700 ASO_VALIDATE_PVT.Validate_Commitment(
5701 P_Init_Msg_List => FND_API.G_FALSE,
5702 P_Qte_Header_Rec => x_qte_header_rec,
5703 P_Qte_Line_Rec => l_qte_line_rec,
5704 X_Return_Status => l_return_status,
5705 X_Msg_Count => x_msg_count,
5706 X_Msg_Data => x_msg_data);
5707
5708 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5709 aso_debug_pub.add('Create_Quote - after Validate_Commitment: l_return_status: '||l_return_status, 1, 'N');
5710 END IF;
5711
5712 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5713 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5714 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5715 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5716 x_return_status := FND_API.G_RET_STS_ERROR;
5717 RAISE FND_API.G_EXC_ERROR;
5718 END IF;
5719
5720 open c_last_update_date(x_qte_header_rec.quote_header_id);
5721 fetch c_last_update_date into l_control_rec.last_update_date;
5722 close c_last_update_date;
5723
5724 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5725 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
5726 aso_debug_pub.add('Create_Quote: Before call to create_quote_lines', 1, 'Y');
5727 END IF;
5728
5729 ASO_QUOTE_LINES_PVT.Create_Quote_Lines (
5730 P_Api_Version_Number => 1.0,
5731 p_validation_level => p_validation_level,
5732 p_control_rec => l_control_rec,
5733 p_update_header_flag => FND_API.G_FALSE,
5734 p_qte_header_rec => p_qte_header_rec,
5735 P_qte_Line_Rec => l_qte_line_rec,
5736 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
5737 P_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl,
5738 P_price_attributes_tbl => l_price_attr_tbl,
5739 P_Price_Adj_Tbl => l_price_adj_tbl,
5740 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
5741 P_Payment_Tbl => l_payment_tbl,
5742 P_Shipment_Tbl => l_ln_shipment_tbl,
5743 P_Freight_Charge_Tbl => l_freight_charge_tbl,
5744 P_Tax_Detail_Tbl => l_tax_detail_tbl,
5745 P_quote_party_tbl => l_quote_party_tbl ,
5746 P_sales_Credit_tbl => l_sales_Credit_tbl ,
5747 x_qte_Line_Rec => l_qte_line_rec_out,
5748 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
5749 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
5750 x_price_attributes_tbl => l_price_attr_tbl_out,
5751 x_Price_Adj_Tbl => l_price_adj_tbl_out,
5752 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
5753 x_Payment_Tbl => l_payment_tbl_out,
5754 x_Shipment_Tbl => l_ln_shipment_tbl_out,
5755 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
5756 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
5757 X_quote_party_tbl => l_quote_party_tbl_out ,
5758 X_sales_Credit_tbl => l_sales_Credit_tbl_out ,
5759 X_Return_Status => l_return_status,
5760 X_Msg_Count => x_msg_count,
5761 X_Msg_Data => x_msg_data );
5762
5763 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5764 aso_debug_pub.add('Create_Quote: After call to create_quote_lines: l_return_status: '|| l_return_status, 1, 'Y');
5765 END IF;
5766
5767 l_qte_line_rec := l_qte_line_rec_out;
5768 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
5769 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
5770 l_price_attr_tbl := l_price_attr_tbl_out;
5771 l_price_adj_tbl := l_price_adj_tbl_out;
5772 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
5773 l_payment_tbl := l_payment_tbl_out;
5774 l_ln_shipment_tbl := l_ln_shipment_tbl_out;
5775 l_freight_charge_tbl := l_freight_charge_tbl_out;
5776 l_tax_detail_tbl := l_tax_detail_tbl_out;
5777 l_quote_party_tbl := l_quote_party_tbl_out;
5778 l_sales_Credit_tbl := l_sales_Credit_tbl_out;
5779
5780 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
5781
5782 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5783 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5784 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
5785 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER CREATE LINES', FALSE);
5786 FND_MSG_PUB.ADD;
5787 END IF;
5788 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5789
5790 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
5791
5792 x_return_status := FND_API.G_RET_STS_ERROR;
5793 RAISE FND_API.G_EXC_ERROR;
5794 END IF;
5795
5796 open c_last_update_date(x_qte_header_rec.quote_header_id);
5797 fetch c_last_update_date into x_qte_header_rec.last_update_date;
5798 close c_last_update_date;
5799
5800 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
5801
5802 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5803 aso_debug_pub.add('Create_Quote: After call to Create_Quote_Lines');
5804 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
5805 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
5806 END IF;
5807
5808 For j IN 1..lx_qte_line_dtl_tbl.count LOOP
5809 IF lx_qte_line_dtl_tbl(j).SERVICE_REF_QTE_LINE_INDEX = i THEN
5810 lx_qte_line_dtl_tbl(j).SERVICE_REF_LINE_ID := l_qte_line_rec.quote_line_id;
5811 END IF;
5812 END LOOP;
5813
5814 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
5815 IF lx_qte_line_dtl_tbl(j).REF_LINE_INDEX = i THEN
5816 lx_qte_line_dtl_tbl(j).REF_LINE_ID := l_qte_line_rec.quote_line_id;
5817 END IF;
5818 END LOOP;
5819
5820 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
5821 IF lx_qte_line_dtl_tbl(j).ATO_LINE_INDEX = i THEN
5822 lx_qte_line_dtl_tbl(j).ATO_LINE_ID := l_qte_line_rec.quote_line_id;
5823 END IF;
5824 END LOOP;
5825
5826 X_Qte_Line_Tbl(x_qte_line_tbl.count+1) := l_qte_line_rec;
5827 l_index := X_Qte_Line_Dtl_Tbl.count+1;
5828
5829 FOR j IN 1.. l_qte_line_dtl_tbl.count LOOP
5830 x_qte_line_dtl_tbl(l_index) := l_qte_line_dtl_tbl(j);
5831 l_index := l_index+1;
5832 END LOOP;
5833
5834 l_index := X_Line_Attr_Ext_Tbl.count+1;
5835
5836 FOR j IN 1.. l_Line_Attr_Ext_tbl.count LOOP
5837 x_Line_Attr_Ext_tbl(l_index) := l_Line_Attr_Ext_tbl(j);
5838 l_index := l_index+1;
5839 END LOOP;
5840
5841 l_index := X_LN_Price_Attributes_Tbl.count+1;
5842
5843 FOR j IN 1.. l_Price_Attr_tbl.count LOOP
5844 x_ln_Price_Attributes_tbl(l_index) := l_Price_Attr_tbl(j);
5845 l_index := l_index+1;
5846 END LOOP;
5847
5848 l_index := X_Price_Adjustment_tbl.count+1;
5849
5850 FOR j IN 1.. l_Price_Adj_tbl.count LOOP
5851 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(j);
5852 l_index := l_index+1;
5853 END LOOP;
5854
5855 l_index := X_LN_payment_Tbl.count+1;
5856
5857 FOR j IN 1.. l_payment_tbl.count LOOP
5858 x_ln_payment_tbl(l_index) := l_payment_tbl(j);
5859 l_index := l_index+1;
5860 END LOOP;
5861
5862 l_index := X_LN_shipment_Tbl.count+1;
5863
5864 FOR j IN 1.. l_ln_shipment_tbl.count LOOP
5865 x_ln_shipment_tbl(l_index) := l_ln_shipment_tbl(j);
5866 l_index := l_index+1;
5867 END LOOP;
5868
5869 l_index := X_LN_freight_charge_Tbl.count+1;
5870 FOR j IN 1.. l_freight_charge_tbl.count LOOP
5871 x_ln_freight_charge_tbl(l_index) := l_freight_charge_tbl(j);
5872 l_index := l_index+1;
5873 END LOOP;
5874
5875 l_index := X_LN_tax_detail_Tbl.count+1;
5876 FOR j IN 1.. l_tax_detail_tbl.count LOOP
5877 x_ln_tax_detail_tbl(l_index) := l_tax_detail_tbl(j);
5878 l_index := l_index+1;
5879 END LOOP;
5880
5881 l_index := X_ln_sales_Credit_Tbl.count+1;
5882
5883 FOR j IN 1.. l_sales_Credit_tbl.count LOOP
5884 x_ln_sales_Credit_tbl(l_index) := l_sales_Credit_tbl(j);
5885 l_index := l_index+1;
5886 END LOOP;
5887
5888 l_index := X_ln_quote_party_Tbl.count+1;
5889
5890 FOR j IN 1.. l_quote_party_tbl.count LOOP
5891 x_ln_quote_party_tbl(l_index) := l_quote_party_tbl(j);
5892 l_index := l_index+1;
5893 END LOOP;
5894
5895 FOR j IN 1..l_prc_index_link.count LOOP
5896 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id := l_price_adj_tbl(j).price_adjustment_id;
5897 END LOOP;
5898
5899 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
5900
5901 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5902 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
5903 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
5904 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
5905 FND_MSG_PUB.ADD;
5906 END IF;
5907 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5908
5909 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
5910 x_return_status := FND_API.G_RET_STS_ERROR;
5911 END IF;
5912
5913 END LOOP;
5914
5915 -- create price adj relationships.
5916 FOR i IN 1..p_price_adj_rltship_tbl.count LOOP
5917
5918 l_price_adj_rltship_rec := p_price_adj_rltship_tbl(i);
5919 l_index := p_price_adj_rltship_tbl(i).qte_line_index;
5920 l_price_adj_rltship_rec.quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
5921 l_index := p_price_adj_rltship_tbl(i).price_adj_index;
5922 l_price_adj_rltship_rec.price_adjustment_id := l_price_adjustment_tbl(l_index).price_adjustment_id;
5923 l_index := p_price_adj_rltship_tbl(i).rltd_price_adj_index;
5924 l_price_adj_rltship_rec.rltd_price_adj_id := l_price_adjustment_tbl(l_index).price_adjustment_id;
5925
5926 ASO_PRICE_RLTSHIPS_PKG.Insert_Row(
5927 px_ADJ_RELATIONSHIP_ID => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID,
5928 p_creation_date => sysdate,
5929 p_CREATED_BY => G_USER_ID,
5930 p_LAST_UPDATE_DATE => sysdate,
5931 p_LAST_UPDATED_BY => G_USER_ID,
5932 p_LAST_UPDATE_LOGIN => G_USER_ID,
5933 p_PROGRAM_APPLICATION_ID => l_price_adj_rltship_rec.PROGRAM_APPLICATION_ID,
5934 p_PROGRAM_ID => l_price_adj_rltship_rec.PROGRAM_ID,
5935 p_PROGRAM_UPDATE_DATE => l_price_adj_rltship_rec.PROGRAM_UPDATE_DATE,
5936 p_REQUEST_ID => l_price_adj_rltship_rec.REQUEST_ID,
5937 p_QUOTE_LINE_ID => l_price_adj_rltship_rec.quote_line_id,
5938 p_PRICE_ADJUSTMENT_ID => l_price_adj_rltship_rec.price_adjustment_id,
5939 p_RLTD_PRICE_ADJ_ID => l_price_adj_rltship_rec.rltd_price_adj_id,
5940 p_QUOTE_SHIPMENT_ID => l_price_adj_rltship_rec.quote_shipment_id,
5941 p_OBJECT_VERSION_NUMBER => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER );
5942
5943 X_Price_Adj_Rltship_Tbl(i) := l_price_adj_rltship_rec;
5944
5945 END LOOP;
5946
5947 -- create line relationships
5948 FOR i IN 1..p_line_rltship_tbl.count LOOP
5949
5950 l_line_rltship_rec := p_line_rltship_tbl(i);
5951 l_index := l_line_rltship_rec.qte_line_index;
5952
5953 IF l_index IS NOT NULL AND l_index >=1 AND l_index <= x_qte_line_tbl.count THEN
5954 l_line_rltship_rec.quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
5955 END IF;
5956
5957 l_index := l_line_rltship_rec.related_qte_line_index;
5958
5959 IF l_index IS NOT NULL AND l_index >=1 AND l_index <= x_qte_line_tbl.count THEN
5960 l_line_rltship_rec.related_quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
5961 END IF;
5962
5963 ASO_LINE_RELATIONSHIPS_PKG.Insert_Row(
5964 px_LINE_RELATIONSHIP_ID => l_line_rltship_rec.LINE_RELATIONSHIP_ID,
5965 p_CREATION_DATE => SYSDATE,
5966 p_CREATED_BY => G_USER_ID,
5967 p_LAST_UPDATED_BY => G_USER_ID,
5968 p_LAST_UPDATE_DATE => SYSDATE,
5969 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
5970 p_REQUEST_ID => l_line_rltship_rec.REQUEST_ID,
5971 p_PROGRAM_APPLICATION_ID => l_line_rltship_rec.PROGRAM_APPLICATION_ID,
5972 p_PROGRAM_ID => l_line_rltship_rec.PROGRAM_ID,
5973 p_PROGRAM_UPDATE_DATE => l_line_rltship_rec.PROGRAM_UPDATE_DATE,
5974 p_QUOTE_LINE_ID => l_line_rltship_rec.quote_line_id,
5975 p_RELATED_QUOTE_LINE_ID => l_line_rltship_rec.RELATED_QUOTE_LINE_ID,
5976 p_RECIPROCAL_FLAG => l_line_rltship_rec.RECIPROCAL_FLAG,
5977 P_RELATIONSHIP_TYPE_CODE => l_line_rltship_rec.RELATIONSHIP_TYPE_CODE,
5978 p_OBJECT_VERSION_NUMBER => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER);
5979
5980 X_line_Rltship_Tbl(i) := l_line_rltship_rec;
5981
5982 IF aso_debug_pub.g_debug_flag = 'Y' THEN
5983 aso_debug_pub.add('Create_Quote: l_line_rltship_rec.quote_line_id: '||l_line_rltship_rec.quote_line_id);
5984 aso_debug_pub.add('Create_Quote: l_line_rltship_rec.related_quote_line_id: '||l_line_rltship_rec.related_quote_line_id);
5985 END IF;
5986
5987 if l_line_rltship_rec.relationship_type_code = 'CONFIG' then
5988
5989 update aso_quote_line_details
5990 set ref_type_code = 'CONFIG',
5991 ref_line_id = l_line_rltship_rec.quote_line_id,
5992 last_update_date = sysdate,
5993 last_updated_by = fnd_global.user_id,
5994 last_update_login = fnd_global.conc_login_id
5995 where quote_line_id = l_line_rltship_rec.related_quote_line_id;
5996
5997 end if;
5998
5999 END LOOP;
6000
6001 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6002 aso_debug_pub.add('Create_Quote: x_qte_header_rec.quote_header_id: '|| x_qte_header_rec.quote_header_id);
6003 END IF;
6004
6005 update aso_quote_line_details
6006 set ref_type_code = 'CONFIG',
6007 last_update_date = sysdate,
6008 last_updated_by = fnd_global.user_id,
6009 last_update_login = fnd_global.conc_login_id
6010 where config_header_id is not null
6011 and config_revision_num is not null
6012 and ref_type_code is null
6013 and quote_line_id in (select quote_line_id from aso_quote_lines_all
6014 where item_type_code = 'MDL'
6015 and quote_header_id = x_qte_header_rec.quote_header_id);
6016
6017
6018 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6019 aso_debug_pub.add('Create_Quote - before header pricing ', 1, 'Y');
6020 END IF;
6021
6022 IF l_control_rec.header_pricing_event IS NOT NULL AND l_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR THEN
6023
6024 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6025 aso_debug_pub.add('Create_Quote - inside header pricing ', 1, 'N');
6026 END IF;
6027
6028 l_pricing_control_rec.request_type := p_control_rec.pricing_request_type;
6029 l_pricing_control_rec.pricing_event := p_control_rec.header_pricing_event;
6030 l_pricing_control_rec.price_mode := p_control_rec.price_mode;
6031
6032 --New Code for to call overload pricing_order
6033
6034 lv_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
6035 lv_hd_price_attr_tbl := aso_utility_pvt.query_price_attr_rows(x_qte_header_rec.quote_header_id,null);
6036 lv_hd_shipment_tbl := aso_utility_pvt.query_shipment_rows(x_qte_header_rec.quote_header_id,null);
6037
6038 if lv_hd_shipment_tbl.count = 1 then
6039 lv_hd_shipment_rec := lv_hd_shipment_tbl(1);
6040 end if;
6041
6042 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6043 aso_debug_pub.add('Create_Quote: Before call to ASO_PRICING_INT.Pricing_Order');
6044 aso_debug_pub.add('Create_Quote: x_qte_line_tbl.count: ' || x_qte_line_tbl.count);
6045 END IF;
6046
6047 ASO_PRICING_INT.Pricing_Order(
6048 P_Api_Version_Number => 1.0,
6049 P_Init_Msg_List => fnd_api.g_false,
6050 P_Commit => fnd_api.g_false,
6051 p_control_rec => l_pricing_control_rec,
6052 p_qte_header_rec => lv_qte_header_rec,
6053 p_hd_shipment_rec => lv_hd_shipment_rec,
6054 p_hd_price_attr_tbl => lv_hd_price_attr_tbl,
6055 p_qte_line_tbl => x_qte_line_tbl,
6056 --p_line_rltship_tbl => l_line_rltship_tbl,
6057 --p_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
6058 --p_ln_shipment_tbl => ln_shipment_tbl,
6059 --p_ln_price_attr_tbl => l_ln_price_attr_tbl,
6060 x_qte_header_rec => lx_qte_header_rec,
6061 x_qte_line_tbl => lx_qte_line_tbl,
6062 x_qte_line_dtl_tbl => lx_qte_line_dtl_tbl,
6063 x_price_adj_tbl => l_price_adj_tbl_out,
6064 x_price_adj_attr_tbl => l_Price_Adj_Attr_Tbl_out,
6065 x_price_adj_rltship_tbl => lx_price_adj_rltship_tbl,
6066 x_return_status => l_return_status,
6067 x_msg_count => x_msg_count,
6068 x_msg_data => x_msg_data );
6069
6070
6071 x_qte_line_tbl := lx_qte_line_tbl;
6072
6073 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6074 aso_debug_pub.add('Create_Quote: After call to ASO_PRICING_INT.Pricing_Order');
6075 aso_debug_pub.add('Create_Quote: l_return_status: ' || l_return_status);
6076 aso_debug_pub.add('Create_Quote: lx_qte_line_tbl.count: ' || lx_qte_line_tbl.count);
6077 aso_debug_pub.add('Create_Quote: x_qte_line_tbl.count: ' || x_qte_line_tbl.count);
6078 END IF;
6079
6080 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6081
6082 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6083
6084 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6085 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
6086 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER PRICING', TRUE);
6087 FND_MSG_PUB.ADD;
6088 END IF;
6089
6090 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6091
6092 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
6093
6094 x_return_status := FND_API.G_RET_STS_ERROR;
6095 RAISE FND_API.G_EXC_ERROR;
6096 END IF;
6097
6098 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
6099
6100 /*New Pricing Changes to update the date*/
6101
6102 IF p_control_rec.header_pricing_event ='BATCH' AND p_control_rec.price_mode='ENTIRE_QUOTE' THEN
6103
6104 l_price_updated_date_flag := fnd_api.g_true;
6105 END IF;
6106
6107 /*IF aso_debug_pub.g_debug_flag = 'Y' THEN
6108 aso_debug_pub.add('Create_Quote: Before call to ASO_TAX_INT.Calculate_Tax', 1, 'Y');
6109 aso_debug_pub.add('Create_Quote: p_control_rec.calculate_tax_flag: ' || p_control_rec.calculate_tax_flag);
6110 END IF;*/
6111
6112 --Changed the call to tax API as a part of etax By Anoop Rajan on 9 August 2005
6113
6114 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6115 aso_debug_pub.add('Create_Quote: Before call to ASO_TAX_INT.CALCULATE_TAX_WITH_GTT', 1, 'Y');
6116 aso_debug_pub.add('Create_Quote: p_control_rec.calculate_tax_flag: ' || p_control_rec.calculate_tax_flag);
6117 END IF;
6118
6119 IF p_control_rec.calculate_tax_flag = 'Y' THEN
6120
6121 /* l_tax_control_rec.tax_level := 'SHIPPING';
6122 l_tax_control_rec.update_DB := 'Y';*/
6123 --Commented the above 2 lines by Anoop on 15th August
6124 --Added the IF Condition below to facilitate TAX changes .
6125 if lx_qte_line_tbl.count > 0 then
6126 ASO_TAX_INT.CALCULATE_TAX_WITH_GTT(p_API_VERSION_NUMBER => 1.0,
6127 p_qte_header_id => x_qte_header_rec.quote_header_id,
6128 x_return_status => x_return_status,
6129 X_Msg_Count => x_msg_count,
6130 X_Msg_Data => x_msg_data );
6131
6132 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6133 aso_debug_pub.add('Create_Quote: After call to ASO_TAX_INT.CALCULATE_TAX_WITH_GTT: x_return_status: '|| x_return_status, 1, 'Y');
6134 END IF;
6135 ELSE
6136 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6137 aso_debug_pub.add('Create_Quote: NO LINE RECORDS.SO TAX NOT CALCULATED : x_return_status: '|| x_return_status, 1, 'Y');
6138 END IF;
6139 END IF;
6140
6141 /*ASO_TAX_INT.Calculate_Tax( P_Api_Version_Number => 1.0,
6142 p_quote_header_id => x_qte_header_rec.quote_header_id,
6143 P_Tax_Control_Rec => l_tax_control_rec,
6144 x_tax_amount => x_tax_amount ,
6145 x_tax_detail_tbl => l_tax_detail_tbl,
6146 X_Return_Status => x_return_status ,
6147 X_Msg_Count => x_msg_count ,
6148 X_Msg_Data => x_msg_data );
6149
6150 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6151 aso_debug_pub.add('Create_Quote: After call to ASO_TAX_INT.Calculate_Tax: x_return_status: '|| x_return_status, 1, 'Y');
6152 END IF;
6153 */
6154 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6155
6156 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6157 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
6158 FND_MESSAGE.Set_Token('API', 'Calculate_tax_with_GTT', FALSE);
6159 FND_MSG_PUB.ADD;
6160 END IF;
6161
6162 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6163 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6164 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6165 RAISE FND_API.G_EXC_ERROR;
6166 END IF;
6167
6168 END IF;
6169
6170 END IF;
6171
6172 /*New Tax Changes to update the date*/
6173
6174 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6175
6176 aso_debug_pub.add('Create_Quote: control record parameter values');
6177 aso_debug_pub.add('l_qte_header_rec.pricing_status_indicator: ' || l_qte_header_rec.pricing_status_indicator);
6178 aso_debug_pub.add('l_qte_header_rec.tax_status_indicator: ' || l_qte_header_rec.tax_status_indicator);
6179 aso_debug_pub.add('p_control_rec.header_pricing_event: ' || p_control_rec.header_pricing_event);
6180 aso_debug_pub.add('p_control_rec.price_mode: ' || p_control_rec.price_mode);
6181 aso_debug_pub.add('p_control_rec.calculate_tax_flag: ' || p_control_rec.calculate_tax_flag);
6182 aso_debug_pub.add('l_price_updated_date_flag: ' || l_price_updated_date_flag);
6183
6184 END IF;
6185
6186 IF p_control_rec.calculate_tax_flag = 'Y' THEN
6187
6188 IF l_price_updated_date_flag = fnd_api.g_true THEN
6189
6190 update aso_quote_headers_all
6191 set tax_updated_date = sysdate,
6192 price_updated_date = sysdate
6193 where quote_header_id = x_qte_header_rec.quote_header_id;
6194
6195 ELSE
6196
6197 update aso_quote_headers_all
6198 set tax_updated_date = sysdate
6199 where quote_header_id = x_qte_header_rec.quote_header_id;
6200
6201 END IF;
6202
6203 ELSIF l_price_updated_date_flag = fnd_api.g_true THEN
6204
6205 update aso_quote_headers_all
6206 set price_updated_date = sysdate
6207 where quote_header_id = x_qte_header_rec.quote_header_id;
6208
6209 END IF;
6210
6211
6212 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
6213 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
6214 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
6215 -- IF calculate_tax_flag = 'N', not summation on line level tax,
6216 -- just take the value of p_qte_header_rec.total_tax as the total_tax
6217 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
6218 -- just take the value of p_qte_header_rec.total_freight_charge
6219 -- (or l_hd_shipment_tbl(1).total_freight_charge???) as the TOTAL_SHIPPING_CHARGE
6220
6221
6222 IF p_control_rec.calculate_tax_flag = 'N' AND
6223 p_qte_header_rec.total_tax IS NOT NULL THEN
6224 l_calculate_tax := 'N';
6225 END IF;
6226
6227 IF p_control_rec.calculate_freight_charge_flag = 'N' AND
6228 p_qte_header_rec.total_shipping_charge IS NOT NULL THEN
6229 l_calculate_freight_charge := 'N';
6230 END IF;
6231
6232
6233 -- Start of PNPL Changes
6234 x_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
6235
6236 l_installment_option := oe_sys_parameters.value(param_name => 'INSTALLMENT_OPTIONS',
6237 p_org_id =>x_qte_header_rec.org_id);
6238
6239 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6240 aso_debug_pub.add('Create_Quote - Value of Installment Option Param: '||l_installment_option, 1, 'Y');
6241 END IF;
6242
6243 IF ( (l_installment_option = 'ENABLE_PAY_NOW') and (nvl(P_Qte_Header_Rec.quote_type,'X') <> 'T' )
6244 and ((p_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR and p_control_rec.header_pricing_event is not null)
6245 or (p_control_rec.calculate_tax_flag = 'Y')) ) then
6246
6247 l_call_ar_api := fnd_api.g_true;
6248
6249 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6250 aso_debug_pub.add('Create_Quote - p_control_rec.header_pricing_event: '||p_control_rec.header_pricing_event, 1, 'Y');
6251 aso_debug_pub.add('Create_Quote - p_control_rec.price_mode : '||p_control_rec.price_mode, 1, 'Y');
6252 aso_debug_pub.add('Create_Quote - l_qte_line_tbl.count : '||l_qte_line_tbl.count, 1, 'Y');
6253 END IF;
6254
6255 -- check if price_mode is change_line, if so then call ar api only if some lines are being created or updated
6256 IF (p_control_rec.header_pricing_event = 'BATCH' and p_control_rec.price_mode = 'CHANGE_LINE') THEN
6257 if (l_qte_line_tbl.count > 0) then
6258 l_call_ar_api := fnd_api.g_false;
6259 for i in 1..l_qte_line_tbl.count loop
6260 if (l_qte_line_tbl(i).operation_code = 'CREATE' or l_qte_line_tbl(i).operation_code = 'UPDATE') then
6261 l_call_ar_api := fnd_api.g_true;
6262 exit;
6263 end if;
6264 end loop;
6265 else
6266 l_call_ar_api := fnd_api.g_false;
6267 end if;
6268 END IF;
6269
6270 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6271 aso_debug_pub.add('Create_Quote - l_call_ar_api: '|| l_call_ar_api, 1, 'Y');
6272 END IF;
6273
6274 IF (l_call_ar_api = fnd_api.g_true ) then
6275
6276 For i in 1..X_Qte_Line_Tbl.count loop
6277
6278 -- resetting the line term id variable
6279 l_line_term_id := null;
6280 l_line_quote_price := null;
6281 l_quantity := null;
6282
6283 -- get the line freight charges
6284 l_line_shipping_charge := aso_shipping_int.get_line_freight_charges( x_qte_header_rec.quote_header_id,
6285 X_Qte_Line_Tbl(i).quote_line_id );
6286
6287 -- get the line tax
6288 open c_tax_line(x_qte_header_rec.quote_header_id,X_Qte_Line_Tbl(i).quote_line_id);
6289 fetch c_tax_line into l_line_tax;
6290 close c_tax_line;
6291
6292 -- get the payment term id for the line
6293 open get_line_payment_term(x_qte_header_rec.quote_header_id,X_Qte_Line_Tbl(i).quote_line_id);
6294 fetch get_line_payment_term into l_line_term_id;
6295 close get_line_payment_term;
6296
6297 -- if line term id is null then get it from header
6298 If l_line_term_id is null THEN
6299 open get_hdr_payment_term(x_qte_header_rec.quote_header_id);
6300 fetch get_hdr_payment_term into l_line_term_id;
6301 close get_hdr_payment_term;
6302 END IF;
6303
6304 -- bug 4923355
6305 open get_line_qte_price(X_Qte_Line_Tbl(i).quote_line_id);
6306 fetch get_line_qte_price into l_line_quote_price,l_quantity;
6307 close get_line_qte_price;
6308
6309 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6310 aso_debug_pub.add('Create_Quote - l_line_quote_price: '|| l_line_quote_price, 1, 'Y');
6311 aso_debug_pub.add('Create_Quote - l_quantity: '|| l_quantity, 1, 'Y');
6312 END IF;
6313
6314 l_line_amount := l_line_quote_price * l_quantity;
6315
6316 -- l_line_amount := X_Qte_Line_Tbl(i).line_quote_price * X_Qte_Line_Tbl(i).quantity;
6317
6318 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6319 aso_debug_pub.add('Create_Quote - ********* Input to AR_VIEW_TERM_GRP.pay_now_amounts follows *********** ', 1, 'Y');
6320 aso_debug_pub.add('Create_Quote - X_Qte_Line_Tbl('||i||').quote_line_id: '||X_Qte_Line_Tbl(i).quote_line_id, 1, 'Y');
6321 aso_debug_pub.add('Create_Quote - l_line_amount: '||l_line_amount, 1, 'Y');
6322 aso_debug_pub.add('Create_Quote - l_line_shipping_charge: '||l_line_shipping_charge, 1, 'Y');
6323 aso_debug_pub.add('Create_Quote - l_line_tax: '||l_line_tax, 1, 'Y');
6324 aso_debug_pub.add('Create_Quote - l_line_term_id: '||l_line_term_id, 1, 'Y');
6325 END IF;
6326
6327 IF (l_line_term_id is not null and l_line_term_id <> fnd_api.g_miss_num) then
6328
6329 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6330 aso_debug_pub.add('Create_Quote: before call to AR_VIEW_TERM_GRP.pay_now_amounts', 1, 'Y');
6331 END IF;
6332
6333 -- Call the AR API to get the amounts
6334 AR_VIEW_TERM_GRP.pay_now_amounts(
6335 p_api_version => 1.0,
6336 p_init_msg_list => p_init_msg_list,
6337 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
6338 p_term_id => l_line_term_id,
6339 p_currency_code => x_qte_header_rec.currency_code,
6340 p_line_amount => l_line_amount,
6341 p_tax_amount => l_line_tax,
6342 p_freight_amount => l_line_shipping_charge,
6343 x_pay_now_line_amount => l_paynow_amount,
6344 x_pay_now_tax_amount => l_paynow_tax,
6345 x_pay_now_freight_amount => l_paynow_charges,
6346 x_pay_now_total_amount => l_paynow_total,
6347 X_Return_Status => x_return_status ,
6348 X_Msg_Count => x_msg_count ,
6349 X_Msg_Data => x_msg_data );
6350
6351 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6352 aso_debug_pub.add('Create_Quote: After call to AR_VIEW_TERM_GRP.pay_now_amounts: x_return_status: '|| x_return_status, 1, 'Y');
6353 END IF;
6354
6355 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6356
6357 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6358 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
6359 FND_MESSAGE.Set_Token('API', 'AR_PayNow_Amounts', FALSE);
6360 FND_MSG_PUB.ADD;
6361 END IF;
6362
6363 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6364 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6365 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6366 RAISE FND_API.G_EXC_ERROR;
6367 END IF;
6368
6369 END IF;
6370
6371 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6372 aso_debug_pub.add('Create_Quote - Output from AR_VIEW_TERM_GRP.pay_now_amounts follows:', 1, 'Y');
6373 aso_debug_pub.add('Create_Quote - l_paynow_amount: '||l_paynow_amount, 1, 'Y');
6374 aso_debug_pub.add('Create_Quote - l_paynow_charges: '||l_paynow_charges, 1, 'Y');
6375 aso_debug_pub.add('Create_Quote - l_paynow_tax: '||l_paynow_tax, 1, 'Y');
6376 aso_debug_pub.add('Create_Quote - l_paynow_total: '||l_paynow_total, 1, 'Y');
6377 aso_debug_pub.add('Create_Quote - ********** End PNPL Processing ************' , 1, 'Y');
6378 END IF;
6379
6380
6381 -- Update the corresponding columns in the line table
6382 update aso_quote_lines_all
6383 set line_paynow_charges = l_paynow_charges,
6384 line_paynow_tax = l_paynow_tax,
6385 line_paynow_subtotal = l_paynow_amount,
6386 last_update_date = sysdate,
6387 last_updated_by = fnd_global.user_id,
6388 last_update_login = fnd_global.conc_login_id
6389 where quote_line_id = X_Qte_Line_Tbl(i).quote_line_id;
6390
6391 end if; -- end if for term id null check
6392 end loop;
6393 END IF; -- end if for call ar api flag
6394 END IF;
6395
6396 -- End of PNPL Changes
6397
6398 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6399 aso_debug_pub.add('Create_Quote - before update_quote_total ', 1, 'Y');
6400 END IF;
6401
6402
6403 Update_Quote_Total ( P_Qte_Header_id => x_Qte_Header_rec.quote_header_id,
6404 P_Calculate_Tax => p_control_rec.calculate_tax_flag,
6405 P_calculate_Freight_Charge => p_control_rec.calculate_freight_charge_flag,
6406 p_control_rec => p_control_rec,
6407 P_Call_Ar_Api_Flag => l_call_ar_api,
6408 X_Return_Status => x_return_status,
6409 X_Msg_Count => x_msg_count,
6410 X_Msg_Data => x_msg_data);
6411
6412 x_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
6413
6414 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6415
6416 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6417 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
6418 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER UPDATETOTAL', TRUE);
6419 FND_MSG_PUB.ADD;
6420 END IF;
6421
6422 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6423
6424 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6425
6426 RAISE FND_API.G_EXC_ERROR;
6427
6428 END IF;
6429
6430
6431 IF ( p_qte_header_rec.contract_template_id IS NOT NULL
6432 AND p_qte_header_rec.contract_template_id <> FND_API.G_MISS_NUM)
6433 AND NVL(FND_PROFILE.Value('OKC_ENABLE_SALES_CONTRACTS'),'N') = 'Y' THEN
6434
6435 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6436 aso_debug_pub.add( 'Create_Quote - before instantiating contract terms. ', 1, 'Y');
6437 aso_debug_pub.add( 'Create_Quote - template id: ' || p_qte_header_rec.contract_template_id, 1, 'Y');
6438 aso_debug_pub.add( 'Create_Quote - target_doc_id: ' || x_Qte_Header_rec.quote_header_id, 1, 'Y');
6439 aso_debug_pub.add( 'Create_Quote - p_validation_string: ' || TO_CHAR(x_Qte_Header_rec.LAST_UPDATE_DATE), 1, 'Y');
6440 END IF;
6441
6442 OKC_TERMS_COPY_GRP.Copy_Terms ( P_Api_Version => 1.0,
6443 P_Template_ID => p_qte_header_rec.contract_template_id,
6444 P_Target_Doc_ID => x_Qte_Header_rec.quote_header_id,
6445 P_Target_Doc_Type => 'QUOTE',
6446 P_Article_Effective_Date => NULL,
6447 P_Retain_Deliverable => 'N',
6448 p_validation_string => TO_CHAR(x_Qte_Header_rec.LAST_UPDATE_DATE),
6449 X_Return_Status => X_Return_Status,
6450 X_Msg_Count => X_Msg_Count,
6451 X_Msg_Data => X_Msg_Data );
6452
6453 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
6454
6455 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6456 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_COPY_TERMS');
6457 FND_MSG_PUB.ADD;
6458 END IF;
6459
6460 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
6461 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6462 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
6463 RAISE FND_API.G_EXC_ERROR;
6464 END IF;
6465 END IF;
6466
6467 END IF;
6468 -- end of hyang new okc
6469
6470 -- Change START
6471 -- Release 12 TAP Changes
6472 -- Girish Sachdeva 8/30/2005
6473 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
6474 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6475 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');
6476 END IF;
6477
6478
6479 -- Call to insert record in ASO_CHANGED_QUOTES
6480 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(x_qte_header_rec.quote_number);
6481
6482 -- Change END
6483
6484
6485 --
6486 -- End of API body
6487 --
6488
6489 -- Standard check for p_commit
6490
6491 IF FND_API.to_Boolean( p_commit ) THEN
6492 COMMIT WORK;
6493 END IF;
6494
6495
6496
6497 -- Standard call to get message count and if count is 1, get message info.
6498
6499 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
6500 p_data => x_msg_data );
6501
6502 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6503 aso_debug_pub.add('******************************************************', 1, 'Y');
6504 aso_debug_pub.add('End Create_Quote Procedure', 1, 'Y');
6505 aso_debug_pub.add('******************************************************', 1, 'Y');
6506 END IF;
6507
6508
6509 EXCEPTION
6510
6511 WHEN FND_API.G_EXC_ERROR THEN
6512 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
6513 P_API_NAME => L_API_NAME
6514 ,P_PKG_NAME => G_PKG_NAME
6515 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
6516 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6517 ,P_SQLCODE => SQLCODE
6518 ,P_SQLERRM => SQLERRM
6519 ,X_MSG_COUNT => X_MSG_COUNT
6520 ,X_MSG_DATA => X_MSG_DATA
6521 ,X_RETURN_STATUS => X_RETURN_STATUS);
6522
6523 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6524 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
6525 P_API_NAME => L_API_NAME
6526 ,P_PKG_NAME => G_PKG_NAME
6527 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
6528 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6529 ,P_SQLCODE => SQLCODE
6530 ,P_SQLERRM => SQLERRM
6531 ,X_MSG_COUNT => X_MSG_COUNT
6532 ,X_MSG_DATA => X_MSG_DATA
6533 ,X_RETURN_STATUS => X_RETURN_STATUS);
6534
6535 WHEN OTHERS THEN
6536 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
6537 P_API_NAME => L_API_NAME
6538 ,P_PKG_NAME => G_PKG_NAME
6539 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
6540 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
6541 ,P_SQLCODE => SQLCODE
6542 ,P_SQLERRM => SQLERRM
6543 ,X_MSG_COUNT => X_MSG_COUNT
6544 ,X_MSG_DATA => X_MSG_DATA
6545 ,X_RETURN_STATUS => X_RETURN_STATUS);
6546
6547 End Create_quote;
6548
6549
6550 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
6551 PROCEDURE Update_quote(
6552 P_Api_Version_Number IN NUMBER,
6553 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
6554 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
6555 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
6556 P_Control_Rec IN ASO_QUOTE_PUB.Control_Rec_Type := ASO_QUOTE_PUB.G_Miss_Control_Rec,
6557 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type := ASO_QUOTE_PUB.G_Miss_Qte_Header_Rec,
6558 P_hd_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
6559 P_hd_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL,
6560 P_hd_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL,
6561 P_hd_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl,
6562 P_hd_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl,
6563 P_hd_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL,
6564 P_hd_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
6565 P_hd_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
6566 P_Qte_Line_Tbl IN ASO_QUOTE_PUB.Qte_Line_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL,
6567 P_Qte_Line_Dtl_Tbl IN ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL,
6568 P_Line_Attr_Ext_Tbl IN ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL,
6569 P_line_rltship_tbl IN ASO_QUOTE_PUB.Line_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Line_Rltship_Tbl,
6570 P_Price_Adjustment_Tbl IN ASO_QUOTE_PUB.Price_Adj_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl,
6571 P_Price_Adj_Attr_Tbl IN ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type := ASO_QUOTE_PUB.G_Miss_PRICE_ADJ_ATTR_Tbl,
6572 P_Price_Adj_Rltship_Tbl IN ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Adj_Rltship_Tbl,
6573 P_ln_Price_Attributes_Tbl IN ASO_QUOTE_PUB.Price_Attributes_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl,
6574 P_ln_Payment_Tbl IN ASO_QUOTE_PUB.Payment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL,
6575 P_ln_Shipment_Tbl IN ASO_QUOTE_PUB.Shipment_Tbl_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL,
6576 P_ln_Freight_Charge_Tbl IN ASO_QUOTE_PUB.Freight_Charge_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl,
6577 P_ln_Tax_Detail_Tbl IN ASO_QUOTE_PUB.Tax_Detail_Tbl_Type := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl,
6578 P_ln_Sales_Credit_Tbl IN ASO_QUOTE_PUB.Sales_Credit_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl,
6579 P_ln_Quote_Party_Tbl IN ASO_QUOTE_PUB.Quote_Party_Tbl_Type := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl,
6580 P_Qte_Access_Tbl IN ASO_QUOTE_PUB.Qte_Access_Tbl_Type := ASO_QUOTE_PUB.G_MISS_QTE_ACCESS_TBL,
6581 P_Template_Tbl IN ASO_QUOTE_PUB.Template_Tbl_Type := ASO_QUOTE_PUB.G_MISS_TEMPLATE_TBL,
6582 P_Related_Obj_Tbl IN ASO_QUOTE_PUB.Related_Obj_Tbl_Type := ASO_QUOTE_PUB.G_MISS_RELATED_OBJ_TBL,
6583 x_Qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Rec_Type,
6584 X_Qte_Line_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Tbl_Type,
6585 X_Qte_Line_Dtl_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type,
6586 X_hd_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
6587 X_hd_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
6588 X_hd_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
6589 X_hd_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
6590 X_hd_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
6591 X_hd_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
6592 X_hd_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
6593 X_hd_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
6594 x_Line_Attr_Ext_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type,
6595 X_line_rltship_tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Line_Rltship_Tbl_Type,
6596 X_Price_Adjustment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Tbl_Type,
6597 X_Price_Adj_Attr_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type,
6598 X_Price_Adj_Rltship_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type,
6599 X_ln_Price_Attributes_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Price_Attributes_Tbl_Type,
6600 X_ln_Payment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Payment_Tbl_Type,
6601 X_ln_Shipment_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Shipment_Tbl_Type,
6602 X_ln_Freight_Charge_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Freight_Charge_Tbl_Type,
6603 X_ln_Tax_Detail_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Tax_Detail_Tbl_Type,
6604 X_Ln_Sales_Credit_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Sales_Credit_Tbl_Type,
6605 X_Ln_Quote_Party_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Quote_Party_Tbl_Type,
6606 X_Qte_Access_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Access_Tbl_Type,
6607 X_Template_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Template_Tbl_Type,
6608 X_Related_Obj_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Related_Obj_Tbl_Type,
6609 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
6610 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
6611 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
6612 )
6613 IS
6614 --ovn
6615 Cursor C_Get_quote(c_QUOTE_HEADER_ID Number) IS
6616 Select LAST_UPDATE_DATE, QUOTE_STATUS_ID, quote_number, party_id, cust_account_id,
6617 order_type_id, order_id, object_version_number, currency_code, price_list_id
6618 From ASO_QUOTE_HEADERS_ALL
6619 Where QUOTE_HEADER_ID = c_QUOTE_HEADER_ID;
6620
6621 CURSOR C_Qte_Status(c_qte_status_id NUMBER) IS
6622 SELECT AUTO_VERSION_FLAG
6623 FROM ASO_QUOTE_STATUSES_B
6624 WHERE quote_status_id = c_qte_status_id;
6625
6626 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
6627 SELECT max(quote_version)
6628 FROM ASO_QUOTE_HEADERS_ALL
6629 WHERE quote_number = X_qte_number;
6630
6631 CURSOR c_payment_rec IS
6632 SELECT payment_id, payment_option FROM ASO_PAYMENTS
6633 WHERE quote_header_id = P_Qte_Header_Rec.quote_header_id
6634 AND quote_line_id IS NULL;
6635
6636 CURSOR c_shipment_rec IS
6637 SELECT shipment_id FROM ASO_SHIPMENTS
6638 WHERE quote_header_id = P_Qte_Header_Rec.quote_header_id
6639 AND quote_line_id IS NULL;
6640
6641 CURSOR c_tax_rec IS
6642 SELECT tax_detail_id FROM ASO_TAX_DETAILS
6643 WHERE quote_header_id = P_Qte_Header_Rec.quote_header_id
6644 AND quote_line_id IS NULL
6645 AND ORIG_TAX_CODE IS NOT NULL;
6646
6647 CURSOR c_qte_line(l_d_qte_line NUMBER) IS
6648 SELECT quote_line_id FROM ASO_QUOTE_LINES_ALL
6649 where quote_line_id= l_d_qte_line;
6650
6651 --ovn
6652 cursor c_last_update_date( p_qte_hdr_id number) is
6653 select last_update_date
6654 from aso_quote_headers_all
6655 where quote_header_id = p_qte_hdr_id;
6656
6657 cursor c_quote_lines( p_qte_hdr_id number) is
6658 select quote_line_id,order_line_type_id,line_category_code,price_list_id,line_quote_price,quantity
6659 from aso_quote_lines_all
6660 where quote_header_id = p_qte_hdr_id;
6661
6662 cursor c_related_obj_id (p_qte_hdr_id number) is
6663 select related_object_id,last_update_date
6664 from aso_quote_related_objects
6665 where quote_object_id = p_qte_hdr_id
6666 and quote_object_type_code = 'HEADER'
6667 and relationship_type_code = 'OPP_QUOTE';
6668
6669 Cursor c_obj_id(p_qte_header_id Number) IS
6670 Select object_id
6671 from aso_quote_related_objects
6672 where quote_object_id = p_qte_header_id
6673 and quote_object_type_code = 'HEADER'
6674 and relationship_type_code = 'OPP_QUOTE';
6675
6676 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
6677 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
6678 payment_rec c_payment_rec%rowtype;
6679 l_payment_db_tbl varchar_tbl_type;
6680 shipment_rec c_shipment_rec%ROWTYPE;
6681 l_shipment_db_tbl VARCHAR_TBL_TYPE;
6682 l_qln_id NUMBER;
6683 l_tax_db_tbl VARCHAR_TBL_TYPE;
6684 l_qte_status_id NUMBER;
6685 l_qte_number NUMBER;
6686 l_last_update_date DATE;
6687
6688 --ovn
6689 l_object_version_number NUMBER;
6690 l_update_allowed VARCHAR2(1);
6691 l_party_id NUMBER;
6692 l_cust_account_id NUMBER;
6693 l_auto_version VARCHAR2(1);
6694 l_api_name CONSTANT VARCHAR2(30) := 'Update_quote';
6695 l_api_version_number CONSTANT NUMBER := 1.0;
6696 l_return_status VARCHAR2(1);
6697 l_found VARCHAR2(1);
6698 l_calculate_freight_charge VARCHAR2(1) := 'Y';
6699 l_calculate_tax VARCHAR2(1) := 'Y';
6700 x_tax_amount NUMBER;
6701
6702 l_qte_header_id NUMBER;
6703 l_qte_line_id NUMBER;
6704 l_index NUMBER;
6705 l_index_2 NUMBER;
6706 x_status VARCHAR2(1);
6707 l_order_type_id NUMBER;
6708 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
6709 l_qte_line_rec_out ASO_QUOTE_PUB.Qte_Line_Rec_Type;
6710 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type := p_qte_header_rec;
6711 l_old_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
6712 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
6713 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
6714 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
6715 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
6716 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
6717 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
6718 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
6719 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
6720 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
6721 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
6722 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_tbl_Type;
6723 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_tbl_Type;
6724 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
6725 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
6726 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
6727 l_Price_Adj_Tbl_out ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
6728 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
6729 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
6730 l_pricing_control_rec ASO_PRICING_INT.PRICING_CONTROL_REC_TYPE;
6731 l_Price_Adjustment_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type := p_Price_Adjustment_Tbl;
6732 l_line_rltship_rec ASO_QUOTE_PUB.Line_Rltship_Rec_Type;
6733 l_price_adj_rltship_rec ASO_QUOTE_PUB.Price_Adj_Rltship_Rec_Type;
6734 l_Tax_Control_Rec ASO_TAX_INT.Tax_Control_Rec_Type;
6735 l_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
6736 l_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
6737 l_shp_index_link Index_Link_Tbl_Type;
6738 l_prc_index_link Index_Link_Tbl_Type;
6739 l_prc_index_link_rev Index_Link_Tbl_Type;
6740 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
6741 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
6742 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
6743 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
6744 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type := p_control_rec;
6745 l_control_rec_bv ASO_QUOTE_PUB.Control_Rec_Type := p_control_rec;
6746 l_qte_access_rec ASO_SECURITY_INT.Qte_Access_Rec_Type := ASO_SECURITY_INT.G_MISS_QTE_ACCESS_REC;
6747 l_qte_access_tbl ASO_SECURITY_INT.Qte_Access_Tbl_Type := ASO_SECURITY_INT.G_MISS_QTE_ACCESS_TBL;
6748 l_qte_access_tbl_out ASO_SECURITY_INT.Qte_Access_Tbl_Type;
6749 l_ln_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type := ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC;
6750
6751
6752 -- Begin Variable declaration for Batch Validation 05/24/2002
6753
6754 l_batch_qte_line_rec aso_quote_pub.qte_line_rec_type := aso_quote_pub.g_miss_qte_line_rec;
6755 l_p_batch_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6756 l_send_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6757 l_send_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type := aso_quote_pub.g_miss_qte_line_dtl_tbl;
6758 l_batch_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type := aso_quote_pub.g_miss_qte_line_dtl_tbl;
6759 l_search_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6760 l_delete_qte_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6761 l_p_batch_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type := aso_quote_pub.g_miss_qte_line_dtl_tbl;
6762 l_model_qte_line_tbl aso_quote_pub.qte_line_tbl_type;
6763 l_model_qte_line_dtl_tbl aso_quote_pub.qte_line_dtl_tbl_type;
6764
6765 l_batch_index number := 0; --should not be initialized inside line loop code
6766 l_model_index number := 0; --should not be initialized inside line loop code
6767 l_add_line varchar2(1) := fnd_api.g_false;
6768 l_add_model_line varchar2(1) := fnd_api.g_false;
6769 l_send_index NUMBER := 0;
6770 l_model_line_id NUMBER;
6771 l_lines NUMBER:=0;
6772 l_complete_configuration_flag VARCHAR2(1);
6773 l_valid_configuration_flag VARCHAR2(1);
6774 l_qte_lines_tbl_count Number;
6775 l_config_header_id number;
6776 l_config_revision_num number;
6777 l_new_config_hdr_id number;
6778
6779 cursor c_model_line (p_config_header_id NUMBER, p_config_revision_num NUMBER)is
6780 select quote_line_id from aso_quote_line_details
6781 where config_header_id = p_config_header_id
6782 and config_revision_num = p_config_revision_num
6783 and ref_type_code = 'CONFIG'
6784 and ref_line_id is NULL;
6785
6786 CURSOR c_config_exist_in_cz (p_config_hdr_id number, p_config_rev_nbr number) IS
6787 select config_hdr_id
6788 from cz_config_details_v
6789 where config_hdr_id = p_config_hdr_id
6790 and config_rev_nbr = p_config_rev_nbr;
6791
6792 l_deactivate_qte_header_rec aso_quote_pub.qte_header_rec_type;
6793 l_deactivate_quote_line_tbl aso_quote_pub.qte_line_tbl_type := aso_quote_pub.g_miss_qte_line_tbl;
6794 l_deactivate_instance_tbl aso_quote_headers_pvt.Instance_Tbl_Type := aso_quote_headers_pvt.G_MISS_Instance_Tbl;
6795 l_deactivate_counter number := 0;
6796
6797 -- End Variable declaration for Batch Validation 05/24/2002
6798
6799 l_order_id number;
6800 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_SHIPMENT_REC;
6801
6802 l_copy_quote_control_rec aso_copy_quote_pub.copy_quote_control_rec_type;
6803 l_copy_quote_header_rec aso_copy_quote_pub.copy_quote_header_rec_type;
6804 l_quote_number number;
6805
6806 l_price_updated_date_flag VARCHAR2(1) := fnd_api.g_false;
6807
6808 --New Code for to call overload pricing_order
6809 lv_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
6810 lx_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
6811 lx_qte_line_tbl ASO_QUOTE_PUB.Qte_Line_Tbl_Type;
6812 lv_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
6813 lv_hd_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
6814 lv_hd_price_attr_tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
6815 lx_price_adj_rltship_tbl ASO_QUOTE_PUB.Price_Adj_Rltship_Tbl_Type;
6816
6817 CURSOR C_Check_Store_Status (l_old_stat NUMBER, l_new_stat NUMBER) IS
6818 SELECT 'Y'
6819 FROM ASO_QUOTE_STATUSES_B A, ASO_QUOTE_STATUSES_B B
6820 WHERE A.Quote_Status_Id = l_old_stat
6821 AND A.Status_Code = 'STORE DRAFT'
6822 AND B.Quote_Status_Id = l_new_stat
6823 AND B.Status_Code = 'DRAFT';
6824
6825 CURSOR C_Get_Quota_Credit_Type IS
6826 SELECT Sales_Credit_Type_Id
6827 FROM OE_SALES_CREDIT_TYPES
6828 WHERE Quota_Flag = 'Y';
6829
6830 CURSOR C_Get_SCredit_Exists(l_qte_hdr_id NUMBER) IS
6831 SELECT 'Y'
6832 FROM ASO_SALES_CREDITS
6833 WHERE quote_header_id = l_qte_hdr_id;
6834
6835 CURSOR c_tax_line(p_qte_header_id NUMBER, p_quote_line_id NUMBER) IS
6836 select nvl(sum(nvl(tax_amount, 0)),0) tax_amount
6837 FROM ASO_TAX_DETAILS
6838 WHERE quote_header_id = p_qte_header_id
6839 and quote_line_id = p_quote_line_id;
6840
6841 Cursor get_line_payment_term(p_qte_header_id NUMBER, p_quote_line_id NUMBER) IS
6842 SELECT payment_term_id
6843 FROM aso_payments
6844 WHERE quote_header_id = p_qte_header_id
6845 and quote_line_id = p_quote_line_id;
6846
6847 Cursor get_hdr_payment_term(p_qte_header_id NUMBER) IS
6848 SELECT payment_term_id
6849 FROM aso_payments
6850 WHERE quote_header_id = p_qte_header_id
6851 and quote_line_id IS NULL;
6852
6853 CURSOR C_Get_Hdr_Resource_Id(lc_qte_header_id NUMBER) IS
6854 SELECT resource_id
6855 FROM Aso_Quote_Headers_All
6856 WHERE quote_header_id = lc_qte_header_id;
6857
6858 CURSOR c_inv_org_id(l_main_org_id Number) IS
6859 SELECT master_organization_id
6860 FROM oe_system_parameters
6861 WHERE org_id = l_main_org_id;
6862
6863 CURSOR c_org_id(p_qte_header_id Number) IS
6864 SELECT org_id
6865 FROM aso_quote_headers_all
6866 WHERE quote_header_id = p_qte_header_id;
6867
6868 l_master_organization_id NUMBER;
6869 l_quote_org_id NUMBER;
6870 l_scredit_exists VARCHAR2(1) := 'N';
6871 l_quota_id NUMBER;
6872 l_store_trans VARCHAR2(1) := 'N';
6873 l_sales_team_prof VARCHAR2(30) := FND_PROFILE.value('ASO_AUTO_TEAM_ASSIGN');
6874
6875 -- hyang defaulting framework
6876 l_def_control_rec ASO_DEFAULTING_INT.Control_Rec_Type := ASO_DEFAULTING_INT.G_MISS_CONTROL_REC;
6877 l_db_object_name VARCHAR2(30);
6878 l_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Shipment_REC;
6879 l_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type := ASO_QUOTE_PUB.G_MISS_Payment_REC;
6880 l_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type := ASO_QUOTE_PUB.G_MISS_Tax_Detail_REC;
6881 l_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type := ASO_DEFAULTING_INT.G_MISS_HEADER_MISC_REC;
6882 lx_hd_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
6883 lx_hd_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
6884 lx_hd_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
6885 lx_hd_misc_rec ASO_DEFAULTING_INT.Header_Misc_Rec_Type;
6886 lx_quote_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
6887 lx_ln_misc_rec ASO_DEFAULTING_INT.Line_Misc_Rec_Type;
6888 lx_ln_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
6889 lx_ln_payment_rec ASO_QUOTE_PUB.Payment_Rec_Type;
6890 lx_ln_tax_detail_rec ASO_QUOTE_PUB.Tax_Detail_Rec_Type;
6891 lx_changed_flag VARCHAR2(1);
6892 l_hd_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
6893 l_hd_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
6894
6895 --Template changes
6896 l_template_tbl aso_quote_tmpl_int.list_template_tbl_type;
6897 l_qte_line_tbl aso_quote_pub.qte_line_tbl_type := p_qte_line_tbl;
6898 lx_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type := p_qte_line_dtl_tbl;
6899 l_count number;
6900 l_currency_code varchar2(15);
6901 l_price_list_id number;
6902 l_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
6903 l_related_obj_id number;
6904 x_related_obj_rec ASO_quote_PUB.RELATED_OBJ_Rec_Type := ASO_quote_PUB.G_MISS_RELATED_OBJ_REC;
6905 l_obj_id number;
6906
6907 l_installment_option VARCHAR2(240);
6908 l_line_shipping_charge NUMBER;
6909 l_line_tax NUMBER;
6910 l_line_term_id NUMBER := null;
6911 l_line_amount NUMBER;
6912 l_paynow_amount NUMBER;
6913 l_paynow_tax NUMBER;
6914 l_paynow_charges NUMBER;
6915 l_paynow_total NUMBER;
6916 l_call_ar_api varchar2(1);
6917 BEGIN
6918 -- Standard Start of API savepoint
6919 SAVEPOINT UPDATE_quote_PVT;
6920
6921 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6922 aso_debug_pub.add('******************************************************', 1, 'Y');
6923 aso_debug_pub.add('Begin Update_Quote Procedure', 1, 'Y');
6924 aso_debug_pub.add('******************************************************', 1, 'Y');
6925 END IF;
6926
6927 -- Standard call to check for call compatibility.
6928 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
6929 p_api_version_number,
6930 l_api_name,
6931 G_PKG_NAME) THEN
6932 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6933 END IF;
6934
6935 -- Initialize message list if p_init_msg_list is set to TRUE.
6936 IF FND_API.to_Boolean( p_init_msg_list ) THEN
6937 FND_MSG_PUB.initialize;
6938 END IF;
6939
6940 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6941 aso_debug_pub.add('Update_Quote - Begin ', 1, 'Y');
6942 END IF;
6943 --Procedure added by Anoop Rajan on 30/09/2005 to print login details
6944 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6945 aso_debug_pub.add('Before call to printing login info details', 1, 'Y');
6946 ASO_UTILITY_PVT.print_login_info;
6947 aso_debug_pub.add('After call to printing login info details', 1, 'Y');
6948 END IF;
6949
6950 -- Change Done By Girish
6951 -- Procedure added to validate the operating unit
6952 ASO_VALIDATE_PVT.VALIDATE_OU(P_Qte_Header_Rec);
6953
6954 -- Initialize API return status to SUCCESS
6955 x_return_status := FND_API.G_RET_STS_SUCCESS;
6956
6957 -- Api body
6958 l_control_rec.line_pricing_event := NULL;
6959 l_control_rec.calculate_tax_flag := NULL;
6960
6961 -- ******************************************************************
6962 -- Validate Environment
6963 -- ******************************************************************
6964 IF FND_GLOBAL.User_Id IS NULL THEN
6965
6966 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
6967 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
6968 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
6969 FND_MSG_PUB.ADD;
6970 END IF;
6971 RAISE FND_API.G_EXC_ERROR;
6972 END IF;
6973
6974
6975 IF aso_debug_pub.g_debug_flag = 'Y' THEN
6976 aso_debug_pub.add('Update_Quote: Before call to aso_input_param_debug.print_quote_input procedure', 1, 'Y');
6977
6978 ASO_INPUT_PARAM_DEBUG.Print_quote_input(
6979 P_Quote_Header_Rec => p_qte_header_rec
6980 , P_hd_Price_Attributes_Tbl => P_hd_Price_Attributes_Tbl
6981 , P_hd_Payment_Tbl => P_hd_Payment_Tbl
6982 , P_hd_Shipment_tbl => P_hd_Shipment_tbl
6983 , P_hd_Tax_Detail_Tbl => P_hd_Tax_Detail_Tbl
6984 , P_hd_Sales_Credit_Tbl => P_hd_Sales_Credit_Tbl
6985 , P_Qte_Line_Tbl => P_Qte_Line_Tbl
6986 , P_Qte_Line_Dtl_Tbl => P_Qte_Line_Dtl_Tbl
6987 , P_Price_Adjustment_Tbl => P_Price_Adjustment_Tbl
6988 , P_Ln_Price_Attributes_Tbl => P_Ln_Price_Attributes_Tbl
6989 , P_Ln_Payment_Tbl => P_Ln_Payment_Tbl
6990 , P_Ln_Shipment_Tbl => P_Ln_Shipment_Tbl
6991 , P_Ln_Tax_Detail_Tbl => P_Ln_Tax_Detail_Tbl
6992 , P_ln_Sales_Credit_Tbl => P_ln_Sales_Credit_Tbl
6993 , P_Qte_Access_Tbl => P_Qte_Access_Tbl);
6994
6995 aso_debug_pub.add('Update_Quote: After call to aso_input_param_debug.print_quote_input procedure', 1, 'Y');
6996 END IF;
6997
6998
6999
7000 Open C_Get_quote( p_qte_header_rec.QUOTE_HEADER_ID);
7001 Fetch C_Get_quote into l_LAST_UPDATE_DATE, l_qte_status_id, l_qte_number,l_party_id, l_cust_account_id,
7002 l_order_type_id,l_order_id,l_object_version_number, l_currency_code, l_price_list_id;
7003
7004 If ( C_Get_quote%NOTFOUND) Then
7005
7006 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7007 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_UPDATE_TARGET');
7008 FND_MESSAGE.Set_Token ('INFO', 'quote', FALSE);
7009 FND_MSG_PUB.Add;
7010 END IF;
7011 raise FND_API.G_EXC_ERROR;
7012
7013 END IF;
7014 Close C_Get_quote;
7015
7016 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7017 aso_debug_pub.add('Update_Quote: quote_header_id: '|| p_qte_header_rec.quote_header_id, 1, 'Y');
7018 aso_debug_pub.add('Update_Quote: l_LAST_UPDATE_DATE: '|| l_LAST_UPDATE_DATE, 1, 'Y');
7019 aso_debug_pub.add('Update_Quote: l_qte_status_id: '|| l_qte_status_id, 1, 'Y');
7020 aso_debug_pub.add('Update_Quote: l_qte_number: '|| l_qte_number, 1, 'Y');
7021 aso_debug_pub.add('Update_Quote: l_order_type_id: '|| l_order_type_id, 1, 'Y');
7022 aso_debug_pub.add('Update_Quote: l_order_id: '|| l_order_id, 1, 'Y');
7023 aso_debug_pub.add('Update_Quote: l_object_version_number: '|| l_object_version_number,1,'Y');
7024 aso_debug_pub.add('Update_Quote: l_currency_code: '|| l_currency_code,1,'Y');
7025 aso_debug_pub.add('Update_Quote: l_price_list_id: '|| l_price_list_id,1,'Y');
7026 END IF;
7027
7028 If (l_last_update_date is NULL or l_last_update_date = FND_API.G_MISS_Date ) Then
7029
7030 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7031 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
7032 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
7033 FND_MSG_PUB.ADD;
7034 END IF;
7035 raise FND_API.G_EXC_ERROR;
7036
7037 End if;
7038
7039 -- Check Whether record has been changed by someone else
7040 If (l_last_update_date <> p_qte_header_rec.last_update_date) Then
7041
7042 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7043 FND_MESSAGE.Set_Name('ASO', 'ASO_API_RECORD_CHANGED');
7044 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
7045 FND_MSG_PUB.ADD;
7046 END IF;
7047 raise FND_API.G_EXC_ERROR;
7048
7049 End if;
7050
7051 --ovn
7052 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
7053
7054 --Compare the passed value to the db value
7055 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7056 aso_debug_pub.add('Update_Quote - p_qte_header_rec.object_version_number:' ||p_qte_header_rec.object_version_number,1,'Y');
7057 END IF;
7058
7059 If (l_object_version_number <> p_qte_header_rec.object_version_number) then
7060
7061 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7062 FND_MESSAGE.Set_Name('ASO', 'ASO_API_RECORD_CHANGED');
7063 FND_MESSAGE.Set_Token('INFO', 'quote', FALSE);
7064 FND_MSG_PUB.ADD;
7065 END IF;
7066 raise FND_API.G_EXC_ERROR;
7067
7068 End If;
7069
7070 End If; --(l_object_version_number is not null) or (l_object_version_number <> FND_API.G_MISS_NUM)
7071
7072
7073 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
7074
7075 ASO_CONC_REQ_INT.Lock_Exists( p_quote_header_id => p_qte_header_rec.quote_header_id,
7076 x_status => x_status);
7077
7078 if (x_status = FND_API.G_TRUE) then
7079
7080 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7081 FND_MESSAGE.Set_Name('ASO', 'ASO_CONC_REQUEST_RUNNING');
7082 FND_MSG_PUB.ADD;
7083 end if;
7084 raise FND_API.G_EXC_ERROR;
7085
7086 end if;
7087 end if;
7088
7089 IF l_order_id is NOT NULL and l_order_id <> FND_API.G_MISS_NUM THEN
7090
7091 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7092 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UPDATE_QUOTE_SUBMITTED');
7093 FND_MSG_PUB.ADD;
7094 END IF;
7095 raise FND_API.G_EXC_ERROR;
7096
7097 END IF;
7098
7099 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7100 aso_debug_pub.add('Update_Quote - quote_number: '||to_char(l_qte_number), 1, 'N');
7101 END IF;
7102
7103 OPEN c_qte_status (l_qte_status_id);
7104 FETCH C_qte_status INTO l_auto_version;
7105 CLOSE c_qte_status;
7106
7107 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7108 aso_debug_pub.add('Update_Quote - auto_version: '||l_auto_version, 1, 'N');
7109 END IF;
7110
7111 -- auto version check should be done only if the control rec is set
7112
7113 IF NVL(l_auto_version, 'Y') = 'Y' AND p_control_rec.auto_version_flag = FND_API.G_TRUE THEN
7114
7115 OPEN C_Qte_Version(l_qte_number);
7116 FETCH C_Qte_Version into l_qte_header_rec.quote_version;
7117 CLOSE C_Qte_Version;
7118
7119 l_qte_header_rec.quote_version := nvl(l_qte_header_rec.quote_version, 0) + 1;
7120
7121 ELSE
7122 l_auto_version := 'N';
7123
7124 END IF;
7125
7126
7127 -- hyang defaulting framework begin
7128
7129 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7130 aso_debug_pub.add('Update_Quote - before defaulting framework', 1, 'Y');
7131 aso_debug_pub.add('Update_Quote - populate defaulting control record from the header control record', 1, 'Y');
7132 END IF ;
7133
7134 l_def_control_rec.Dependency_Flag := l_control_rec.Dependency_Flag;
7135 l_def_control_rec.Defaulting_Flag := l_control_rec.Defaulting_Flag;
7136 l_def_control_rec.Application_Type_Code := l_control_rec.Application_Type_Code;
7137 l_def_control_rec.Defaulting_Flow_Code := 'UPDATE';
7138 l_def_control_rec.Last_Update_Date := P_Qte_Header_Rec.Last_Update_Date;
7139
7140 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7141 aso_debug_pub.add('Defaulting_Fwk_Flag - '||l_control_rec.Defaulting_Fwk_Flag, 1, 'Y');
7142 aso_debug_pub.add('Dependency_Flag - '||l_def_control_rec.Dependency_Flag, 1, 'Y');
7143 aso_debug_pub.add('Defaulting_Flag - '||l_def_control_rec.Defaulting_Flag, 1, 'Y');
7144 aso_debug_pub.add('Application_Type_Code - '||l_def_control_rec.Application_Type_Code, 1, 'Y');
7145 aso_debug_pub.add('Defaulting_Flow_Code - '||l_def_control_rec.Defaulting_Flow_Code, 1, 'Y');
7146 aso_debug_pub.add('Last_Update_Date - '||l_def_control_rec.Last_Update_Date, 1, 'Y');
7147 END IF ;
7148
7149 IF l_def_control_rec.application_type_code = 'QUOTING HTML'
7150 OR l_def_control_rec.application_type_code = 'QUOTING FORM' THEN
7151
7152 l_db_object_name := G_QUOTE_HEADER_DB_NAME;
7153
7154 ELSIF l_def_control_rec.application_type_code = 'ISTORE' THEN
7155
7156 l_db_object_name := G_STORE_CART_HEADER_DB_NAME;
7157 ELSE
7158 l_control_rec.Defaulting_Fwk_Flag := 'N';
7159 END IF;
7160
7161 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7162 aso_debug_pub.add('Update_Quote - Pick '||l_db_object_name ||' based on calling application '||l_def_control_rec.application_type_code, 1, 'Y');
7163 END IF ;
7164
7165 IF p_hd_shipment_tbl.count > 0 THEN
7166 l_hd_shipment_rec := p_hd_shipment_tbl(1);
7167 END IF;
7168
7169 IF p_hd_payment_tbl.count > 0 THEN
7170 l_hd_payment_rec := p_hd_payment_tbl(1);
7171 END IF;
7172
7173 IF p_hd_tax_detail_tbl.count > 0 THEN
7174 l_hd_tax_detail_rec := p_hd_tax_detail_tbl(1);
7175 END IF;
7176
7177 l_hd_shipment_tbl := p_hd_shipment_tbl;
7178 l_hd_payment_tbl := p_hd_payment_tbl;
7179 l_hd_tax_detail_tbl := p_hd_tax_detail_tbl;
7180
7181 -- In create quote, it never deaults any line level record
7182 /* Removing Call for defaulting from update_quote
7183 IF l_control_rec.defaulting_fwk_flag = 'Y' THEN
7184
7185 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7186 aso_debug_pub.add('Update_Quote - Calling default_entity', 1, 'Y');
7187 END IF ;
7188
7189 ASO_DEFAULTING_INT.Default_Entity (
7190 p_api_version => 1.0
7191 , p_control_rec => l_def_control_rec
7192 , p_database_object_name => l_db_object_name
7193 , p_quote_header_rec => P_Qte_Header_Rec
7194 , p_header_misc_rec => l_hd_misc_rec
7195 , p_header_shipment_rec => l_hd_shipment_rec
7196 , p_header_payment_rec => l_hd_payment_rec
7197 , p_header_tax_detail_rec => l_hd_tax_detail_rec
7198 , x_quote_header_rec => l_qte_header_rec
7199 , x_header_misc_rec => lx_hd_misc_rec
7200 , x_header_shipment_rec => lx_hd_shipment_rec
7201 , x_header_payment_rec => lx_hd_payment_rec
7202 , x_header_tax_detail_rec => lx_hd_tax_detail_rec
7203 , x_quote_line_rec => lx_quote_line_rec
7204 , x_line_misc_rec => lx_ln_misc_rec
7205 , x_line_shipment_rec => lx_ln_shipment_rec
7206 , x_line_payment_rec => lx_ln_payment_rec
7207 , x_line_tax_detail_rec => lx_ln_tax_detail_rec
7208 , x_changed_flag => lx_changed_flag
7209 , x_return_status => x_return_status
7210 , x_msg_count => x_msg_count
7211 , x_msg_data => x_msg_data);
7212
7213 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7214
7215 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7216 FND_MESSAGE.Set_Name('ASO', 'ASO_API_ERROR_DEFAULTING');
7217 FND_MSG_PUB.ADD;
7218 END IF;
7219
7220 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
7221 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7222 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
7223 RAISE FND_API.G_EXC_ERROR;
7224 END IF;
7225
7226 END IF;
7227
7228 IF Shipment_Null_Rec_Exists(lx_hd_shipment_rec, l_db_object_name) THEN
7229 l_hd_shipment_tbl(1) := lx_hd_shipment_rec;
7230 END IF;
7231
7232 IF Payment_Null_Rec_Exists(lx_hd_payment_rec, l_db_object_name) THEN
7233 l_hd_payment_tbl(1) := lx_hd_payment_rec;
7234 END IF;
7235
7236 IF Tax_Detail_Null_Rec_Exists(lx_hd_tax_detail_rec, l_db_object_name) THEN
7237 l_hd_tax_detail_tbl(1) := lx_hd_tax_detail_rec;
7238 END IF;
7239
7240 END IF;
7241 */
7242 -- hyang defaulting framework end
7243
7244
7245 IF l_control_rec.defaulting_fwk_flag = 'N' THEN
7246
7247 /* Updating of Order type */
7248 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7249 aso_debug_pub.add('Update_Quote - p_qte_header_rec.order_type_id '||p_qte_header_rec.order_type_id, 1, 'N');
7250
7251 -- Change START
7252 -- Release 12 MOAC Changes : Bug 4500739
7253 -- Changes Done by : Girish
7254 -- Comments : Using HR EIT in place of org striped profile
7255
7256 -- aso_debug_pub.add('Update_Quote - Value of Order Type Profile'||to_number(fnd_profile.value('ASO_ORDER_TYPE_ID')), 1, 'N');
7257 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');
7258
7259 -- Change END
7260
7261 aso_debug_pub.add('Update_Quote - order_type_id from database '||l_order_type_id, 1, 'N');
7262 END IF;
7263
7264 IF p_qte_header_rec.order_type_id is null OR p_qte_header_rec.order_type_id = FND_API.G_MISS_NUM THEN
7265 IF l_order_type_id is NULL OR l_order_type_id = FND_API.G_MISS_NUM THEN
7266
7267 -- Change START
7268 -- Release 12 MOAC Changes : Bug 4500739
7269 -- Changes Done by : Girish
7270 -- Comments : Using HR EIT in place of org striped profile
7271
7272 --l_qte_header_rec.order_type_id := to_number(fnd_profile.value('ASO_ORDER_TYPE_ID'));
7273 l_qte_header_rec.order_type_id := to_number(ASO_UTILITY_PVT.GET_OU_ATTRIBUTE_VALUE(ASO_UTILITY_PVT.G_DEFAULT_ORDER_TYPE));
7274
7275 -- Change END
7276
7277 END IF;
7278 END IF;
7279
7280 END IF;
7281
7282 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7283 aso_debug_pub.add('Update_Quote - l_qte_header_rec.publish_flag '||l_qte_header_rec.publish_flag, 1, 'N');
7284 END IF;
7285
7286 IF l_qte_header_rec.publish_flag = 'Y' THEN
7287
7288 -- check for missing customer accounts in the quote
7289 ASO_CHECK_TCA_PVT.Check_Customer_Accounts (
7290 p_init_msg_list => fnd_api.g_false,
7291 p_qte_header_id => l_qte_header_rec.quote_header_id,
7292 x_return_status => x_return_status,
7293 x_msg_count => x_msg_count,
7294 x_msg_data => x_msg_data );
7295
7296 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7297 aso_debug_pub.add('Update_Quote - chk_cust_accts: x_return_status: '||x_return_status, 1, 'N');
7298 END IF;
7299
7300 IF x_return_status <> fnd_api.g_ret_sts_success THEN
7301 RAISE fnd_api.g_exc_error;
7302 END IF; -- end check_customer_accounts
7303
7304 -- assign the missing customer accounts to the quote
7305 ASO_CHECK_TCA_PVT.Assign_Customer_Accounts (
7306 p_init_msg_list => fnd_api.g_false,
7307 p_qte_header_id => l_qte_header_rec.quote_header_id,
7308 p_calling_api_flag => 1,
7309 x_return_status => x_return_status,
7310 x_msg_count => x_msg_count,
7311 x_msg_data => x_msg_data );
7312
7313 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7314 aso_debug_pub.add('Update_Quote - assign_cust_accts: x_return_status: '||x_return_status, 1, 'N');
7315 END IF;
7316
7317 IF x_return_status <> fnd_api.g_ret_sts_success THEN
7318 RAISE fnd_api.g_exc_error;
7319 END IF;
7320
7321 END IF; --l_qte_header_rec.publish_flag = 'Y' THEN
7322
7323
7324 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
7325
7326 -- party_id must exist and be active in HZ_PARTIES
7327 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7328 aso_debug_pub.add('Update_Quote - before validate_party: ', 1, 'N');
7329 END IF;
7330
7331 ASO_VALIDATE_PVT.Validate_Party (
7332 p_init_msg_list => FND_API.G_FALSE,
7333 p_party_id => l_qte_header_rec.party_id,
7334 p_party_usage => 'QUOTE_PARTY',
7335 x_return_status => x_return_status,
7336 x_msg_count => x_msg_count,
7337 x_msg_data => x_msg_data);
7338
7339 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7340
7341 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7342 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
7343 FND_MESSAGE.Set_Token('COLUMN', 'PARTY_ID', FALSE);
7344 FND_MSG_PUB.ADD;
7345 END IF;
7346 RAISE FND_API.G_EXC_ERROR;
7347
7348 END IF;
7349
7350 -- org_contact_id must be exist and active in HZ_ORG_CONTACTS
7351 ASO_VALIDATE_PVT.Validate_Contact (
7352 p_init_msg_list => FND_API.G_FALSE,
7353 p_contact_id => l_qte_header_rec.org_contact_id,
7354 p_contact_usage => 'ORG_CONTACT',
7355 x_return_status => x_return_status,
7356 x_msg_count => x_msg_count,
7357 x_msg_data => x_msg_data);
7358
7359 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7360
7361 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7362 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
7363 FND_MESSAGE.Set_Token('COLUMN', 'ORG_CONTACT_ID', FALSE);
7364 FND_MSG_PUB.ADD;
7365 END IF;
7366 RAISE FND_API.G_EXC_ERROR;
7367 END IF;
7368
7369 -- invoice_to_party_id must exist and be active in HZ_PARTIES and have the usage INVOICE.
7370
7371 ASO_VALIDATE_PVT.Validate_Party (
7372 p_init_msg_list => FND_API.G_FALSE,
7373 p_party_id => l_qte_header_rec.invoice_to_party_id,
7374 p_party_usage => 'INVOICE_TO_PARTY',
7375 x_return_status => x_return_status,
7376 x_msg_count => x_msg_count,
7377 x_msg_data => x_msg_data);
7378
7379 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7380
7381 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7382 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
7383 FND_MESSAGE.Set_Token('COLUMN', 'INVOICE_TO_PARTY_ID', FALSE);
7384 FND_MSG_PUB.ADD;
7385 END IF;
7386 RAISE FND_API.G_EXC_ERROR;
7387 END IF;
7388
7389 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
7390
7391 IF l_qte_header_rec.cust_account_id <> FND_API.G_MISS_NUM THEN
7392 l_cust_account_id := l_qte_header_rec.cust_account_id;
7393 END IF;
7394
7395 IF l_qte_header_rec.party_id <> FND_API.G_MISS_NUM THEN
7396 l_party_id := l_qte_header_rec.party_id;
7397 END IF;
7398
7399 ASO_PARTY_INT.Validate_CustAccount (
7400 p_init_msg_list => FND_API.G_FALSE,
7401 p_party_id => l_party_id,
7402 p_cust_account_id => l_cust_account_id,
7403 x_return_status => x_return_status,
7404 x_msg_count => x_msg_count,
7405 x_msg_data => x_msg_data );
7406
7407 END IF;
7408
7409 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7410 RAISE FND_API.G_EXC_ERROR;
7411 END IF;
7412
7413 -- order_type must exist and be active in OE_ORDER_TYPES
7414
7415 ASO_TRADEIN_PVT.OrderType(
7416 p_init_msg_list => FND_API.G_FALSE,
7417 p_qte_header_rec => l_qte_header_rec,
7418 x_return_status => x_return_status,
7419 x_msg_count => x_msg_count,
7420 x_msg_data => x_msg_data);
7421
7422 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7423 RAISE FND_API.G_EXC_ERROR;
7424 END IF;
7425
7426 ASO_VALIDATE_PVT.Validate_Quote_Exp_date(
7427 p_init_msg_list => FND_API.G_FALSE,
7428 p_quote_expiration_date => l_qte_header_rec.quote_expiration_date,
7429 x_return_status => x_return_status,
7430 x_msg_count => x_msg_count,
7431 x_msg_data => x_msg_data);
7432
7433 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7434
7435 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7436 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UPD_EXPIRATION_DATE');
7437 FND_MSG_PUB.ADD;
7438 END IF;
7439 RAISE FND_API.G_EXC_ERROR;
7440 END IF;
7441
7442 -- price list must exist and be active in OE_PRICE_LISTS
7443 ASO_VALIDATE_PVT.Validate_PriceList (
7444 p_init_msg_list => FND_API.G_FALSE,
7445 p_price_list_id => l_qte_header_rec.price_list_id,
7446 x_return_status => x_return_status,
7447 x_msg_count => x_msg_count,
7448 x_msg_data => x_msg_data);
7449
7450 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7451
7452 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7453 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
7454 FND_MESSAGE.Set_Token('COLUMN', 'PRICE_LIST_ID', FALSE);
7455 FND_MSG_PUB.ADD;
7456 END IF;
7457 RAISE FND_API.G_EXC_ERROR;
7458 END IF;
7459
7460 ASO_VALIDATE_PVT.Validate_Quote_Price_Exp(
7461 p_init_msg_list => FND_API.G_FALSE,
7462 p_price_list_id => l_qte_header_rec.price_list_id,
7463 p_quote_expiration_date => l_qte_header_rec.quote_expiration_date,
7464 x_return_status => x_return_status,
7465 x_msg_count => x_msg_count,
7466 x_msg_data => x_msg_data);
7467
7468 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7469
7470 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7471 FND_MESSAGE.Set_Name('ASO', 'API_INVALID_ID');
7472 FND_MESSAGE.Set_Token('COLUMN', 'Price List Expires Before Quote', FALSE);
7473 FND_MSG_PUB.ADD;
7474 END IF;
7475 RAISE FND_API.G_EXC_ERROR;
7476 END IF;
7477
7478 -- if status is to be changed, a valid transition should exist.
7479 IF (l_qte_header_rec.quote_status_id IS NOT NULL
7480 AND l_qte_header_rec.quote_status_id <> FND_API.G_MISS_NUM
7481 AND l_qte_header_rec.quote_status_id <> l_qte_status_id) THEN
7482
7483 ASO_VALIDATE_PVT.Validate_Status_Transition(
7484 p_init_msg_list => FND_API.G_FALSE,
7485 p_source_status_id => l_qte_status_id,
7486 p_dest_status_id => l_qte_header_rec.quote_status_id,
7487 x_return_status => x_return_status,
7488 x_msg_count => x_msg_count,
7489 x_msg_data => x_msg_data);
7490
7491 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7492
7493 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7494 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_STATUS_TRANS');
7495 FND_MSG_PUB.ADD;
7496 END IF;
7497 RAISE FND_API.G_EXC_ERROR;
7498 END IF;
7499 END IF;
7500
7501
7502 FOR i in 1..p_hd_sales_credit_tbl.count LOOP
7503
7504 if aso_debug_pub.g_debug_flag = 'Y' then
7505 aso_debug_pub.add('p_hd_sales_credit_tbl('||i||').operation_code: '|| p_hd_sales_credit_tbl(i).operation_code,1,'Y');
7506 end if;
7507
7508 if (p_hd_sales_credit_tbl(i).operation_code = 'CREATE' or p_hd_sales_credit_tbl(i).operation_code = 'UPDATE') then
7509
7510 ASO_VALIDATE_PVT.Validate_Resource_id(
7511 p_init_msg_list => FND_API.G_FALSE,
7512 p_resource_id => p_hd_sales_credit_tbl(i).resource_id ,
7513 x_return_status => x_return_status,
7514 x_msg_count => x_msg_count,
7515 x_msg_data => x_msg_data);
7516
7517 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7518
7519 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7520 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_SALES_REP_ID');
7521 FND_MSG_PUB.ADD;
7522 END IF;
7523 RAISE FND_API.G_EXC_ERROR;
7524 END IF;
7525
7526
7527 ASO_VALIDATE_PVT.Validate_Resource_group_id(
7528 p_init_msg_list => FND_API.G_FALSE,
7529 p_resource_group_id => p_hd_sales_credit_tbl(i).resource_group_id,
7530 x_return_status => x_return_status,
7531 x_msg_count => x_msg_count,
7532 x_msg_data => x_msg_data);
7533
7534 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7535 RAISE FND_API.G_EXC_ERROR;
7536 END IF;
7537
7538
7539 ASO_VALIDATE_PVT.Validate_Salescredit_Type(
7540 p_init_msg_list => FND_API.G_FALSE,
7541 p_salescredit_type_id => p_hd_sales_credit_tbl(i).sales_credit_type_id,
7542 x_return_status => x_return_status,
7543 x_msg_count => x_msg_count,
7544 x_msg_data => x_msg_data);
7545
7546 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7547 RAISE FND_API.G_EXC_ERROR;
7548 END IF;
7549
7550
7551 ASO_VALIDATE_PVT.Validate_EmployPerson(
7552 p_init_msg_list => FND_API.G_FALSE,
7553 p_employee_id => p_hd_sales_credit_tbl(i).employee_person_id,
7554 x_return_status => x_return_status,
7555 x_msg_count => x_msg_count,
7556 x_msg_data => x_msg_data);
7557
7558 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7559 RAISE FND_API.G_EXC_ERROR;
7560 END IF;
7561
7562 end if;
7563
7564 END LOOP;
7565
7566 FOR i in 1..p_hd_quote_party_tbl.count LOOP
7567
7568 ASO_VALIDATE_PVT.Validate_Party_Type(
7569 p_init_msg_list => FND_API.G_FALSE,
7570 p_party_type => p_hd_quote_party_tbl(i).party_type,
7571 x_return_status => x_return_status,
7572 x_msg_count => x_msg_count,
7573 x_msg_data => x_msg_data);
7574
7575 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7576 RAISE FND_API.G_EXC_ERROR;
7577 END IF;
7578
7579 ASO_VALIDATE_PVT.Validate_Party(
7580 p_init_msg_list => FND_API.G_FALSE,
7581 p_party_id => p_hd_quote_party_tbl(i).party_id,
7582 p_party_usage => null,
7583 x_return_status => x_return_status,
7584 x_msg_count => x_msg_count,
7585 x_msg_data => x_msg_data);
7586
7587 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7588 RAISE FND_API.G_EXC_ERROR;
7589 END IF;
7590
7591 ASO_VALIDATE_PVT.Validate_Party_Object_Type(
7592 p_init_msg_list => FND_API.G_FALSE,
7593 p_party_object_type => p_hd_quote_party_tbl(i).party_object_type,
7594 x_return_status => x_return_status,
7595 x_msg_count => x_msg_count,
7596 x_msg_data => x_msg_data);
7597
7598 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7599 RAISE FND_API.G_EXC_ERROR;
7600 END IF;
7601
7602 END LOOP;
7603
7604 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
7605
7606 IF l_hd_Shipment_tbl.count > 0 THEN
7607 l_shipment_rec := l_hd_Shipment_tbl(1);
7608 END IF;
7609
7610 ASO_VALIDATE_PVT.Validate_item_tca_bsc(
7611 p_init_msg_list => FND_API.G_FALSE,
7612 p_qte_header_rec => l_qte_header_rec,
7613 p_shipment_rec => l_shipment_rec,
7614 p_operation_code => 'UPDATE',
7615 p_application_type_code => l_control_rec.application_type_code,
7616 x_return_status => x_return_status,
7617 x_msg_count => x_msg_count,
7618 x_msg_data => x_msg_data);
7619
7620 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7621 RAISE FND_API.G_EXC_ERROR;
7622 END IF;
7623
7624 END IF;
7625
7626 END IF;
7627
7628 IF p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_INTER_RECORD THEN
7629
7630 IF l_qte_header_rec.currency_code IS NULL THEN
7631
7632 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7633 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
7634 FND_MESSAGE.Set_Token('COLUMN', 'CURRENCY_CODE', FALSE);
7635 FND_MSG_PUB.ADD;
7636 END IF;
7637 RAISE FND_API.G_EXC_ERROR;
7638 END IF;
7639
7640 -- tax_exempt_flag must be in 'E', 'R' and 'S'
7641 -- and tax_exempt_reason_code must exist if tax_exempt_flag is 'E'.
7642
7643 FOR i IN 1..l_hd_tax_detail_tbl.count LOOP
7644
7645 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
7646 p_init_msg_list => FND_API.G_FALSE,
7647 p_tax_exempt_flag => l_hd_tax_detail_tbl(i).tax_exempt_flag,
7648 p_tax_exempt_reason_code => l_hd_tax_detail_tbl(i).tax_exempt_reason_code,
7649 x_return_status => x_return_status,
7650 x_msg_count => x_msg_count,
7651 x_msg_data => x_msg_data);
7652
7653 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7654
7655 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7656 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
7657 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
7658 FND_MSG_PUB.ADD;
7659 END IF;
7660 RAISE FND_API.G_EXC_ERROR;
7661 END IF;
7662
7663 END LOOP;
7664
7665 FOR i IN 1..p_ln_tax_detail_tbl.count LOOP
7666
7667 ASO_VALIDATE_PVT.Validate_Tax_Exemption (
7668 p_init_msg_list => FND_API.G_FALSE,
7669 p_tax_exempt_flag => p_ln_tax_detail_tbl(i).tax_exempt_flag,
7670 p_tax_exempt_reason_code => p_ln_tax_detail_tbl(i).tax_exempt_reason_code,
7671 x_return_status => x_return_status,
7672 x_msg_count => x_msg_count,
7673 x_msg_data => x_msg_data);
7674
7675 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7676
7677 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7678 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_COLUMN');
7679 FND_MESSAGE.Set_Token('COLUMN', 'TAX_EXEMPT_REASON', FALSE);
7680 FND_MSG_PUB.ADD;
7681 END IF;
7682
7683 RAISE FND_API.G_EXC_ERROR;
7684 END IF;
7685
7686 END LOOP;
7687
7688 FOR i in 1..p_hd_quote_party_tbl.count LOOP
7689
7690 ASO_VALIDATE_PVT.Validate_Party_Object_Id(
7691 p_init_msg_list => FND_API.G_FALSE,
7692 p_party_id => p_hd_quote_party_tbl(i).party_id,
7693 p_party_object_type => p_hd_quote_party_tbl(i).party_object_type,
7694 p_party_object_id => p_hd_quote_party_tbl(i).party_object_id,
7695 x_return_status => x_return_status,
7696 x_msg_count => x_msg_count,
7697 x_msg_data => x_msg_data);
7698
7699 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7700
7701 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7702 FND_MESSAGE.Set_Name('ASO', 'ASO_INVALID_INFORMATION');
7703 FND_MESSAGE.Set_Token('INFO', 'PARTY OBJECT ID', FALSE);
7704 FND_MSG_PUB.ADD;
7705 END IF;
7706 RAISE FND_API.G_EXC_ERROR;
7707 END IF;
7708
7709 END LOOP;
7710
7711
7712 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
7713
7714 IF l_hd_Shipment_tbl.count > 0 THEN
7715 l_shipment_rec := l_hd_Shipment_tbl(1);
7716 END IF;
7717
7718 ASO_VALIDATE_PVT.Validate_record_tca_crs(
7719 p_init_msg_list => FND_API.G_FALSE,
7720 p_qte_header_rec => l_qte_header_rec,
7721 p_shipment_rec => l_shipment_rec,
7722 p_operation_code => 'UPDATE',
7723 p_application_type_code => l_control_rec.application_type_code,
7724 x_return_status => x_return_status,
7725 x_msg_count => x_msg_count,
7726 x_msg_data => x_msg_data);
7727
7728 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
7729 RAISE FND_API.G_EXC_ERROR;
7730 END IF;
7731 END IF;
7732
7733 END IF;
7734
7735 IF l_hd_payment_tbl.count > 0 THEN
7736
7737 FOR payment_rec IN c_payment_rec LOOP
7738 l_payment_db_tbl(payment_rec.payment_id) := payment_rec.payment_option;
7739 END LOOP;
7740
7741 FOR i IN 1..l_hd_payment_tbl.count LOOP
7742
7743 IF l_hd_payment_tbl(i).operation_code = 'CREATE' THEN
7744
7745 l_payment_db_tbl(NVL(l_payment_db_tbl.last, 0)+1) := l_hd_payment_tbl(i).payment_option;
7746
7747 ELSIF l_hd_payment_tbl(i).operation_code = 'UPDATE' THEN
7748
7749 IF l_hd_payment_tbl(i).payment_id <> FND_API.G_MISS_NUM AND
7750 l_payment_db_tbl.exists(l_hd_payment_tbl(i).payment_id) AND
7751 l_hd_payment_tbl(i).payment_option <> FND_API.G_MISS_CHAR THEN
7752
7753 l_payment_db_tbl(l_hd_payment_tbl(i).payment_id) := l_hd_payment_tbl(i).payment_option;
7754 END IF;
7755
7756 ELSIF l_hd_payment_tbl(i).operation_code = 'DELETE' THEN
7757
7758 IF l_hd_payment_tbl(i).payment_id <> FND_API.G_MISS_NUM AND
7759 l_payment_db_tbl.exists(l_hd_payment_tbl(i).payment_id) THEN
7760
7761 l_payment_db_tbl.DELETE(l_hd_payment_tbl(i).payment_id);
7762 END IF;
7763
7764 END IF;
7765
7766 END LOOP;
7767
7768 IF (FND_PROFILE.Value('ASO_ENABLE_SPLIT_PAYMENT') = 'N') THEN
7769
7770 IF l_hd_payment_tbl.count > 1 THEN
7771
7772 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7773 FND_MESSAGE.Set_Name('ASO', 'ASO_API_SPLIT_PAYMENT');
7774 FND_MSG_PUB.ADD;
7775 END IF;
7776 RAISE FND_API.G_EXC_ERROR;
7777
7778 ELSIF l_hd_payment_tbl.count = 1 THEN
7779
7780 IF l_hd_payment_tbl(1).payment_option = 'SPLIT' THEN
7781
7782 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7783 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_PAYMENTS');
7784 FND_MSG_PUB.ADD;
7785 END IF;
7786 RAISE FND_API.G_EXC_ERROR;
7787 END IF;
7788
7789 END IF;-- l_payment_db_tbl
7790
7791 END IF;-- FND_PROFILE.Value
7792
7793
7794 IF (FND_PROFILE.Value('ASO_ENABLE_SPLIT_PAYMENT') = 'Y') THEN
7795
7796 IF l_hd_payment_tbl.count > 1 THEN
7797
7798 l_index := l_payment_db_tbl.first;
7799
7800 WHILE l_index IS NOT NULL LOOP
7801
7802 IF l_payment_db_tbl(l_index) <> 'SPLIT' THEN
7803
7804 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7805 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_PAYMENTS');
7806 FND_MSG_PUB.ADD;
7807 END IF;
7808 RAISE FND_API.G_EXC_ERROR;
7809 END IF;
7810 l_index := l_payment_db_tbl.next(l_index);
7811 END LOOP;
7812
7813 END IF;
7814 END IF; ---- FND_PROFILE.Value
7815
7816 END IF;
7817
7818
7819 IF l_hd_shipment_tbl.count > 0 THEN
7820
7821 FOR shipment_rec IN c_shipment_rec LOOP
7822 l_shipment_db_tbl(shipment_rec.shipment_id) := NULL;
7823 END LOOP;
7824
7825 FOR i IN 1..l_hd_shipment_tbl.count LOOP
7826
7827 IF l_hd_shipment_tbl(i).operation_code = 'CREATE' THEN
7828
7829 l_shipment_db_tbl(NVL(l_shipment_db_tbl.last,0)+1) := NULL;
7830 ELSIF l_hd_shipment_tbl(i).operation_code = 'DELETE' THEN
7831
7832 IF l_hd_shipment_tbl(i).shipment_id <> FND_API.G_MISS_NUM AND
7833 l_shipment_db_tbl.exists(l_hd_shipment_tbl(i).shipment_id) THEN
7834
7835 l_shipment_db_tbl.DELETE(l_hd_shipment_tbl(i).shipment_id);
7836 END IF;
7837 END IF;
7838
7839 END LOOP;
7840
7841 IF l_shipment_db_tbl.count > 1 THEN
7842
7843 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7844 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_SHIPMENTS');
7845 FND_MSG_PUB.ADD;
7846 END IF;
7847 RAISE FND_API.G_EXC_ERROR;
7848 END IF;
7849
7850 END IF;
7851
7852 -- Validate Tax; ( there should be only one rec having NOT NULL orig_tax_code)
7853 IF l_hd_tax_detail_tbl.count > 0 THEN
7854
7855 FOR tax_rec IN c_tax_rec LOOP
7856 l_tax_db_tbl(tax_rec.tax_detail_id) := NULL;
7857 END LOOP;
7858
7859 FOR i IN 1..l_hd_tax_detail_tbl.count LOOP
7860
7861 IF l_hd_tax_detail_tbl(i).operation_code ='CREATE' THEN
7862
7863 l_tax_db_tbl(NVL(l_tax_db_tbl.last,0)+1) := NULL;
7864
7865 ELSIF l_hd_tax_detail_tbl(i).operation_code ='DELETE' AND
7866 l_hd_tax_detail_tbl(i).tax_detail_id <> FND_API.G_MISS_NUM AND
7867 l_tax_db_tbl.exists(l_hd_tax_detail_tbl(i).tax_detail_id) THEN
7868
7869 l_tax_db_tbl.delete(l_hd_tax_detail_tbl(i).tax_detail_id);
7870 END IF;
7871
7872 END LOOP;
7873
7874 IF l_tax_db_tbl.count > 1 THEN
7875
7876 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
7877 FND_MESSAGE.Set_Name('ASO', 'ASO_API_TOO_MANY_TAX_RECORDS');
7878 FND_MSG_PUB.ADD;
7879 END IF;
7880 RAISE FND_API.G_EXC_ERROR;
7881
7882 END IF;
7883
7884 END IF;
7885
7886
7887 IF l_auto_version = 'Y' THEN
7888
7889 l_old_header_rec := ASO_UTILITY_PVT.Query_Header_Row(l_qte_header_rec.QUOTE_HEADER_ID);
7890
7891 -- updating the existing version to a higher version
7892 -- this is done here because copy quote will fail to
7893 -- insert duplicate quote number/version
7894
7895 l_copy_quote_control_rec.new_version := FND_API.G_TRUE;
7896 l_copy_quote_header_rec.quote_header_id := l_old_header_rec.quote_header_id;
7897
7898 aso_copy_quote_pvt.copy_quote( P_Api_Version_Number => 1.0,
7899 P_Init_Msg_List => FND_API.G_FALSE,
7900 P_Commit => FND_API.G_FALSE,
7901 P_Copy_Quote_Header_Rec => l_copy_quote_header_rec,
7902 P_Copy_Quote_Control_Rec => l_copy_quote_control_rec,
7903 X_Qte_Header_Id => l_qte_header_id,
7904 X_Qte_Number => l_quote_number,
7905 X_Return_Status => l_return_status,
7906 X_Msg_Count => x_msg_count,
7907 X_Msg_Data => x_msg_data
7908 );
7909
7910 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7911 aso_debug_pub.add('Update_Quote: After copy_quote l_return_status: ' || l_return_status);
7912 aso_debug_pub.add('Update_Quote: After copy_quote l_qte_header_id: ' || l_qte_header_id);
7913 aso_debug_pub.add('Update_Quote: After copy_quote l_quote_number: ' || l_quote_number);
7914 END IF;
7915
7916 update aso_quote_headers_all
7917 set quote_version = l_qte_header_rec.quote_version + 1,
7918 max_version_flag = 'Y',
7919 creation_date = sysdate
7920 where quote_header_id = l_qte_header_rec.quote_header_id;
7921
7922 update aso_quote_headers_all
7923 set max_version_flag = 'N',
7924 quote_version = l_old_header_rec.quote_version,
7925 quote_status_id = l_old_header_rec.quote_status_id,
7926 creation_date = l_old_header_rec.creation_date,
7927 created_by = l_old_header_rec.created_by,
7928 last_update_date = sysdate,
7929 last_updated_by = g_user_id,
7930 last_update_login = g_login_id
7931 where quote_header_id = l_qte_header_id;
7932
7933 update aso_quote_headers_all
7934 set quote_version = l_qte_header_rec.quote_version,
7935 last_update_date = sysdate,
7936 created_by = g_user_id,
7937 last_updated_by = g_user_id,
7938 last_update_login = g_login_id
7939 where quote_header_id = l_qte_header_rec.quote_header_id;
7940
7941 open c_last_update_date(l_qte_header_rec.quote_header_id);
7942 fetch c_last_update_date into l_qte_header_rec.last_update_date;
7943 close c_last_update_date;
7944
7945 l_control_rec.last_update_date := l_qte_header_rec.last_update_date;
7946
7947 IF aso_debug_pub.g_debug_flag = 'Y' THEN
7948 aso_debug_pub.add('Update_Quote: After updating aso_quote_headers_all table for auto versioning.');
7949 aso_debug_pub.add('l_qte_header_rec.last_update_date: '|| l_qte_header_rec.last_update_date);
7950 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
7951 END IF;
7952
7953 END IF;
7954
7955
7956 l_index := 1;
7957
7958 FOR i IN 1..p_price_adjustment_tbl.count LOOP
7959
7960 IF (p_price_adjustment_tbl(i).qte_line_index IS NULL OR
7961 p_price_adjustment_tbl(i).qte_line_index = FND_API.G_MISS_NUM) AND
7962 (p_price_adjustment_tbl(i).quote_line_id IS NULL OR
7963 p_price_adjustment_tbl(i).quote_line_id = FND_API.G_MISS_NUM) THEN
7964
7965 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(i);
7966 l_prc_index_link(l_index) := i;
7967 l_prc_index_link_rev(i) := l_index;
7968 l_index := l_index + 1;
7969 END IF;
7970
7971 END LOOP;
7972
7973 FOR i IN 1..p_price_adj_attr_tbl.count LOOP
7974
7975 IF (p_price_adj_attr_tbl(i).qte_line_index IS NULL OR
7976 p_price_adj_attr_tbl(i).qte_line_index = FND_API.G_MISS_NUM) THEN
7977
7978 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(i);
7979
7980 IF p_price_adj_attr_tbl(i).price_adj_index <> FND_API.G_MISS_NUM AND
7981 l_prc_index_link_rev.exists(p_price_adj_attr_tbl(i).price_adj_index) THEN
7982
7983 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);
7984 END IF;
7985
7986 l_index := l_index + 1;
7987 END IF;
7988
7989 END LOOP;
7990
7991
7992 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
7993
7994 IF l_hd_shipment_tbl.count > 0 THEN
7995 l_hd_shipment_tbl(1) := l_hd_shipment_tbl(1);
7996 l_shipment_rec := l_hd_shipment_tbl(1);
7997 END IF;
7998
7999 ASO_VALIDATE_PVT.Validate_record_tca_crs(
8000 p_init_msg_list => FND_API.G_FALSE,
8001 p_qte_header_rec => l_qte_header_rec,
8002 p_shipment_rec => l_shipment_rec,
8003 p_operation_code => 'UPDATE',
8004 p_application_type_code => l_control_rec.application_type_code,
8005 x_return_status => x_return_status,
8006 x_msg_count => x_msg_count,
8007 x_msg_data => x_msg_data);
8008
8009 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8010 RAISE FND_API.G_EXC_ERROR;
8011 END IF;
8012
8013 -- bug 5196952 validate the ship method code if the ship method gets updated or the org gets updated
8014 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')
8015 or (P_Qte_Header_Rec.org_id is not null and P_Qte_Header_Rec.org_id <> fnd_api.g_miss_num)) THEN
8016
8017 -- get the value from db if not passed in
8018 IF (P_Qte_Header_Rec.org_id is null or P_Qte_Header_Rec.org_id = fnd_api.g_miss_num ) THEN
8019 OPEN c_org_id(l_qte_header_rec.quote_header_id);
8020 FETCH c_org_id into l_quote_org_id;
8021 CLOSE c_org_id;
8022 ELSE
8023 l_quote_org_id := P_Qte_Header_Rec.org_id;
8024 END IF;
8025
8026 -- get the master org id from the quote hdr org id
8027 OPEN c_inv_org_id(l_quote_org_id);
8028 FETCH c_inv_org_id into l_master_organization_id;
8029 CLOSE c_inv_org_id;
8030
8031 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8032 aso_debug_pub.add('Update_Quote - l_shipment_rec.ship_method_code: '|| l_shipment_rec.ship_method_code, 1, 'N');
8033 aso_debug_pub.add('Update_Quote - P_Qte_Header_Rec.org_id: '|| P_Qte_Header_Rec.org_id, 1, 'N');
8034 aso_debug_pub.add('Update_Quote - l_master_organization_id: '|| l_master_organization_id, 1, 'N');
8035 aso_debug_pub.add('Update_Quote - l_quote_org_id : '|| l_quote_org_id, 1, 'N');
8036 aso_debug_pub.add('Update_Quote - before validate ship_method_code ', 1, 'N');
8037 end if;
8038 ASO_VALIDATE_PVT.validate_ship_method_code
8039 (
8040 p_init_msg_list => fnd_api.g_false,
8041 p_qte_header_id => l_qte_header_rec.quote_header_id,
8042 p_qte_line_id => fnd_api.g_miss_num,
8043 p_organization_id => l_master_organization_id,
8044 p_ship_method_code => l_shipment_rec.ship_method_code,
8045 p_operation_code => l_shipment_rec.operation_code,
8046 x_return_status => x_return_status,
8047 x_msg_count => x_msg_count,
8048 x_msg_data => x_msg_data);
8049
8050 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8051 aso_debug_pub.add('Update_Quote - After validate ship_method_code ', 1, 'N');
8052 end if;
8053
8054 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8055 RAISE FND_API.G_EXC_ERROR;
8056 END IF;
8057 end if; -- end if for ship method code check
8058
8059 END IF;
8060
8061 ASO_CHECK_TCA_PVT.check_tca(
8062 p_api_version => 1.0,
8063 p_init_msg_list => FND_API.G_FALSE,
8064 P_Qte_Rec => l_qte_header_rec,
8065 p_Header_Shipment_Tbl => l_hd_Shipment_Tbl,
8066 P_Operation_Code => 'UPDATE',
8067 p_application_type_code => l_control_rec.application_type_code,
8068 x_return_status => x_return_status,
8069 x_msg_count => x_msg_count,
8070 x_msg_data => x_msg_data);
8071
8072 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8073 RAISE FND_API.G_EXC_ERROR;
8074 END IF;
8075
8076 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8077 aso_debug_pub.add('Update_Quote - before Validate_Agreement:l_qte_header_rec.contract_id: '||l_qte_header_rec.contract_id, 1, 'N');
8078 END IF;
8079
8080 IF (l_qte_header_rec.contract_id IS NOT NULL AND
8081 l_qte_header_rec.contract_id <> FND_API.G_MISS_NUM) THEN
8082
8083 ASO_VALIDATE_PVT.Validate_Agreement(
8084 p_init_msg_list => FND_API.G_FALSE,
8085 P_Agreement_Id => l_qte_header_rec.contract_id,
8086 x_return_status => x_return_status,
8087 x_msg_count => x_msg_count,
8088 x_msg_data => x_msg_data);
8089
8090 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8091 aso_debug_pub.add('Update_Quote - after Validate_Agreement:x_return_status: '||x_return_status, 1, 'N');
8092 END IF;
8093
8094 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8095 RAISE FND_API.G_EXC_ERROR;
8096 END IF;
8097
8098 END IF;
8099
8100 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8101 aso_debug_pub.add('Update_Quote: l_qte_header_rec.minisite_id: '|| l_qte_header_rec.minisite_id);
8102 END IF;
8103
8104 IF (l_qte_header_rec.minisite_id IS NOT NULL AND
8105 l_qte_header_rec.minisite_id <> FND_API.G_MISS_NUM) THEN
8106
8107 ASO_VALIDATE_PVT.Validate_MiniSite( p_init_msg_list => FND_API.G_FALSE,
8108 p_minisite_id => l_qte_header_rec.minisite_id,
8109 x_return_status => x_return_status,
8110 x_msg_count => x_msg_count,
8111 x_msg_data => x_msg_data);
8112
8113 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8114 aso_debug_pub.add('Update_Quote: After call to ASO_VALIDATE_PVT.Validate_MiniSite');
8115 aso_debug_pub.add('Update_Quote: x_return_status: '|| x_return_status);
8116 END IF;
8117
8118 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
8119 RAISE FND_API.G_EXC_ERROR;
8120 END IF;
8121
8122 END IF;
8123
8124 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8125 aso_debug_pub.add('Update_Quote: Before call to update_rows procedures', 1, 'Y');
8126 END IF;
8127
8128 Update_Rows (
8129 p_qte_header_rec => l_qte_header_rec,
8130 p_Price_Attributes_Tbl => p_hd_price_attributes_tbl,
8131 P_Price_Adjustment_Tbl => l_price_adj_tbl,
8132 P_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl,
8133 P_Payment_Tbl => l_hd_payment_tbl,
8134 P_Shipment_Tbl => l_hd_shipment_tbl,
8135 P_Freight_Charge_Tbl => p_hd_freight_charge_tbl,
8136 P_Tax_Detail_Tbl => l_hd_tax_detail_tbl,
8137 P_hd_Attr_Ext_Tbl => P_hd_Attr_Ext_Tbl,
8138 P_sales_credit_tbl => p_hd_sales_credit_tbl,
8139 P_quote_party_tbl => p_hd_quote_party_tbl,
8140 P_Qte_Access_Tbl => P_Qte_Access_Tbl,
8141 x_qte_header_rec => x_qte_header_rec,
8142 x_Price_Attributes_Tbl => x_hd_price_attributes_tbl,
8143 x_Price_Adjustment_Tbl => l_price_adj_tbl_out,
8144 x_Price_Adj_Attr_Tbl => l_price_adj_attr_tbl_out,
8145 x_Payment_Tbl => x_hd_payment_tbl,
8146 x_Shipment_Tbl => x_hd_shipment_tbl,
8147 x_Freight_Charge_Tbl => x_hd_freight_charge_tbl,
8148 x_Tax_Detail_Tbl => x_hd_tax_detail_tbl,
8149 x_hd_Attr_Ext_Tbl => x_hd_Attr_Ext_Tbl,
8150 x_sales_credit_tbl => x_hd_sales_credit_tbl,
8151 x_quote_party_tbl => x_hd_quote_party_tbl,
8152 x_Qte_Access_Tbl => x_Qte_Access_Tbl,
8153 X_Return_Status => l_return_status,
8154 X_Msg_Count => x_msg_count,
8155 X_Msg_Data => x_msg_data);
8156
8157 l_price_adj_tbl := l_price_adj_tbl_out;
8158 l_price_adj_attr_tbl := l_price_adj_attr_tbl_out;
8159
8160 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8161 aso_debug_pub.add('Update_Quote: After call to update_rows: l_return_status: ' || l_return_status, 1, 'Y');
8162 aso_debug_pub.add('Update_Quote: value of ASO_API_ENABLE_SECURITY: ' || FND_PROFILE.value('ASO_API_ENABLE_SECURITY'), 1, 'Y');
8163 END IF;
8164
8165 -- Add template rows to p_qte_line_tbl and p_qte_line_dtl tbales
8166
8167 if aso_debug_pub.g_debug_flag = 'Y' then
8168 aso_debug_pub.add('Update_Quote: p_template_tbl.count: ' || p_template_tbl.count, 1, 'Y');
8169 end if;
8170
8171 if p_template_tbl.count > 0 then
8172
8173 for i in 1..p_template_tbl.count loop
8174 l_template_tbl(i) := p_template_tbl(i).template_id;
8175 end loop;
8176
8177 if x_qte_header_rec.currency_code is null or x_qte_header_rec.currency_code = fnd_api.g_miss_char then
8178 x_qte_header_rec.currency_code := l_currency_code;
8179 end if;
8180
8181 if x_qte_header_rec.price_list_id is null or x_qte_header_rec.price_list_id = fnd_api.g_miss_num then
8182 x_qte_header_rec.price_list_id := l_price_list_id;
8183 end if;
8184
8185 if aso_debug_pub.g_debug_flag = 'Y' then
8186 aso_debug_pub.add('Update_Quote: l_template_tbl.count: ' || l_template_tbl.count, 1, 'Y');
8187 aso_debug_pub.add('Update_Quote: Before call to aso_quote_templ_pvt.add_template_to_quote procedure', 1, 'Y');
8188 end if;
8189
8190 aso_quote_tmpl_pvt.add_template_to_quote(
8191 p_api_version_number => 1.0,
8192 p_init_msg_list => fnd_api.g_false,
8193 p_commit => fnd_api.g_false,
8194 p_validation_level => p_validation_level,
8195 p_update_flag => 'N',
8196 p_template_id_tbl => l_template_tbl,
8197 p_qte_header_rec => x_qte_header_rec,
8198 p_control_rec => p_control_rec,
8199 x_qte_line_tbl => lx_qte_line_tbl,
8200 x_qte_line_dtl_tbl => x_qte_line_dtl_tbl,
8201 x_return_status => x_return_status,
8202 x_msg_count => x_msg_count,
8203 x_msg_data => x_msg_data
8204 );
8205
8206
8207 if aso_debug_pub.g_debug_flag = 'Y' then
8208
8209 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');
8210 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl.count: ' || lx_qte_line_tbl.count, 1, 'Y');
8211 aso_debug_pub.add('Update_Quote: x_qte_line_dtl_tbl.count: ' || x_qte_line_dtl_tbl.count, 1, 'Y');
8212
8213 for i in 1 .. lx_qte_line_tbl.count loop
8214 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl('||i||').inventory_item_id: '|| lx_qte_line_tbl(i).inventory_item_id, 1, 'N');
8215 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl('||i||').uom_code: '|| lx_qte_line_tbl(i).uom_code, 1, 'N');
8216 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl('||i||').quantity: '|| lx_qte_line_tbl(i).quantity, 1, 'N');
8217 end loop;
8218
8219 for i in 1 .. x_qte_line_dtl_tbl.count loop
8220
8221 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');
8222 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');
8223 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');
8224 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');
8225
8226 end loop;
8227
8228 end if;
8229
8230
8231 if lx_qte_line_tbl.count > 0 then
8232
8233 l_qte_line_dtl_tbl_out := x_qte_line_dtl_tbl;
8234
8235 for i in 1 .. lx_qte_line_tbl.count loop
8236
8237 l_count := l_qte_line_tbl.count;
8238
8239 l_qte_line_tbl(l_count + 1) := lx_qte_line_tbl(i);
8240
8241 for j in 1 .. x_qte_line_dtl_tbl.count loop
8242
8243 if x_qte_line_dtl_tbl(j).qte_line_index = i then
8244 l_qte_line_dtl_tbl_out(j).qte_line_index := l_count + 1;
8245 end if;
8246
8247 if x_qte_line_dtl_tbl(j).ref_line_index = i then
8248 l_qte_line_dtl_tbl_out(j).ref_line_index := l_count + 1;
8249 end if;
8250
8251 if x_qte_line_dtl_tbl(j).service_ref_qte_line_index = i then
8252 l_qte_line_dtl_tbl_out(j).service_ref_qte_line_index := l_count + 1;
8253 end if;
8254
8255 if x_qte_line_dtl_tbl(j).top_model_line_index = i then
8256 l_qte_line_dtl_tbl_out(j).top_model_line_index := l_count + 1;
8257 end if;
8258
8259 if x_qte_line_dtl_tbl(j).ato_line_index = i then
8260 l_qte_line_dtl_tbl_out(j).ato_line_index := l_count + 1;
8261 end if;
8262
8263 end loop;
8264
8265 end loop;
8266
8267 if l_qte_line_dtl_tbl_out.count > 0 then
8268
8269 for i in 1 .. l_qte_line_dtl_tbl_out.count loop
8270 lx_qte_line_dtl_tbl(lx_qte_line_dtl_tbl.count + 1) := l_qte_line_dtl_tbl_out(i);
8271 end loop;
8272
8273 end if;
8274
8275 end if; -- if lx_qte_line_tbl.count > 0 then
8276
8277 end if; --if p_template_tbl.count > 0 then
8278
8279
8280 if aso_debug_pub.g_debug_flag = 'Y' then
8281
8282 aso_debug_pub.add('Update_Quote: l_qte_line_tbl.count: ' || l_qte_line_tbl.count, 1, 'Y');
8283 aso_debug_pub.add('Update_Quote: lx_qte_line_dtl_tbl.count: ' || lx_qte_line_dtl_tbl.count, 1, 'Y');
8284
8285 for i in 1 .. l_qte_line_tbl.count loop
8286 aso_debug_pub.add('Update_Quote: l_qte_line_tbl('||i||').inventory_item_id: '|| l_qte_line_tbl(i).inventory_item_id, 1, 'N');
8287 aso_debug_pub.add('Update_Quote: l_qte_line_tbl('||i||').uom_code: '|| l_qte_line_tbl(i).uom_code, 1, 'N');
8288 aso_debug_pub.add('Update_Quote: l_qte_line_tbl('||i||').quantity: '|| l_qte_line_tbl(i).quantity, 1, 'N');
8289 end loop;
8290
8291 for i in 1 .. lx_qte_line_dtl_tbl.count loop
8292
8293 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');
8294 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');
8295 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');
8296 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');
8297 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');
8298 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');
8299 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');
8300 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');
8301
8302 end loop;
8303
8304 end if;
8305
8306 -- End of Add template rows
8307 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8308 aso_debug_pub.add('Update_Quote: value of p_qte_header_rec.quote_type: ' || p_qte_header_rec.quote_type, 1, 'Y');
8309 aso_debug_pub.add('Update_Quote: value of l_qte_header_rec.resource_id: ' || l_qte_header_rec.resource_id, 1, 'Y');
8310 aso_debug_pub.add('Update_Quote: value of l_qte_header_rec.resource_grp_id: ' || l_qte_header_rec.resource_grp_id, 1, 'Y');
8311 END IF;
8312
8313 IF (NVL(FND_PROFILE.value('ASO_API_ENABLE_SECURITY'),'N') = 'Y' AND NVL(p_qte_header_rec.quote_type, 'X') <> 'T') THEN
8314
8315 /* Bug4869321,4600313 */
8316 IF (l_qte_header_rec.resource_id IS NULL OR l_qte_header_rec.resource_id = FND_API.G_MISS_NUM) THEN
8317
8318 OPEN C_Get_Hdr_Resource_Id(l_qte_header_rec.quote_header_id);
8319 FETCH C_Get_Hdr_Resource_Id INTO l_qte_header_rec.resource_id;
8320 CLOSE C_Get_Hdr_Resource_Id;
8321
8322 END IF;
8323
8324 IF l_qte_header_rec.resource_id IS NOT NULL AND l_qte_header_rec.resource_id <> FND_API.G_MISS_NUM THEN
8325
8326 OPEN C_Check_Store_Status(l_qte_status_id, l_qte_header_rec.quote_status_id);
8327 FETCH C_Check_Store_Status INTO l_store_trans;
8328 CLOSE C_Check_Store_Status;
8329
8330 lx_qte_header_rec := x_qte_header_rec;
8331
8332 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8333 aso_debug_pub.add('Update_Quote - before assign_sales_team l_store_trans: '||l_store_trans, 1, 'Y');
8334 aso_debug_pub.add('Update_Quote - before assign_sales_team l_sales_team_prof: '||l_sales_team_prof, 1, 'Y');
8335 END IF;
8336
8337 IF (l_store_trans IS NOT NULL AND l_store_trans = 'Y') AND
8338 (l_sales_team_prof = 'FULL' OR l_sales_team_prof = 'PARTIAL') THEN
8339
8340
8341 ASO_SALES_TEAM_PVT.Assign_Sales_Team (
8342 P_Init_Msg_List => FND_API.G_FALSE,
8343 P_Commit => FND_API.G_FALSE,
8344 p_Qte_Header_Rec => x_qte_header_rec,
8345 P_Operation => 'UPDATE',
8346 x_Qte_Header_Rec => lx_qte_header_rec,
8347 x_return_status => x_return_status,
8348 x_msg_count => x_msg_count,
8349 x_msg_data => x_msg_data);
8350
8351 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8352 RAISE FND_API.G_EXC_ERROR;
8353 END IF;
8354
8355 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8356 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8357 END IF;
8358
8359 ELSE -- store_trans, sales_team_prof
8360
8361 l_qte_access_rec := ASO_SECURITY_INT.G_MISS_QTE_ACCESS_REC;
8362 -- l_qte_access_rec.QUOTE_NUMBER := l_qte_header_rec.quote_number;
8363 l_qte_access_rec.QUOTE_NUMBER := l_qte_number;
8364 l_qte_access_rec.RESOURCE_ID := l_qte_header_rec.resource_id;
8365 l_qte_access_rec.RESOURCE_GRP_ID := l_qte_header_rec.resource_grp_id;
8366 l_qte_access_rec.CREATED_BY := G_USER_ID;
8367 l_qte_access_rec.CREATION_DATE := SYSDATE;
8368 l_qte_access_rec.LAST_UPDATED_BY := G_USER_ID;
8369 l_qte_access_rec.LAST_UPDATE_LOGIN := G_LOGIN_ID;
8370 l_qte_access_rec.LAST_UPDATE_DATE := SYSDATE;
8371 l_qte_access_rec.REQUEST_ID := l_qte_header_rec.request_id;
8372 l_qte_access_rec.PROGRAM_APPLICATION_ID := l_qte_header_rec.program_application_id;
8373 l_qte_access_rec.PROGRAM_ID := l_qte_header_rec.program_id;
8374 l_qte_access_rec.PROGRAM_UPDATE_DATE := l_qte_header_rec.program_update_date;
8375
8376 IF (l_store_trans IS NOT NULL AND l_store_trans = 'Y') THEN
8377 l_qte_access_rec.KEEP_FLAG := 'N';
8378 END IF;
8379
8380 -- bug 4867690 if primary salesrep is changed then new prim salesrep should have full access
8381 l_qte_access_rec.UPDATE_ACCESS_FLAG := 'Y';
8382 -- bug 4923573
8383 l_qte_access_rec.batch_price_flag := FND_API.G_FALSE;
8384 l_qte_access_tbl(1) := l_qte_access_rec;
8385
8386 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8387 aso_debug_pub.add('Update_Quote: before Add_Resource: l_qte_header_rec.resource_id: ' || l_qte_header_rec.resource_id, 1, 'Y');
8388 aso_debug_pub.add('Update_Quote: before Add_Resource', 1, 'Y');
8389 END IF;
8390
8391 ASO_SECURITY_INT.Add_Resource(
8392 P_INIT_MSG_LIST => FND_API.G_FALSE,
8393 P_COMMIT => FND_API.G_FALSE,
8394 P_Qte_Access_tbl => l_qte_access_tbl,
8395 X_Qte_Access_tbl => l_qte_access_tbl_out,
8396 X_RETURN_STATUS => x_return_status,
8397 X_msg_count => X_msg_count,
8398 X_msg_data => X_msg_data);
8399
8400 l_qte_access_tbl := l_qte_access_tbl_out;
8401
8402 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8403 aso_debug_pub.add('Update_Quote: after Add_Resource: x_return_status: ' || x_return_status, 1, 'Y');
8404 END IF;
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 open c_last_update_date(x_qte_header_rec.quote_header_id);
8411 fetch c_last_update_date into x_qte_header_rec.last_update_date;
8412 close c_last_update_date;
8413
8414 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
8415
8416 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8417 aso_debug_pub.add('Update_Quote: After call to Add_Resource.');
8418 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
8419 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
8420 END IF;
8421
8422 END IF; -- steam_prof, store_trans
8423
8424 OPEN C_Get_SCredit_Exists(x_qte_header_rec.quote_header_id);
8425 FETCH C_Get_SCredit_Exists INTO l_scredit_exists;
8426 CLOSE C_Get_SCredit_Exists;
8427
8428 aso_debug_pub.add('l_scredit_exists: '||l_scredit_exists);
8429
8430 IF x_hd_sales_credit_tbl.count < 1 AND (l_scredit_exists = 'N' OR l_scredit_exists IS NULL) THEN
8431
8432 OPEN C_Get_Quota_Credit_Type;
8433 FETCH C_Get_Quota_Credit_Type INTO l_quota_id;
8434 CLOSE C_Get_Quota_Credit_Type;
8435
8436 aso_debug_pub.add('l_quota_id: '||l_quota_id);
8437 x_hd_sales_credit_tbl(1) := ASO_QUOTE_PUB.G_MISS_SALES_CREDIT_REC;
8438 aso_debug_pub.add('after assign x_hd_sales_credit_tbl.count: '||x_hd_sales_credit_tbl.count);
8439
8440 ASO_SALES_CREDITS_PKG.Insert_Row(
8441 p_CREATION_DATE => SYSDATE,
8442 p_CREATED_BY => G_USER_ID,
8443 p_LAST_UPDATED_BY => G_USER_ID,
8444 p_LAST_UPDATE_DATE => SYSDATE,
8445 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
8446 p_REQUEST_ID => FND_API.G_MISS_NUM,
8447 p_PROGRAM_APPLICATION_ID => FND_API.G_MISS_NUM,
8448 p_PROGRAM_ID => FND_API.G_MISS_NUM,
8449 p_PROGRAM_UPDATE_DATE => FND_API.G_MISS_DATE,
8450 px_SALES_CREDIT_ID => x_hd_sales_credit_tbl(1).Sales_Credit_Id,
8451 p_QUOTE_HEADER_ID => l_qte_header_rec.QUOTE_HEADER_ID,
8452 p_QUOTE_LINE_ID => FND_API.G_MISS_NUM,
8453 p_PERCENT => 100,
8454 p_RESOURCE_ID => l_qte_header_rec.RESOURCE_ID,
8455 p_RESOURCE_GROUP_ID => l_qte_header_rec.RESOURCE_GRP_ID,
8456 p_EMPLOYEE_PERSON_ID => FND_API.G_MISS_NUM,
8457 p_SALES_CREDIT_TYPE_ID => l_quota_id,
8458 p_ATTRIBUTE_CATEGORY_CODE => FND_API.G_MISS_CHAR,
8459 p_ATTRIBUTE1 => FND_API.G_MISS_CHAR,
8460 p_ATTRIBUTE2 => FND_API.G_MISS_CHAR,
8461 p_ATTRIBUTE3 => FND_API.G_MISS_CHAR,
8462 p_ATTRIBUTE4 => FND_API.G_MISS_CHAR,
8463 p_ATTRIBUTE5 => FND_API.G_MISS_CHAR,
8464 p_ATTRIBUTE6 => FND_API.G_MISS_CHAR,
8465 p_ATTRIBUTE7 => FND_API.G_MISS_CHAR,
8466 p_ATTRIBUTE8 => FND_API.G_MISS_CHAR,
8467 p_ATTRIBUTE9 => FND_API.G_MISS_CHAR,
8468 p_ATTRIBUTE10 => FND_API.G_MISS_CHAR,
8469 p_ATTRIBUTE11 => FND_API.G_MISS_CHAR,
8470 p_ATTRIBUTE12 => FND_API.G_MISS_CHAR,
8471 p_ATTRIBUTE13 => FND_API.G_MISS_CHAR,
8472 p_ATTRIBUTE14 => FND_API.G_MISS_CHAR,
8473 p_ATTRIBUTE15 => FND_API.G_MISS_CHAR,
8474 p_ATTRIBUTE16 => FND_API.G_MISS_CHAR,
8475 p_ATTRIBUTE17 => FND_API.G_MISS_CHAR,
8476 p_ATTRIBUTE18 => FND_API.G_MISS_CHAR,
8477 p_ATTRIBUTE19 => FND_API.G_MISS_CHAR,
8478 p_ATTRIBUTE20 => FND_API.G_MISS_CHAR,
8479 p_SYSTEM_ASSIGNED_FLAG => 'N',
8480 p_CREDIT_RULE_ID => FND_API.G_MISS_NUM,
8481 p_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM);
8482
8483 aso_debug_pub.add('After Insert SCred ');
8484 END IF; -- sales_cred_tbl.count
8485
8486 END IF; -- resource_id
8487
8488 END IF;
8489
8490 -- end security changes
8491
8492 -- Related Quote Objects Changes
8493 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8494 aso_debug_pub.add('Before processing object relationship ', 1, 'Y');
8495 END IF;
8496
8497 IF P_Related_Obj_Tbl.count > 0 THEN
8498
8499 For i in 1..P_Related_Obj_Tbl.count LOOP
8500
8501 l_related_obj_rec := P_Related_Obj_Tbl(i);
8502
8503
8504 -- logic to populate the operation code
8505 Open c_obj_id(l_qte_header_rec.quote_header_id);
8506 Fetch c_obj_id INTO l_obj_id;
8507 IF c_obj_id%NOTFOUND THEN
8508 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8509 aso_debug_pub.add(' Setting the operation code for rel obj tbl ', 1, 'Y');
8510 aso_debug_pub.add(' Obj id in rel obj rec is : '|| to_char(l_related_obj_rec.object_id), 1, 'Y');
8511 END IF;
8512 IF l_related_obj_rec.object_id IS NOT NULL THEN
8513 l_related_obj_rec.operation_code := 'CREATE';
8514 END IF;
8515
8516
8517 ELSE
8518 IF ((l_obj_id IS NOT NULL) AND (l_obj_id <> l_related_obj_rec.object_id)
8519 AND (l_related_obj_rec.object_id IS NOT NULL) ) THEN
8520 l_related_obj_rec.operation_code := 'UPDATE';
8521 END IF;
8522
8523 IF (( l_obj_id is NOT NULL) AND (l_related_obj_rec.object_id IS NULL) ) THEN
8524 l_related_obj_rec.operation_code := 'DELETE';
8525 END IF;
8526
8527 IF ( l_obj_id = l_related_obj_rec.object_id) then
8528 l_related_obj_rec.operation_code := null;
8529 END IF;
8530
8531 END IF;
8532 Close c_obj_id;
8533
8534 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8535 aso_debug_pub.add(' the operation code for rel obj tbl '||l_related_obj_rec.operation_code, 1, 'Y');
8536 END IF;
8537
8538
8539
8540 IF l_related_obj_rec.operation_code = 'CREATE' THEN
8541
8542 l_related_obj_rec.quote_object_id := l_qte_header_rec.quote_header_id;
8543 x_related_obj_rec := l_related_obj_rec;
8544
8545
8546 ASO_RLTSHIP_PUB.Create_Object_Relationship(
8547 P_Api_Version_Number => 1.0,
8548 P_Init_Msg_List => FND_API.G_FALSE,
8549 P_Commit => FND_API.G_FALSE,
8550 p_validation_level => p_validation_level,
8551 P_RELATED_OBJ_Rec => l_related_obj_rec,
8552 X_related_object_id => x_related_obj_rec.related_object_id,
8553 X_Return_Status => X_Return_Status,
8554 X_Msg_Count => X_Msg_Count,
8555 X_Msg_Data => X_Msg_Data);
8556
8557 X_Related_Obj_Tbl(i) := x_related_obj_rec;
8558
8559 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8560 aso_debug_pub.add('Update_Quote: After call to Create_Object_Relationship: x_return_status: '||x_return_status, 1, 'N');
8561 END IF;
8562
8563 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8564 RAISE FND_API.G_EXC_ERROR;
8565 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8566 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8567 END IF;
8568
8569 ELSIF l_related_obj_rec.operation_code = 'UPDATE' THEN
8570
8571 IF ((l_related_obj_rec.related_object_id = NULL OR l_related_obj_rec.related_object_id = FND_API.G_MISS_NUM)
8572 OR (l_related_obj_rec.last_update_date = null or l_related_obj_rec.last_update_date = FND_API.G_MISS_DATE))THEN
8573 Open c_related_obj_id(l_qte_header_rec.quote_header_id);
8574 Fetch c_related_obj_id INTO l_related_obj_rec.related_object_id,l_related_obj_rec.last_update_date;
8575 Close c_related_obj_id;
8576 END IF;
8577 IF (l_related_obj_rec.quote_object_id = null or l_related_obj_rec.quote_object_id = FND_API.G_MISS_NUM) THEN
8578 l_related_obj_rec.quote_object_id := l_qte_header_rec.quote_header_id;
8579 END IF;
8580 ASO_RLTSHIP_PUB.Update_Object_Relationship(
8581 P_Api_Version_Number => 1.0,
8582 P_Init_Msg_List => FND_API.G_FALSE,
8583 P_Commit => FND_API.G_FALSE,
8584 p_validation_level => p_validation_level,
8585 P_RELATED_OBJ_Rec => l_related_obj_rec,
8586 X_Return_Status => X_Return_Status,
8587 X_Msg_Count => X_Msg_Count,
8588 X_Msg_Data => X_Msg_Data);
8589
8590 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8591 aso_debug_pub.add('Update_Quote: After call to Update_Object_Relationship: x_return_status: '||x_return_status, 1, 'N');
8592 END IF;
8593
8594 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8595 RAISE FND_API.G_EXC_ERROR;
8596 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8597 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8598 END IF;
8599
8600 ELSIF l_related_obj_rec.operation_code = 'DELETE' THEN
8601
8602 IF l_related_obj_rec.related_object_id = NULL OR l_related_obj_rec.related_object_id = FND_API.G_MISS_NUM THEN
8603 Open c_related_obj_id(l_qte_header_rec.quote_header_id);
8604 Fetch c_related_obj_id INTO l_related_obj_rec.related_object_id,l_related_obj_rec.last_update_date;
8605 Close c_related_obj_id;
8606 END IF;
8607 l_related_obj_rec.quote_object_id := l_qte_header_rec.quote_header_id;
8608
8609 ASO_RLTSHIP_PUB.Delete_Object_Relationship(
8610 P_Api_Version_Number => 1.0,
8611 P_Init_Msg_List => FND_API.G_FALSE,
8612 P_Commit => FND_API.G_FALSE,
8613 p_validation_level => p_validation_level,
8614 P_RELATED_OBJ_Rec => l_related_obj_rec,
8615 X_Return_Status => X_Return_Status,
8616 X_Msg_Count => X_Msg_Count,
8617 X_Msg_Data => X_Msg_Data);
8618
8619 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8620 aso_debug_pub.add('Update_Quote: After call to Delete_Object_Relationship: x_return_status: '||x_return_status, 1, 'N');
8621 END IF;
8622
8623 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
8624 RAISE FND_API.G_EXC_ERROR;
8625 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
8626 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8627 END IF;
8628
8629 END IF;
8630 END LOOP;
8631
8632
8633 END IF; -- end if for P_Related_Obj_Tbl.count
8634
8635
8636 -- end Related Quote Object Changes
8637
8638 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8639 aso_debug_pub.add('before validate quote percent: validation level: '||P_validation_level, 1, 'Y');
8640 END IF;
8641
8642
8643 -- sales credits
8644
8645 IF ( P_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
8646 IF x_hd_sales_credit_tbl.count > 0 THEN
8647 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8648 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');
8649 END IF;
8650
8651 x_hd_sales_credit_tbl(1).quote_header_id := x_qte_header_rec.QUOTE_HEADER_ID;
8652
8653 ASO_VALIDATE_PVT.Validate_Quote_Percent(
8654 p_init_msg_list => FND_API.G_FALSE,
8655 p_sales_credit_tbl => x_hd_sales_credit_tbl,
8656 x_return_status => x_return_status,
8657 x_msg_count => x_msg_count,
8658 x_msg_data => x_msg_data
8659 );
8660 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
8661 RAISE FND_API.G_EXC_ERROR;
8662 END IF;
8663 END IF;
8664 END IF;
8665
8666 -- end sales credits
8667
8668
8669 l_index := X_Price_Adjustment_tbl.count+1;
8670 FOR i IN 1.. l_Price_Adj_tbl.count LOOP
8671 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(i);
8672 l_index := l_index+1;
8673 END LOOP;
8674 FOR j IN 1..l_prc_index_link.count LOOP
8675 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id
8676 := l_price_adj_tbl(j).price_adjustment_id;
8677 END LOOP;
8678 l_index := X_Price_Adj_Attr_tbl.count+1;
8679 FOR i IN 1.. l_Price_Adj_Attr_tbl.count LOOP
8680 x_Price_Adj_Attr_tbl(l_index) := l_Price_Adj_Attr_tbl(i);
8681 l_index := l_index+1;
8682 END LOOP;
8683
8684
8685 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
8686 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8687 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
8688 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
8689 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER UPDATE ROW', TRUE);
8690 FND_MSG_PUB.ADD;
8691 END IF;
8692 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8693 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
8694 x_return_status := FND_API.G_RET_STS_ERROR;
8695 RAISE FND_API.G_EXC_ERROR;
8696 END IF;
8697
8698 -- Update Quote Lines
8699
8700 FOR i IN 1 .. l_qte_line_tbl.count LOOP
8701
8702
8703 l_qte_line_rec := l_qte_line_tbl(i);
8704
8705
8706 -- New code for Batch Validation 05/24/2002
8707
8708 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8709 aso_debug_pub.add('UPDATE_QUOTE: l_qte_header_rec.Call_batch_validation_flag: '|| l_qte_header_rec.Call_batch_validation_flag,1,'N');
8710 END IF;
8711
8712 IF l_qte_header_rec.Call_batch_validation_flag = FND_API.G_TRUE THEN
8713
8714 IF l_qte_line_rec.operation_code IN ('UPDATE','DELETE') THEN
8715
8716 OPEN c_qte_line(l_qte_line_rec.quote_line_id);
8717 FETCH c_qte_line into l_qln_id;
8718 IF c_qte_line%FOUND THEN
8719
8720 l_batch_qte_line_rec := ASO_QUOTE_PUB.G_MISS_QTE_LINE_REC;
8721 l_batch_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row(l_qte_line_rec.quote_line_id);
8722
8723 l_add_line := FND_API.G_FALSE;
8724 l_add_model_line := FND_API.G_FALSE;
8725
8726 IF l_batch_qte_line_rec.item_type_code IN ('MDL','CFG') THEN
8727
8728 l_batch_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
8729 l_batch_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(l_qte_line_rec.quote_line_id);
8730 IF l_batch_qte_line_dtl_tbl.count > 0 THEN
8731 IF l_batch_qte_line_dtl_tbl(1).config_header_id IS NOT NULL AND
8732 l_batch_qte_line_dtl_tbl(1).config_revision_num IS NOT NULL THEN
8733
8734 --l_add_line := FND_API.G_TRUE;
8735
8736 IF l_batch_qte_line_rec.item_type_code = 'MDL' THEN
8737 -- If user wants to delete the model line itself then no need to call batch validation
8738 -- becuase deletion model line will delete the all other configuration lines and
8739 -- the configuration from CZ
8740 IF (l_qte_line_rec.operation_code = 'UPDATE') AND
8741 (l_qte_line_rec.quantity <> FND_API.G_MISS_NUM) AND
8742 (l_batch_qte_line_rec.quantity <> l_qte_line_rec.quantity) THEN
8743
8744 IF l_search_qte_line_tbl.EXISTS(l_qte_line_rec.quote_line_id) THEN
8745 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8746 aso_debug_pub.add('UPDATE_QUOTE: Model line exist in the l_search_qte_line_tbl, no need to add again',1,'N');
8747 END IF;
8748 l_add_line := FND_API.G_TRUE;
8749 ELSE
8750 --Add root model line of this configured line to the pl/sql table
8751 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8752 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');
8753 END IF;
8754 l_search_qte_line_tbl(l_qte_line_rec.quote_line_id).quote_line_id
8755 := l_qte_line_rec.quote_line_id;
8756 l_add_line := FND_API.G_TRUE;
8757 l_add_model_line := FND_API.G_TRUE;
8758 l_model_line_id := l_qte_line_rec.quote_line_id;
8759 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8760 aso_debug_pub.add('UPDATE_QUOTE: Model line does not exist: l_model_line_id: '|| l_model_line_id,1,'N');
8761 END IF;
8762
8763 END IF;
8764
8765 ELSIF l_qte_line_rec.operation_code = 'DELETE' THEN
8766
8767 l_delete_qte_line_tbl(l_qte_line_rec.quote_line_id).quote_line_id
8768 := l_qte_line_rec.quote_line_id;
8769 END IF;
8770
8771 ELSE -- Children line l_batch_qte_line_rec.item_type_code = 'CFG'
8772
8773 if l_qte_line_rec.operation_code = 'DELETE' and l_batch_qte_line_rec.config_model_type = 'N'
8774 and l_batch_qte_line_dtl_tbl(1).config_delta = 0 THEN
8775
8776 l_deactivate_counter := l_deactivate_counter + 1;
8777 l_deactivate_quote_line_tbl(l_deactivate_counter).quote_line_id := l_qte_line_rec.quote_line_id;
8778 l_deactivate_quote_line_tbl(l_deactivate_counter).quote_header_id := l_batch_qte_line_rec.quote_header_id;
8779
8780 else
8781
8782 -- Get the root model line for this children line
8783
8784 OPEN c_model_line( l_batch_qte_line_dtl_tbl(1).config_header_id,
8785 l_batch_qte_line_dtl_tbl(1).config_revision_num );
8786 FETCH c_model_line INTO l_model_line_id;
8787
8788 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8789 aso_debug_pub.add('UPDATE_QUOTE: c_model_line: l_model_line_id: '||l_model_line_id,1,'N');
8790 END IF;
8791
8792 IF c_model_line%FOUND AND l_model_line_id is NOT NULL THEN
8793
8794 IF (l_qte_line_rec.operation_code = 'UPDATE') AND
8795 (l_qte_line_rec.quantity <> FND_API.G_MISS_NUM) AND
8796 (l_batch_qte_line_rec.quantity <> l_qte_line_rec.quantity) THEN
8797
8798 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8799 aso_debug_pub.add('UPDATE_QUOTE: Children line having operation_code = UPDATE',1,'N');
8800 END IF;
8801 l_add_line := FND_API.G_TRUE;
8802 IF l_search_qte_line_tbl.EXISTS(l_model_line_id) THEN
8803 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8804 aso_debug_pub.add('UPDATE_QUOTE: Model line exist in the l_model_qte_line_tbl, no need to add again',1,'N');
8805 END IF;
8806 ELSE
8807 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8808 aso_debug_pub.add('UPDATE_QUOTE: Model line does not exist in the l_model_qte_line_tbl, need to add again',1,'N');
8809 END IF;
8810 --Add root model line of this configured line to the pl/sql table
8811 l_add_model_line := FND_API.G_TRUE;
8812 l_search_qte_line_tbl(l_model_line_id).quote_line_id := l_model_line_id;
8813 END IF;
8814
8815 ELSIF l_qte_line_rec.operation_code = 'DELETE' THEN
8816
8817 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8818 aso_debug_pub.add('UPDATE_QUOTE: Children line having operation_code = DELETE',1,'N');
8819 END IF;
8820
8821 l_add_line := FND_API.G_TRUE;
8822
8823 IF l_search_qte_line_tbl.EXISTS(l_model_line_id) THEN
8824 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8825 aso_debug_pub.add('UPDATE_QUOTE: Model line exist in the l_model_qte_line_tbl, no need to add again',1,'N');
8826 END IF;
8827 ELSE
8828 --Add root model line of this configured line to the pl/sql table
8829 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8830 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');
8831 END IF;
8832 l_add_model_line := FND_API.G_TRUE;
8833 l_search_qte_line_tbl(l_model_line_id).quote_line_id := l_model_line_id;
8834 END IF;
8835
8836 END IF;
8837
8838 ELSE
8839 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8840 aso_debug_pub.add('UPDATE_QUOTE: c_model_line: Model line does not exist for this config line',1,'N');
8841 END IF;
8842 END IF; --c_model_line%FOUND AND l_model_line_id is NOT NULL
8843 CLOSE c_model_line;
8844
8845 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
8846
8847 END IF; --l_batch_qte_line_rec.item_type_code = 'MDL'
8848
8849 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8850 aso_debug_pub.add('UPDATE_QUOTE: Before Adding line to l_model_qte_line_tbl',1,'N');
8851 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');
8852 END IF;
8853
8854 IF l_add_model_line = FND_API.G_TRUE THEN
8855
8856 l_model_index := l_model_index + 1;
8857 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8858 aso_debug_pub.add('UPDATE_QUOTE: Inside IF l_add_model_line = FND_API.G_TRUE: l_model_index: '||l_model_index,1,'N');
8859 END IF;
8860 l_model_qte_line_tbl(l_model_index).quote_line_id := l_model_line_id;
8861 l_model_qte_line_dtl_tbl(l_model_index).config_header_id
8862 := l_batch_qte_line_dtl_tbl(1).config_header_id;
8863 l_model_qte_line_dtl_tbl(l_model_index).config_revision_num
8864 := l_batch_qte_line_dtl_tbl(1).config_revision_num;
8865 END IF;
8866
8867 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8868 aso_debug_pub.add('UPDATE_QUOTE: Before Adding line to l_p_batch_qte_line_tbl',1,'N');
8869 aso_debug_pub.add('UPDATE_QUOTE: Before Adding line to l_p_batch_qte_line_tbl: l_add_line: '||l_add_line,1,'N');
8870 END IF;
8871 IF l_add_line = FND_API.G_TRUE THEN
8872 l_batch_index := l_batch_index + 1;
8873 IF aso_debug_pub.g_debug_flag = 'Y' THEN
8874 aso_debug_pub.add('UPDATE_QUOTE: Inside IF l_add_line = FND_API.G_TRUE: l_batch_index: '||l_batch_index,1,'N');
8875 END IF;
8876 l_p_batch_qte_line_tbl(l_batch_index) := l_batch_qte_line_rec;
8877 l_p_batch_qte_line_tbl(l_batch_index).operation_code := l_qte_line_rec.operation_code;
8878 l_p_batch_qte_line_tbl(l_batch_index).quantity := l_qte_line_rec.quantity;
8879 l_p_batch_qte_line_dtl_tbl(l_batch_index) := l_batch_qte_line_dtl_tbl(1);
8880 END IF;
8881
8882 END IF; --config_header_id and config_revision_num IS NOT NULL
8883
8884 END IF;--l_batch_qte_line_dtl_tbl.count > 0
8885
8886 END IF; --l_batch_qte_line_rec.item_type_code IN ('MDL','CFG')
8887
8888 END IF; --c_qte_line%FOUND
8889 CLOSE c_qte_line;
8890
8891 END IF;--l_qte_line_rec.operation_code IN ('UPDATE','DELETE')
8892
8893 END IF; --l_qte_header_rec.Call_batch_validation_flag = FND_API.G_TRUE
8894
8895
8896 --End New code for Batch Validation 05/24/2002
8897
8898
8899 IF l_qte_line_rec.operation_code = 'CREATE' THEN
8900 -- line detail info
8901 l_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
8902 l_index := 1;
8903 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
8904 IF lx_qte_line_dtl_tbl(j).qte_line_index = i THEN
8905 l_qte_line_dtl_tbl(l_index) := lx_qte_line_dtl_tbl(j);
8906 l_index := l_index + 1;
8907 END IF;
8908 END LOOP;
8909
8910 -- line attributes ext
8911 l_line_attr_ext_tbl := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL;
8912 l_index := 1;
8913 FOR j IN 1..p_line_attr_ext_tbl.count LOOP
8914 IF p_line_attr_ext_tbl(j).qte_line_index = i THEN
8915 l_line_attr_ext_tbl(l_index) := p_line_attr_ext_tbl(j);
8916 l_index := l_index + 1;
8917 END IF;
8918 END LOOP;
8919
8920 -- price attr info
8921 l_index := 1;
8922 l_price_attr_tbl := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl;
8923 FOR j IN 1..p_ln_price_attributes_tbl.count LOOP
8924 IF p_ln_price_attributes_tbl(j).qte_line_index = i THEN
8925 l_price_attr_tbl(l_index) := p_ln_price_attributes_tbl(j);
8926 l_index := l_index + 1;
8927 END IF;
8928 END LOOP;
8929
8930 -- modifier info
8931 l_price_adj_tbl := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl;
8932 l_prc_index_link := G_Miss_Link_Tbl;
8933 l_prc_index_link_rev := G_Miss_Link_Tbl;
8934 l_index := 1;
8935 FOR j IN 1..p_price_adjustment_tbl.count LOOP
8936 IF p_price_adjustment_tbl(j).qte_line_index = i THEN
8937 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(j);
8938 l_prc_index_link(l_index) := j;
8939 l_prc_index_link_rev(j) := l_index;
8940 l_index := l_index + 1;
8941 END IF;
8942 END LOOP;
8943 -- BC4J Fix
8944 l_price_adj_attr_tbl:= ASO_QUOTE_PUB.G_Miss_Price_Adj_Attr_Tbl;
8945 l_index := 1;
8946 FOR j IN 1..p_price_adj_attr_tbl.count LOOP
8947 IF p_price_adj_attr_tbl(j).price_adj_index <> FND_API.G_MISS_NUM
8948 AND l_prc_index_link_rev.exists(p_price_adj_attr_tbl(j).price_adj_index) THEN
8949 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(j);
8950 l_price_adj_attr_tbl(l_index).price_adj_index :=
8951 l_prc_index_link_rev(l_price_adj_attr_tbl(l_index).price_adj_index);
8952 l_index := l_index + 1;
8953 END IF;
8954 END LOOP;
8955
8956 -- payment info
8957 l_payment_tbl := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL;
8958 l_index := 1;
8959 FOR j IN 1..p_ln_payment_tbl.count LOOP
8960 IF p_ln_payment_tbl(j).qte_line_index = i THEN
8961 l_payment_tbl(l_index) := p_ln_payment_tbl(j);
8962 l_index := l_index +1;
8963 END IF;
8964 END LOOP;
8965 -- only when payment_option is SPLIT, there can be more than one record
8966 -- for line payment.
8967 IF l_index > 2 AND l_payment_tbl(1).payment_option <> 'SPLIT' THEN
8968 RAISE FND_API.G_EXC_ERROR;
8969 END IF;
8970
8971
8972 -- shipment info
8973 l_shipment_tbl := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL;
8974 l_shp_index_link := G_Miss_Link_Tbl;
8975 l_index := 1;
8976 FOR j IN 1..p_ln_shipment_tbl.count LOOP
8977 IF p_ln_shipment_tbl(j).qte_line_index = i THEN
8978 l_shipment_tbl(l_index) := p_ln_shipment_tbl(j);
8979 l_shp_index_link(j) := l_index;
8980 l_index := l_index+1;
8981 END IF;
8982 END LOOP;
8983
8984
8985 -- freight charge info
8986 l_freight_charge_tbl := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl;
8987 l_index := 1;
8988 FOR j IN 1..p_ln_freight_charge_tbl.count LOOP
8989 IF p_ln_freight_charge_tbl(j).qte_line_index = i THEN
8990 l_freight_charge_tbl(l_index) := p_ln_freight_charge_tbl(j);
8991 IF p_ln_freight_charge_tbl(j).shipment_index <> FND_API.G_MISS_NUM
8992 AND l_shp_index_link.EXISTS(p_ln_freight_charge_tbl(j).shipment_index) THEN
8993 l_freight_charge_tbl(l_index).shipment_index :=
8994 l_shp_index_link(p_ln_freight_charge_tbl(j).shipment_index);
8995 ELSE
8996 null;
8997 END IF;
8998 l_index := l_index+1;
8999 END IF;
9000 END LOOP;
9001
9002
9003 -- tax info
9004 l_tax_detail_tbl := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl;
9005 l_index := 1;
9006 FOR j IN 1..p_ln_tax_detail_tbl.count LOOP
9007 IF p_ln_tax_detail_tbl(j).qte_line_index = i THEN
9008 l_tax_detail_tbl(l_index) := p_ln_tax_detail_tbl(j);
9009 IF p_ln_tax_detail_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
9010 l_shp_index_link.EXISTS(p_ln_tax_detail_tbl(j).shipment_index) THEN
9011 l_tax_detail_tbl(l_index).shipment_index :=
9012 l_shp_index_link(p_ln_tax_detail_tbl(j).shipment_index);
9013 ELSE
9014 null;
9015 END IF;
9016 l_index := l_index+1;
9017 END IF;
9018 END LOOP;
9019 l_sales_credit_tbl := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl;
9020
9021 l_index := 1;
9022 FOR j IN 1..p_ln_sales_credit_tbl.count LOOP
9023 IF p_ln_sales_credit_tbl(j).qte_line_index = i THEN
9024 l_sales_credit_tbl(l_index) := p_ln_sales_credit_tbl(j);
9025 l_index := l_index +1;
9026 END IF;
9027 END LOOP;
9028
9029
9030 l_quote_party_tbl := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl;
9031
9032 l_index := 1;
9033 FOR j IN 1..p_ln_quote_party_tbl.count LOOP
9034 IF p_ln_quote_party_tbl(j).qte_line_index = i THEN
9035 l_quote_party_tbl(l_index) := p_ln_quote_party_tbl(j);
9036 IF p_ln_quote_party_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
9037 p_ln_quote_party_tbl(j).shipment_index IS NOT NULL AND
9038 l_shp_index_link.EXISTS(p_ln_quote_party_tbl(j).shipment_index) THEN
9039 l_quote_party_tbl(l_index).shipment_index := l_shp_index_link(p_ln_quote_party_tbl(j).shipment_index);
9040 END IF;
9041 l_index := l_index +1;
9042 END IF;
9043 END LOOP;
9044
9045 -- EDU
9046 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9047 aso_debug_pub.add('Update_Quote (create_quote_lines) - before Validate_Commitment ', 1, 'N');
9048 END IF;
9049 ASO_VALIDATE_PVT.Validate_Commitment(
9050 P_Init_Msg_List => FND_API.G_FALSE,
9051 P_Qte_Header_Rec => x_qte_header_rec,
9052 P_Qte_Line_Rec => l_qte_line_rec,
9053 X_Return_Status => l_return_status,
9054 X_Msg_Count => x_msg_count,
9055 X_Msg_Data => x_msg_data);
9056 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9057 aso_debug_pub.add('Update_Quote - after Validate_Commitment: l_return_status: '||l_return_status, 1, 'N');
9058 END IF;
9059 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9060 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9061 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9062 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
9063 x_return_status := FND_API.G_RET_STS_ERROR;
9064 RAISE FND_API.G_EXC_ERROR;
9065 END IF;
9066 -- EDU
9067
9068
9069 open c_last_update_date(x_qte_header_rec.quote_header_id);
9070 fetch c_last_update_date into l_control_rec.last_update_date;
9071 close c_last_update_date;
9072
9073 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9074 aso_debug_pub.add('Update_Quote: Before call to Create_Quote_Lines');
9075 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
9076 END IF;
9077
9078 -- create quote line
9079 ASO_QUOTE_LINES_PVT.Create_Quote_Lines (
9080 P_Api_Version_Number => 1.0,
9081 p_validation_level => p_validation_level,
9082 p_control_rec => l_control_rec,
9083 p_update_header_flag => FND_API.G_FALSE,
9084 p_qte_header_rec => l_qte_header_rec,
9085 P_qte_Line_Rec => l_qte_line_rec,
9086 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
9087 P_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl,
9088 P_price_attributes_tbl => l_price_attr_tbl,
9089 P_Price_Adj_Tbl => l_price_adj_tbl,
9090 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
9091 P_Payment_Tbl => l_payment_tbl,
9092 P_Shipment_Tbl => l_shipment_tbl,
9093 P_Freight_Charge_Tbl => l_freight_charge_tbl,
9094 P_Tax_Detail_Tbl => l_tax_detail_tbl,
9095 P_quote_party_tbl => l_quote_party_tbl ,
9096 P_sales_Credit_tbl => l_sales_Credit_tbl ,
9097 x_qte_Line_Rec => l_qte_line_rec_out,
9098 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
9099 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
9100 x_price_attributes_tbl => l_price_attr_tbl_out,
9101 x_Price_Adj_Tbl => l_price_adj_tbl_out,
9102 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
9103 x_Payment_Tbl => l_payment_tbl_out,
9104 x_Shipment_Tbl => l_shipment_tbl_out,
9105 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
9106 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
9107 X_quote_party_tbl => l_quote_party_tbl_out ,
9108 X_sales_Credit_tbl => l_sales_Credit_tbl_out ,
9109 X_Return_Status => l_return_status,
9110 X_Msg_Count => x_msg_count,
9111 X_Msg_Data => x_msg_data);
9112
9113 l_qte_line_rec := l_qte_line_rec_out;
9114 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
9115 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
9116 l_price_attr_tbl := l_price_attr_tbl_out;
9117 l_price_adj_tbl := l_price_adj_tbl_out;
9118 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
9119 l_payment_tbl := l_payment_tbl_out;
9120 l_shipment_tbl := l_shipment_tbl_out;
9121 l_freight_charge_tbl := l_freight_charge_tbl_out;
9122 l_tax_detail_tbl := l_tax_detail_tbl_out;
9123 l_quote_party_tbl := l_quote_party_tbl_out;
9124 l_sales_Credit_tbl := l_sales_Credit_tbl_out;
9125
9126
9127
9128 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9129 aso_debug_pub.add('Update_Quote - after create_quote_lines return_status: '||l_return_status, 1, 'Y');
9130 END IF;
9131
9132 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9133 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9134 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9135 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
9136 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
9137 FND_MSG_PUB.ADD;
9138 END IF;
9139 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9140
9141 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
9142 x_return_status := FND_API.G_RET_STS_ERROR;
9143 RAISE FND_API.G_EXC_ERROR;
9144 END IF;
9145
9146
9147 open c_last_update_date(x_qte_header_rec.quote_header_id);
9148 fetch c_last_update_date into x_qte_header_rec.last_update_date;
9149 close c_last_update_date;
9150
9151 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
9152
9153 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9154 aso_debug_pub.add('Update_Quote: After call to Create_Quote_Lines');
9155 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
9156 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
9157 END IF;
9158
9159
9160 For j IN 1..lx_qte_line_dtl_tbl.count LOOP
9161 IF lx_qte_line_dtl_tbl(j).SERVICE_REF_QTE_LINE_INDEX = i THEN
9162 lx_qte_line_dtl_tbl(j).SERVICE_REF_LINE_ID := l_qte_line_rec.quote_line_id;
9163 END IF;
9164 END LOOP;
9165
9166 -- For bundle configurator Changes Added 02/18/02
9167 FOR j IN 1..lx_qte_line_dtl_tbl.count LOOP
9168 IF lx_qte_line_dtl_tbl(j).REF_LINE_INDEX = i THEN
9169 lx_qte_line_dtl_tbl(j).REF_LINE_ID := l_qte_line_rec.quote_line_id;
9170 END IF;
9171 END LOOP;
9172 -- End bundle configurator Changes 02/18/02
9173
9174
9175 X_Qte_Line_Tbl(x_qte_line_tbl.count+1) := l_qte_line_rec;
9176 l_index := X_Qte_Line_Dtl_Tbl.count+1;
9177 FOR j IN 1.. l_qte_line_dtl_tbl.count LOOP
9178 x_qte_line_dtl_tbl(l_index) := l_qte_line_dtl_tbl(j);
9179 l_index := l_index+1;
9180 END LOOP;
9181 l_index := X_Line_Attr_Ext_Tbl.count+1;
9182 FOR j IN 1.. l_Line_Attr_Ext_tbl.count LOOP
9183 x_Line_Attr_Ext_tbl(l_index) := l_Line_Attr_Ext_tbl(j);
9184 l_index := l_index+1;
9185 END LOOP;
9186 l_index := X_ln_Price_Attributes_Tbl.count+1;
9187 FOR j IN 1.. l_Price_Attr_tbl.count LOOP
9188 x_ln_Price_Attributes_tbl(l_index) := l_Price_Attr_tbl(j);
9189 l_index := l_index+1;
9190 END LOOP;
9191 l_index := X_Price_Adjustment_tbl.count+1;
9192 FOR j IN 1.. l_Price_Adj_tbl.count LOOP
9193 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(j);
9194 l_index := l_index+1;
9195 END LOOP;
9196 l_index := X_Price_Adj_Attr_tbl.count+1;
9197 FOR i IN 1.. l_Price_Adj_Attr_tbl.count LOOP
9198 x_Price_Adj_Attr_tbl(l_index) := l_Price_Adj_Attr_tbl(i);
9199 l_index := l_index+1;
9200 END LOOP;
9201 l_index := X_LN_payment_Tbl.count+1;
9202 FOR j IN 1.. l_payment_tbl.count LOOP
9203 x_ln_payment_tbl(l_index) := l_payment_tbl(j);
9204 l_index := l_index+1;
9205 END LOOP;
9206 l_index := X_LN_shipment_Tbl.count+1;
9207 FOR j IN 1.. l_shipment_tbl.count LOOP
9208 x_ln_shipment_tbl(l_index) := l_shipment_tbl(j);
9209 l_index := l_index+1;
9210 END LOOP;
9211 l_index := X_LN_freight_charge_Tbl.count+1;
9212 FOR j IN 1.. l_freight_charge_tbl.count LOOP
9213 x_ln_freight_charge_tbl(l_index) := l_freight_charge_tbl(j);
9214 l_index := l_index+1;
9215 END LOOP;
9216 l_index := X_LN_tax_detail_Tbl.count+1;
9217 FOR j IN 1.. l_tax_detail_tbl.count LOOP
9218 x_ln_tax_detail_tbl(l_index) := l_tax_detail_tbl(j);
9219 l_index := l_index+1;
9220 END LOOP;
9221
9222 l_index := X_ln_sales_Credit_Tbl.count+1;
9223 FOR j IN 1.. l_sales_Credit_tbl.count LOOP
9224 x_ln_sales_Credit_tbl(l_index) := l_sales_Credit_tbl(j);
9225 l_index := l_index+1;
9226 END LOOP;
9227 l_index := X_ln_quote_party_Tbl.count+1;
9228 FOR j IN 1.. l_quote_party_tbl.count LOOP
9229 x_ln_quote_party_tbl(l_index) := l_quote_party_tbl(j);
9230 l_index := l_index+1;
9231 END LOOP;
9232
9233 FOR j IN 1..l_prc_index_link.count LOOP
9234 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id
9235 := l_price_adj_tbl(j).price_adjustment_id;
9236 END LOOP;
9237 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9238 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9239 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9240 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
9241 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
9242 FND_MSG_PUB.ADD;
9243 END IF;
9244 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9245 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
9246 x_return_status := FND_API.G_RET_STS_ERROR;
9247 RAISE FND_API.G_EXC_ERROR;
9248 END IF;
9249
9250
9251 ELSIF l_qte_line_rec.operation_code = 'UPDATE' THEN
9252
9253
9254 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9255 aso_debug_pub.add('Update_Quote - if operation_code is update ', 1, 'N');
9256 END IF;
9257
9258 l_qte_line_id := l_qte_line_rec.quote_line_id;
9259 -- line detail info
9260 l_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
9261 l_index := 1;
9262 FOR j IN 1 .. lx_qte_line_dtl_tbl.count LOOP
9263 IF lx_qte_line_dtl_tbl(j).quote_line_id = l_qte_line_id THEN
9264 l_qte_line_dtl_tbl(l_index) := lx_qte_line_dtl_tbl(j);
9265 l_index := l_index + 1;
9266 END IF;
9267 END LOOP;
9268
9269 -- line attributes ext
9270 l_line_attr_ext_tbl := ASO_QUOTE_PUB.G_MISS_Line_Attribs_Ext_TBL;
9271 l_index := 1;
9272 FOR j IN 1..p_line_attr_ext_tbl.count LOOP
9273 IF p_line_attr_ext_tbl(j).quote_line_id = l_qte_line_id THEN
9274 l_line_attr_ext_tbl(l_index) := p_line_attr_ext_tbl(j);
9275 l_index := l_index + 1;
9276 END IF;
9277 END LOOP;
9278
9279 -- price attr info
9280 l_price_attr_tbl := ASO_QUOTE_PUB.G_Miss_Price_Attributes_Tbl;
9281 l_index := 1;
9282 FOR j IN 1..p_ln_price_attributes_tbl.count LOOP
9283 IF p_ln_price_attributes_tbl(j).quote_line_id = l_qte_line_id THEN
9284 l_price_attr_tbl(l_index) := p_ln_price_attributes_tbl(j);
9285 l_index := l_index + 1;
9286 END IF;
9287 END LOOP;
9288
9289 -- modifier info
9290 l_price_adj_tbl := ASO_QUOTE_PUB.G_Miss_Price_Adj_Tbl;
9291 l_prc_index_link := G_Miss_Link_Tbl;
9292 l_prc_index_link_rev := G_Miss_Link_Tbl;
9293 l_index := 1;
9294 FOR j IN 1..p_price_adjustment_tbl.count LOOP
9295 IF p_price_adjustment_tbl(j).quote_line_id = l_qte_line_id THEN
9296 l_price_adj_tbl(l_index) := p_price_adjustment_tbl(j);
9297 l_prc_index_link(l_index) := j;
9298 l_prc_index_link_rev(j) := l_index;
9299 l_index := l_index + 1;
9300 END IF;
9301 END LOOP;
9302 l_index := 1;
9303
9304 -- BC4J Fix
9305 l_price_adj_attr_tbl:= ASO_QUOTE_PUB.G_Miss_Price_Adj_Attr_Tbl;
9306
9307 FOR j IN 1..p_price_adj_attr_tbl.count LOOP
9308 IF p_price_adj_attr_tbl(j).qte_line_index = i THEN
9309 l_price_adj_attr_tbl(l_index) := p_price_adj_attr_tbl(j);
9310 IF p_price_adj_attr_tbl(j).price_adj_index <> FND_API.G_MISS_NUM
9311 AND l_prc_index_link_rev.exists(p_price_adj_attr_tbl(j).price_adj_index) THEN
9312 l_price_adj_attr_tbl(l_index).price_adj_index :=
9313 l_prc_index_link_rev(l_price_adj_attr_tbl(l_index).price_adj_index);
9314 END IF;
9315 l_index := l_index + 1;
9316 END IF;
9317 END LOOP;
9318
9319
9320 -- payment info
9321 l_payment_tbl := ASO_QUOTE_PUB.G_MISS_PAYMENT_TBL;
9322 l_index := 1;
9323 FOR j IN 1..p_ln_payment_tbl.count LOOP
9324 IF p_ln_payment_tbl(j).quote_line_id = l_qte_line_id THEN
9325 l_payment_tbl(l_index) := p_ln_payment_tbl(j);
9326 l_index := l_index +1;
9327 END IF;
9328 END LOOP;
9329
9330 -- shipment info
9331 l_shipment_tbl := ASO_QUOTE_PUB.G_MISS_SHIPMENT_TBL;
9332 l_shp_index_link := G_Miss_Link_Tbl;
9333 l_index := 1;
9334 FOR j IN 1..p_ln_shipment_tbl.count LOOP
9335 IF p_ln_shipment_tbl(j).quote_line_id = l_qte_line_id THEN
9336 l_shipment_tbl(l_index) := p_ln_shipment_tbl(j);
9337 l_shp_index_link(j) := l_index;
9338 l_index := l_index +1;
9339 END IF;
9340 END LOOP;
9341
9342 l_sales_credit_tbl := ASO_QUOTE_PUB.G_MISS_Sales_Credit_Tbl;
9343
9344 l_index := 1;
9345 FOR j IN 1..p_ln_sales_credit_tbl.count LOOP
9346 IF p_ln_sales_credit_tbl(j).qte_line_index = i
9347 OR p_ln_sales_credit_tbl(j).quote_line_id = l_qte_line_id THEN
9348 l_sales_credit_tbl(l_index) := p_ln_sales_credit_tbl(j);
9349 l_index := l_index +1;
9350 END IF;
9351 END LOOP;
9352
9353
9354 l_quote_party_tbl := ASO_QUOTE_PUB.G_MISS_Quote_Party_Tbl;
9355
9356 l_index := 1;
9357 FOR j IN 1..p_ln_quote_party_tbl.count LOOP
9358 IF p_ln_quote_party_tbl(j).qte_line_index = i THEN
9359 l_quote_party_tbl(l_index) := p_ln_quote_party_tbl(j);
9360 IF p_ln_quote_party_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
9361 p_ln_quote_party_tbl(j).shipment_index IS NOT NULL AND
9362 l_shp_index_link.EXISTS(p_ln_quote_party_tbl(j).shipment_index) THEN
9363 l_quote_party_tbl(l_index).shipment_index := l_shp_index_link(p_ln_quote_party_tbl(j).shipment_index);
9364 END IF;
9365 l_index := l_index +1;
9366 END IF;
9367 END LOOP;
9368 -- freight charge info
9369 l_freight_charge_tbl := ASO_QUOTE_PUB.G_Miss_Freight_Charge_Tbl;
9370 l_index := 1;
9371 FOR j IN 1..p_ln_freight_charge_tbl.count LOOP
9372 IF p_ln_freight_charge_tbl(j).quote_line_id = l_qte_line_id THEN
9373 l_freight_charge_tbl(l_index) := p_ln_freight_charge_tbl(j);
9374 IF l_freight_charge_tbl(l_index).shipment_index IS NOT NULL AND
9375 l_freight_charge_tbl(l_index).shipment_index <> FND_API.G_MISS_NUM THEN
9376 IF p_ln_freight_charge_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
9377 l_shp_index_link.EXISTS(p_ln_freight_charge_tbl(j).shipment_index) THEN
9378 l_freight_charge_tbl(l_index).shipment_index :=
9379 l_shp_index_link(p_ln_freight_charge_tbl(j).shipment_index);
9380 ELSE
9381 null;
9382 END IF;
9383 END IF;
9384 l_index := l_index+1;
9385 END IF;
9386 END LOOP;
9387
9388
9389 -- tax info
9390 l_tax_detail_tbl := ASO_QUOTE_PUB.G_Miss_Tax_Detail_Tbl;
9391 l_index := 1;
9392 FOR j IN 1..p_ln_tax_detail_tbl.count LOOP
9393 IF p_ln_tax_detail_tbl(j).quote_line_id = l_qte_line_id THEN
9394 l_tax_detail_tbl(l_index) := p_ln_tax_detail_tbl(j);
9395 IF l_tax_detail_tbl(l_index).shipment_index IS NOT NULL AND
9396 l_tax_detail_tbl(l_index).shipment_index <> FND_API.G_MISS_NUM THEN
9397 IF p_ln_tax_detail_tbl(j).shipment_index <> FND_API.G_MISS_NUM AND
9398 l_shp_index_link.EXISTS(p_ln_tax_detail_tbl(j).shipment_index) THEN
9399 l_tax_detail_tbl(l_index).shipment_index :=
9400 l_shp_index_link(p_ln_tax_detail_tbl(j).shipment_index);
9401 ELSE
9402 null;
9403 END IF;
9404 END IF;
9405 l_index := l_index+1;
9406 END IF;
9407 END LOOP;
9408
9409 -- EDU
9410 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9411 aso_debug_pub.add('Update_Quote (update_quote_lines) - before Validate_Commitment ', 1, 'N');
9412 END IF;
9413 ASO_VALIDATE_PVT.Validate_Commitment(
9414 P_Init_Msg_List => FND_API.G_FALSE,
9415 P_Qte_Header_Rec => x_qte_header_rec,
9416 P_Qte_Line_Rec => l_qte_line_rec,
9417 X_Return_Status => l_return_status,
9418 X_Msg_Count => x_msg_count,
9419 X_Msg_Data => x_msg_data);
9420 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9421 aso_debug_pub.add('Update_Quote (upd_qte_ln)- after Validate_Commitment: l_return_status: '||l_return_status, 1, 'N');
9422 END IF;
9423 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9424 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9425 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9426 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
9427 x_return_status := FND_API.G_RET_STS_ERROR;
9428 RAISE FND_API.G_EXC_ERROR;
9429 END IF;
9430 -- EDU
9431
9432 -- update quote line (need to do the following validation:
9433 -- 1. each line has at least one shipment rec
9434 -- 2. each line has only one tax_detail rec in which to set the tax
9435 -- exempt info.
9436
9437 open c_last_update_date(x_qte_header_rec.quote_header_id);
9438 fetch c_last_update_date into l_control_rec.last_update_date;
9439 close c_last_update_date;
9440
9441 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9442 aso_debug_pub.add('Update_Quote: Before call to Update_Quote_Line');
9443 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
9444 END IF;
9445
9446
9447 ASO_QUOTE_LINES_PVT.Update_Quote_Line (
9448 P_Api_Version_Number => 1.0,
9449 p_validation_level => p_validation_level,
9450 p_control_rec => l_control_rec,
9451 p_update_header_flag => FND_API.G_FALSE,
9452 p_qte_header_rec => l_qte_header_rec,
9453 P_qte_Line_Rec => l_qte_line_rec,
9454 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
9455 P_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl,
9456 P_price_attributes_tbl => l_price_attr_tbl,
9457 P_Price_Adj_Tbl => l_price_adj_tbl,
9458 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
9459 P_Payment_Tbl => l_payment_tbl,
9460 P_Shipment_Tbl => l_shipment_tbl,
9461 P_Freight_Charge_Tbl => l_freight_charge_tbl,
9462 P_Tax_Detail_Tbl => l_tax_detail_tbl,
9463 P_quote_party_tbl => l_quote_party_tbl ,
9464 P_sales_Credit_tbl => l_sales_Credit_tbl ,
9465 x_qte_Line_Rec => l_qte_line_rec_out,
9466 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
9467 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
9468 x_price_attributes_tbl => l_price_attr_tbl_out,
9469 x_Price_Adj_Tbl => l_price_adj_tbl_out,
9470 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
9471 x_Payment_Tbl => l_payment_tbl_out,
9472 x_Shipment_Tbl => l_shipment_tbl_out,
9473 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
9474 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
9475 X_quote_party_tbl => l_quote_party_tbl_out ,
9476 X_sales_Credit_tbl => l_sales_Credit_tbl_out ,
9477 X_Return_Status => l_return_status,
9478 X_Msg_Count => x_msg_count,
9479 X_Msg_Data => x_msg_data);
9480
9481
9482 l_qte_line_rec := l_qte_line_rec_out;
9483 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
9484 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
9485 l_price_attr_tbl := l_price_attr_tbl_out;
9486 l_price_adj_tbl := l_price_adj_tbl_out;
9487 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
9488 l_payment_tbl := l_payment_tbl_out;
9489 l_shipment_tbl := l_shipment_tbl_out;
9490 l_freight_charge_tbl := l_freight_charge_tbl_out;
9491 l_tax_detail_tbl := l_tax_detail_tbl_out;
9492 l_quote_party_tbl := l_quote_party_tbl_out;
9493 l_sales_Credit_tbl := l_sales_Credit_tbl_out;
9494
9495
9496 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9497 aso_debug_pub.add('Update_Quote: after update_quote_line: l_return_status: '||l_return_status);
9498 END IF;
9499
9500 open c_last_update_date(x_qte_header_rec.quote_header_id);
9501 fetch c_last_update_date into x_qte_header_rec.last_update_date;
9502 close c_last_update_date;
9503
9504 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
9505
9506 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9507 aso_debug_pub.add('Update_Quote: After call to Update_Quote_Line');
9508 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
9509 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
9510 END IF;
9511
9512
9513 X_Qte_Line_Tbl(x_qte_line_tbl.count+1) := l_qte_line_rec;
9514 l_index := X_Qte_Line_Dtl_Tbl.count+1;
9515
9516 FOR j IN 1.. l_qte_line_dtl_tbl.count LOOP
9517 x_qte_line_dtl_tbl(l_index) := l_qte_line_dtl_tbl(j);
9518 l_index := l_index+1;
9519 END LOOP;
9520 l_index := X_Line_Attr_Ext_Tbl.count+1;
9521 FOR j IN 1.. l_Line_Attr_Ext_tbl.count LOOP
9522 x_Line_Attr_Ext_tbl(l_index) := l_Line_Attr_Ext_tbl(j);
9523 l_index := l_index+1;
9524 END LOOP;
9525 l_index := X_ln_Price_Attributes_Tbl.count+1;
9526 FOR j IN 1.. l_Price_Attr_tbl.count LOOP
9527 x_ln_Price_Attributes_tbl(l_index) := l_Price_Attr_tbl(j);
9528 l_index := l_index+1;
9529 END LOOP;
9530 l_index := X_Price_Adjustment_tbl.count+1;
9531 FOR j IN 1.. l_Price_Adj_tbl.count LOOP
9532 x_Price_Adjustment_tbl(l_index) := l_Price_Adj_tbl(j);
9533 l_index := l_index+1;
9534 END LOOP;
9535 l_index := X_Price_Adj_Attr_tbl.count+1;
9536 FOR i IN 1.. l_Price_Adj_Attr_tbl.count LOOP
9537 x_Price_Adj_Attr_tbl(l_index) := l_Price_Adj_Attr_tbl(i);
9538 l_index := l_index+1;
9539 END LOOP;
9540 l_index := X_LN_payment_Tbl.count+1;
9541 FOR j IN 1.. l_payment_tbl.count LOOP
9542 x_ln_payment_tbl(l_index) := l_payment_tbl(j);
9543 l_index := l_index+1;
9544 END LOOP;
9545 l_index := X_Ln_shipment_Tbl.count+1;
9546 FOR j IN 1.. l_shipment_tbl.count LOOP
9547 x_ln_shipment_tbl(l_index) := l_shipment_tbl(j);
9548 l_index := l_index+1;
9549 END LOOP;
9550 l_index := X_LN_freight_charge_Tbl.count+1;
9551 FOR j IN 1.. l_freight_charge_tbl.count LOOP
9552 x_ln_freight_charge_tbl(l_index) := l_freight_charge_tbl(j);
9553 l_index := l_index+1;
9554 END LOOP;
9555 l_index := X_LN_tax_detail_Tbl.count+1;
9556 FOR j IN 1.. l_tax_detail_tbl.count LOOP
9557 x_ln_tax_detail_tbl(l_index) := l_tax_detail_tbl(j);
9558 l_index := l_index+1;
9559 END LOOP;
9560
9561 l_index := X_ln_sales_Credit_Tbl.count+1;
9562 FOR j IN 1.. l_sales_Credit_tbl.count LOOP
9563 x_ln_sales_Credit_tbl(l_index) := l_sales_Credit_tbl(j);
9564 l_index := l_index+1;
9565 END LOOP;
9566 l_index := X_ln_quote_party_Tbl.count+1;
9567 FOR j IN 1.. l_quote_party_tbl.count LOOP
9568 x_ln_quote_party_tbl(l_index) := l_quote_party_tbl(j);
9569 l_index := l_index+1;
9570 END LOOP;
9571
9572
9573
9574 FOR j IN 1..l_prc_index_link.count LOOP
9575 l_price_adjustment_tbl(l_prc_index_link(j)).price_adjustment_id
9576 := l_price_adj_tbl(j).price_adjustment_id;
9577 END LOOP;
9578 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9579 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9580 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9581 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
9582 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER UPDATE QLN', TRUE);
9583 FND_MSG_PUB.ADD;
9584 END IF;
9585 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9586 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
9587 x_return_status := FND_API.G_RET_STS_ERROR;
9588 RAISE FND_API.G_EXC_ERROR;
9589 END IF;
9590
9591
9592 ELSIF l_qte_line_rec.operation_code = 'DELETE' THEN
9593
9594
9595 OPEN c_qte_line(l_qte_line_rec.quote_line_id);
9596 FETCH c_qte_line into l_qln_id;
9597
9598 IF c_qte_line%FOUND and l_qln_id <>FND_API.G_MISS_NUM THEN
9599
9600 open c_last_update_date(x_qte_header_rec.quote_header_id);
9601 fetch c_last_update_date into l_control_rec.last_update_date;
9602 close c_last_update_date;
9603
9604 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9605 aso_debug_pub.add('Update_Quote: Before call to Delete_Quote_Line');
9606 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
9607 END IF;
9608
9609 ASO_QUOTE_LINES_PVT.Delete_Quote_Line (
9610 P_Api_Version_Number => 1.0,
9611 p_control_rec => l_control_rec,
9612 p_update_header_flag => FND_API.G_FALSE,
9613 P_qte_Line_Rec => l_qte_line_rec,
9614 X_Return_Status => l_return_status,
9615 X_Msg_Count => x_msg_count,
9616 X_Msg_Data => x_msg_data);
9617
9618
9619 END IF;
9620 CLOSE c_qte_line;
9621
9622 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9623 aso_debug_pub.add('Update_Quote: after Delete_Quote_Line: l_return_status: '||l_return_status);
9624 END IF;
9625
9626 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
9627
9628 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9629
9630 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9631 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
9632 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER DELETE QLN', TRUE);
9633 FND_MSG_PUB.ADD;
9634 END IF;
9635 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9636
9637 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
9638
9639 x_return_status := FND_API.G_RET_STS_ERROR;
9640 RAISE FND_API.G_EXC_ERROR;
9641
9642 END IF;
9643
9644 open c_last_update_date(x_qte_header_rec.quote_header_id);
9645 fetch c_last_update_date into x_qte_header_rec.last_update_date;
9646 close c_last_update_date;
9647
9648 l_control_rec.last_update_date := x_qte_header_rec.last_update_date;
9649
9650 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9651 aso_debug_pub.add('Update_Quote: After call to Update_Quote_Line');
9652 aso_debug_pub.add('x_qte_header_rec.last_update_date: '|| x_qte_header_rec.last_update_date);
9653 aso_debug_pub.add('l_control_rec.last_update_date: '|| l_control_rec.last_update_date);
9654 END IF;
9655
9656 END IF;
9657
9658 END LOOP;
9659
9660
9661 --New code for Batch Validate 05/24/2002
9662
9663 -- Now call batch validate for each configuration at the end quote_line_tbl LOOP
9664
9665 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9666 aso_debug_pub.add('UPDATE_QUOTE: l_qte_header_rec.Call_batch_validation_flag: '||l_qte_header_rec.Call_batch_validation_flag,1,'N');
9667 END IF;
9668
9669 IF l_qte_header_rec.Call_batch_validation_flag = FND_API.G_TRUE THEN
9670
9671 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9672 aso_debug_pub.add('UPDATE_QUOTE: l_model_qte_line_tbl.count: '||l_model_qte_line_tbl.count,1,'N');
9673 aso_debug_pub.add('UPDATE_QUOTE: l_p_batch_qte_line_tbl.count: '||l_p_batch_qte_line_tbl.count,1,'N');
9674 aso_debug_pub.add('UPDATE_QUOTE: l_p_batch_qte_line_dtl_tbl.count: '||l_p_batch_qte_line_dtl_tbl.count,1,'N');
9675 END IF;
9676
9677
9678 FOR i IN 1..l_model_qte_line_tbl.count LOOP
9679 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9680 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');
9681 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');
9682 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');
9683 END IF;
9684
9685 l_send_qte_line_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_TBL;
9686 l_send_qte_line_dtl_tbl := ASO_QUOTE_PUB.G_MISS_QTE_LINE_DTL_TBL;
9687 l_send_index := 0;
9688
9689 IF l_delete_qte_line_tbl.EXISTS(l_model_qte_line_tbl(i).quote_line_id) THEN
9690
9691 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9692 aso_debug_pub.add('UPDATE_QUOTE: Model line exist in l_delete_qte_line_tbl so it is already deleted along with children lines');
9693 END IF;
9694
9695 ELSE
9696
9697 FOR j IN 1..l_p_batch_qte_line_dtl_tbl.count LOOP
9698 IF l_p_batch_qte_line_dtl_tbl(j).config_header_id = l_model_qte_line_dtl_tbl(i).config_header_id AND
9699 l_p_batch_qte_line_dtl_tbl(j).config_revision_num = l_model_qte_line_dtl_tbl(i).config_revision_num THEN
9700
9701 l_send_index := l_send_index + 1;
9702 l_send_qte_line_tbl(l_send_index) := l_p_batch_qte_line_tbl(j);
9703 l_send_qte_line_dtl_tbl(l_send_index) := l_p_batch_qte_line_dtl_tbl(j);
9704
9705 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9706 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');
9707 aso_debug_pub.add('UPDATE_QUOTE: l_p_batch_qte_line_tbl('||j||').quantity: '||l_p_batch_qte_line_tbl(j).quantity,1,'N');
9708 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');
9709 END IF;
9710 END IF;
9711 END LOOP;
9712
9713 l_control_rec_bv.header_pricing_event := null;
9714 l_control_rec_bv.calculate_tax_flag := 'N';
9715 l_control_rec_bv.defaulting_fwk_flag := 'N';
9716
9717 -- Call Batch Validation procedure
9718 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9719 aso_debug_pub.add('UPDATE_QUOTE: Before call to Validate_Configuration',1,'N');
9720 END IF;
9721
9722 ASO_CFG_INT.Validate_Configuration
9723 ( P_Api_Version_Number => 1.0,
9724 P_Init_Msg_List => FND_API.G_FALSE,
9725 P_Commit => FND_API.G_FALSE,
9726 p_control_rec => l_control_rec_bv,
9727 P_model_line_id => l_model_qte_line_tbl(i).quote_line_id,
9728 P_Qte_Line_Tbl => l_send_qte_line_tbl,
9729 P_Qte_Line_Dtl_Tbl => l_send_qte_line_dtl_tbl,
9730 X_config_header_id => l_config_header_id,
9731 X_config_revision_num => l_config_revision_num,
9732 X_valid_configuration_flag => l_valid_configuration_flag,
9733 X_complete_configuration_flag => l_complete_configuration_flag,
9734 X_return_status => l_return_status,
9735 X_msg_count => x_msg_count,
9736 X_msg_data => x_msg_data
9737 );
9738
9739 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9740 aso_debug_pub.add('UPDATE_QUOTE: After call to Validate_Configuration: l_return_status: '||l_return_status,1,'Y');
9741 aso_debug_pub.add('UPDATE_QUOTE: l_config_header_id: '|| l_config_header_id,1,'N');
9742 aso_debug_pub.add('UPDATE_QUOTE: l_config_revision_num: '|| l_config_revision_num,1,'N');
9743 aso_debug_pub.add('UPDATE_QUOTE: l_valid_configuration_flag: '|| l_valid_configuration_flag,1,'N');
9744 aso_debug_pub.add('UPDATE_QUOTE: l_complete_configuration_flag: '|| l_complete_configuration_flag,1,'N');
9745 END IF;
9746
9747 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9748
9749 open c_config_exist_in_cz(l_config_header_id, l_config_revision_num);
9750 fetch c_config_exist_in_cz into l_new_config_hdr_id;
9751
9752 if c_config_exist_in_cz%found then
9753
9754 close c_config_exist_in_cz;
9755
9756 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9757 aso_debug_pub.add('Update Quote: A higher version exist for this configuration so deleting it from CZ');
9758 END IF;
9759
9760 ASO_CFG_INT.DELETE_CONFIGURATION_AUTO( P_API_VERSION_NUMBER => 1.0,
9761 P_INIT_MSG_LIST => FND_API.G_FALSE,
9762 P_CONFIG_HDR_ID => l_config_header_id,
9763 P_CONFIG_REV_NBR => l_config_revision_num,
9764 X_RETURN_STATUS => x_return_status,
9765 X_MSG_COUNT => x_msg_count,
9766 X_MSG_DATA => x_msg_data);
9767
9768 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9769 aso_debug_pub.add('After call to ASO_CFG_INT.DELETE_CONFIGURATION_AUTO: x_Return_Status: ' || x_Return_Status);
9770 END IF;
9771
9772 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9773
9774 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
9775 FND_MESSAGE.Set_Name('ASO', 'ASO_DELETE');
9776 FND_MESSAGE.Set_Token('OBJECT', 'CONFIGURATION', FALSE);
9777 FND_MSG_PUB.ADD;
9778 END IF;
9779
9780 RAISE FND_API.G_EXC_ERROR;
9781
9782 END IF;
9783
9784 else
9785 close c_config_exist_in_cz;
9786 end if;
9787
9788 END IF;
9789
9790 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
9791 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9792 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9793 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
9794 x_return_status := FND_API.G_RET_STS_ERROR;
9795 RAISE FND_API.G_EXC_ERROR;
9796 END IF;
9797
9798 END IF; --l_delete_qte_line_tbl.EXISTS
9799 END LOOP; --l_model_qte_line_tbl.count
9800
9801 --call Aso_Config_Operations_Int.Config_Operations procedure
9802 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9803 aso_debug_pub.add('Update_Quote: l_deactivate_quote_line_tbl.count: ' || l_deactivate_quote_line_tbl.count);
9804 END IF;
9805
9806 if l_deactivate_quote_line_tbl.count > 0 then
9807
9808 l_control_rec_bv.header_pricing_event := null;
9809 l_control_rec_bv.calculate_tax_flag := 'N';
9810 l_control_rec_bv.defaulting_fwk_flag := 'N';
9811
9812 l_deactivate_qte_header_rec := x_qte_header_rec;
9813
9814 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9815 aso_debug_pub.add('Before call to Aso_Config_Operations_Int.Config_Operations.', 1, 'Y');
9816 END IF;
9817
9818 Aso_Config_Operations_Int.Config_Operations(
9819 p_api_version_number => 1.0,
9820 p_init_msg_list => FND_API.G_FALSE,
9821 p_commit => FND_API.G_FALSE,
9822 p_validation_level => p_validation_level,
9823 p_control_rec => l_control_rec_bv,
9824 p_qte_header_rec => l_deactivate_qte_header_rec,
9825 p_qte_line_tbl => l_deactivate_quote_line_tbl,
9826 p_instance_tbl => l_deactivate_instance_tbl,
9827 p_operation_code => aso_quote_pub.g_deactivate,
9828 p_delete_flag => fnd_api.g_false,
9829 x_Qte_Header_Rec => x_Qte_Header_Rec,
9830 x_return_status => x_return_status,
9831 x_msg_count => x_msg_count,
9832 x_msg_data => x_msg_data);
9833 /*
9834
9835 ASO_CONFIG_OPERATIONS_PVT.Deactivate_from_quote(
9836 P_Api_Version_Number => 1.0,
9837 P_Init_Msg_List => FND_API.G_FALSE,
9838 P_Commit => FND_API.G_FALSE,
9839 p_validation_level => p_validation_level,
9840 P_Control_Rec => l_control_rec_bv,
9841 P_Qte_Header_Rec => l_deactivate_qte_header_rec,
9842 P_Qte_line_tbl => l_deactivate_quote_line_tbl,
9843 p_delete_flag => fnd_api.g_false,
9844 X_qte_header_rec => x_Qte_Header_Rec,
9845 X_Return_Status => X_Return_Status,
9846 X_Msg_Count => X_Msg_Count,
9847 X_Msg_Data => X_Msg_Data );
9848 */
9849
9850 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9851 aso_debug_pub.add('After call to Aso_Config_Operations_Int.Config_Operations: x_Return_Status: ' || x_Return_Status, 1, 'Y');
9852 END IF;
9853
9854 end if;
9855
9856 --End of call to Aso_Config_Operations_Int.Config_Operations procedure
9857
9858 END IF; -- l_qte_header_rec.Call_batch_validation_flag = FND_API.G_TRUE
9859
9860 --End of New code for Batch Validate 05/24/2002
9861
9862
9863 -- update price adj relationships
9864 FOR i IN 1..p_price_adj_rltship_tbl.count LOOP
9865 l_price_adj_rltship_rec := p_price_adj_rltship_tbl(i);
9866 l_index := l_price_adj_rltship_rec.qte_line_index;
9867 IF l_index IS NOT NULL AND l_index >=1 AND
9868 l_index <= x_qte_line_tbl.count THEN
9869 l_price_adj_rltship_rec.quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
9870 END IF;
9871 l_index := l_price_adj_rltship_rec.price_adj_index;
9872 IF l_index IS NOT NULL AND l_index >=1 AND
9873 l_index <= x_price_adjustment_tbl.count THEN
9874 l_price_adj_rltship_rec.price_adjustment_id :=
9875 l_price_adjustment_tbl(l_index).price_adjustment_id;
9876 END IF;
9877 l_index := l_price_adj_rltship_rec.RLTD_PRICE_ADJ_INDEX;
9878 IF l_index IS NOT NULL AND l_index >=1 AND
9879 l_index <= x_price_adjustment_tbl.count THEN
9880 l_price_adj_rltship_rec.rltd_price_adj_id :=
9881 l_price_adjustment_tbl(l_index).price_adjustment_id;
9882 END IF;
9883 IF l_price_adj_rltship_rec.operation_code = 'CREATE' THEN
9884 -- BC4J Fix
9885 --l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID := NULL;
9886 ASO_PRICE_RLTSHIPS_PKG.Insert_Row(
9887 px_ADJ_RELATIONSHIP_ID => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID,
9888 p_creation_date => sysdate,
9889 p_CREATED_BY => G_USER_ID,
9890 p_LAST_UPDATE_DATE => sysdate,
9891 p_LAST_UPDATED_BY => G_USER_ID,
9892 p_LAST_UPDATE_LOGIN => G_USER_ID,
9893 p_PROGRAM_APPLICATION_ID=> l_price_adj_rltship_rec.PROGRAM_APPLICATION_ID,
9894 p_PROGRAM_ID => l_price_adj_rltship_rec.PROGRAM_ID,
9895 p_PROGRAM_UPDATE_DATE => l_price_adj_rltship_rec.PROGRAM_UPDATE_DATE,
9896 p_REQUEST_ID => l_price_adj_rltship_rec.REQUEST_ID,
9897 p_QUOTE_LINE_ID => l_price_adj_rltship_rec.quote_line_id,
9898 p_PRICE_ADJUSTMENT_ID => l_price_adj_rltship_rec.price_adjustment_id,
9899 p_RLTD_PRICE_ADJ_ID => l_price_adj_rltship_rec.rltd_price_adj_id,
9900 p_QUOTE_SHIPMENT_ID => l_price_adj_rltship_rec.quote_shipment_id,
9901 p_OBJECT_VERSION_NUMBER => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER
9902 );
9903 ELSIF l_price_adj_rltship_rec.operation_code = 'UPDATE' THEN
9904 ASO_PRICE_RLTSHIPS_PKG.Update_Row(
9905 p_ADJ_RELATIONSHIP_ID => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID,
9906 p_creation_date => l_price_adj_rltship_rec.creation_date,
9907 p_CREATED_BY => G_USER_ID,
9908 p_LAST_UPDATE_DATE => sysdate,
9909 p_LAST_UPDATED_BY => G_USER_ID,
9910 p_LAST_UPDATE_LOGIN => G_USER_ID,
9911 p_PROGRAM_APPLICATION_ID=> l_price_adj_rltship_rec.PROGRAM_APPLICATION_ID,
9912 p_PROGRAM_ID => l_price_adj_rltship_rec.PROGRAM_ID,
9913 p_PROGRAM_UPDATE_DATE => l_price_adj_rltship_rec.PROGRAM_UPDATE_DATE,
9914 p_REQUEST_ID => l_price_adj_rltship_rec.REQUEST_ID,
9915 p_QUOTE_LINE_ID => l_price_adj_rltship_rec.quote_line_id,
9916 p_PRICE_ADJUSTMENT_ID => l_price_adj_rltship_rec.price_adjustment_id,
9917 p_RLTD_PRICE_ADJ_ID => l_price_adj_rltship_rec.rltd_price_adj_id,
9918 p_QUOTE_SHIPMENT_ID => l_price_adj_rltship_rec.quote_shipment_id,
9919 p_OBJECT_VERSION_NUMBER => l_price_adj_rltship_rec.OBJECT_VERSION_NUMBER
9920 );
9921 ELSIF l_price_adj_rltship_rec.operation_code = 'DELETE' THEN
9922 ASO_PRICE_RLTSHIPS_PKG.Delete_Row(
9923 p_ADJ_RELATIONSHIP_ID => l_price_adj_rltship_rec.ADJ_RELATIONSHIP_ID);
9924
9925 END IF;
9926 X_Price_Adj_Rltship_Tbl(i) := l_price_adj_rltship_rec;
9927
9928
9929 END LOOP;
9930
9931
9932 -- update line relationships
9933 FOR i IN 1..p_line_rltship_tbl.count LOOP
9934 l_line_rltship_rec := p_line_rltship_tbl(i);
9935 l_index := l_line_rltship_rec.qte_line_index;
9936 IF l_index IS NOT NULL AND l_index >=1 AND
9937 l_index <= x_qte_line_tbl.count THEN
9938 l_line_rltship_rec.quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
9939 END IF;
9940 l_index := l_line_rltship_rec.related_qte_line_index;
9941 IF l_index IS NOT NULL AND l_index >=1 AND
9942 l_index <= x_qte_line_tbl.count THEN
9943 l_line_rltship_rec.related_quote_line_id := x_qte_line_tbl(l_index).quote_line_id;
9944 END IF;
9945 IF l_line_rltship_rec.operation_code = 'CREATE' THEN
9946 -- BC4J Fix
9947 --l_line_rltship_rec.LINE_RELATIONSHIP_ID := NULL;
9948 ASO_LINE_RELATIONSHIPS_PKG.Insert_Row(
9949 px_LINE_RELATIONSHIP_ID => l_line_rltship_rec.LINE_RELATIONSHIP_ID,
9950 p_CREATION_DATE => SYSDATE,
9951 p_CREATED_BY => G_USER_ID,
9952 p_LAST_UPDATED_BY => G_USER_ID,
9953 p_LAST_UPDATE_DATE => SYSDATE,
9954 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
9955 p_REQUEST_ID => l_line_rltship_rec.REQUEST_ID,
9956 p_PROGRAM_APPLICATION_ID => l_line_rltship_rec.PROGRAM_APPLICATION_ID,
9957 p_PROGRAM_ID => l_line_rltship_rec.PROGRAM_ID,
9958 p_PROGRAM_UPDATE_DATE =>l_line_rltship_rec.PROGRAM_UPDATE_DATE,
9959 p_QUOTE_LINE_ID => l_line_rltship_rec.quote_line_id,
9960 p_RELATED_QUOTE_LINE_ID => l_line_rltship_rec.RELATED_QUOTE_LINE_ID,
9961 p_RECIPROCAL_FLAG => l_line_rltship_rec.RECIPROCAL_FLAG,
9962 P_RELATIONSHIP_TYPE_CODE =>l_line_rltship_rec.RELATIONSHIP_TYPE_CODE,
9963 p_OBJECT_VERSION_NUMBER => l_line_rltship_rec.OBJECT_VERSION_NUMBER
9964 );
9965 ELSIF l_line_rltship_rec.operation_code = 'UPDATE' THEN
9966 ASO_LINE_RELATIONSHIPS_PKG.Update_Row(
9967 p_LINE_RELATIONSHIP_ID => l_line_rltship_rec.LINE_RELATIONSHIP_ID,
9968 p_CREATION_DATE => l_line_rltship_rec.creation_date,
9969 p_CREATED_BY => G_USER_ID,
9970 p_LAST_UPDATED_BY => G_USER_ID,
9971 p_LAST_UPDATE_DATE => SYSDATE,
9972 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
9973 p_REQUEST_ID => l_line_rltship_rec.REQUEST_ID,
9974 p_PROGRAM_APPLICATION_ID => l_line_rltship_rec.PROGRAM_APPLICATION_ID,
9975 p_PROGRAM_ID => l_line_rltship_rec.PROGRAM_ID,
9976 p_PROGRAM_UPDATE_DATE =>l_line_rltship_rec.PROGRAM_UPDATE_DATE,
9977 p_QUOTE_LINE_ID => l_line_rltship_rec.quote_line_id,
9978 p_RELATED_QUOTE_LINE_ID => l_line_rltship_rec.RELATED_QUOTE_LINE_ID,
9979 p_RECIPROCAL_FLAG => l_line_rltship_rec.RECIPROCAL_FLAG,
9980 P_RELATIONSHIP_TYPE_CODE =>l_line_rltship_rec.RELATIONSHIP_TYPE_CODE,
9981 p_OBJECT_VERSION_NUMBER => l_line_rltship_rec.OBJECT_VERSION_NUMBER
9982 );
9983 ELSIF l_line_rltship_rec.operation_code = 'DELETE' THEN
9984 ASO_LINE_RELATIONSHIPS_PKG.delete_Row(
9985 p_LINE_RELATIONSHIP_ID => l_line_rltship_rec.LINE_RELATIONSHIP_ID);
9986 END IF;
9987 X_line_Rltship_Tbl(i) := l_line_rltship_rec;
9988
9989 IF aso_debug_pub.g_debug_flag = 'Y' THEN
9990 aso_debug_pub.add('Update_Quote: l_line_rltship_rec.quote_line_id: '||l_line_rltship_rec.quote_line_id);
9991 aso_debug_pub.add('Update_Quote: l_line_rltship_rec.related_quote_line_id: '||l_line_rltship_rec.related_quote_line_id);
9992 END IF;
9993
9994 if l_line_rltship_rec.relationship_type_code = 'CONFIG' and
9995 (l_line_rltship_rec.operation_code = 'CREATE' or
9996 l_line_rltship_rec.operation_code = 'UPDATE') then
9997
9998 update aso_quote_line_details
9999 set ref_type_code = 'CONFIG',
10000 ref_line_id = l_line_rltship_rec.quote_line_id,
10001 last_update_date = sysdate,
10002 last_updated_by = g_user_id,
10003 last_update_login = g_login_id
10004 where quote_line_id = l_line_rltship_rec.related_quote_line_id;
10005
10006 end if;
10007
10008 END LOOP;
10009
10010 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10011 aso_debug_pub.add('Update_Quote: x_qte_header_rec.quote_header_id: '|| x_qte_header_rec.quote_header_id);
10012 END IF;
10013
10014 update aso_quote_line_details
10015 set ref_type_code = 'CONFIG',
10016 last_update_date = sysdate,
10017 last_updated_by = g_user_id,
10018 last_update_login = g_login_id
10019 where config_header_id is not null
10020 and config_revision_num is not null
10021 and ref_type_code is null
10022 and quote_line_id in (select quote_line_id from aso_quote_lines_all
10023 where item_type_code = 'MDL'
10024 and quote_header_id = x_qte_header_rec.quote_header_id);
10025
10026 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10027 aso_debug_pub.add('Update_Quote: Validating line type if Order type has changed');
10028 aso_debug_pub.add('Update_Quote: l_qte_header_rec.order_type_id: '||l_qte_header_rec.order_type_id);
10029 END IF;
10030
10031
10032 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
10033
10034 For quote_lines_rec IN c_quote_lines(l_qte_header_rec.quote_header_id) LOOP
10035
10036 l_ln_rec.quote_line_id := quote_lines_rec.quote_line_id;
10037 l_ln_rec.order_line_type_id := quote_lines_rec.order_line_type_id;
10038 l_ln_rec.line_category_code := quote_lines_rec.line_category_code;
10039
10040
10041 --Validate_ln_type_for_ord_type
10042
10043 ASO_validate_PVT.Validate_ln_type_for_ord_type(
10044 p_init_msg_list => FND_API.G_FALSE,
10045 p_qte_header_rec => l_qte_header_rec,
10046 P_Qte_Line_rec => l_ln_rec,
10047 x_return_status => x_return_status,
10048 x_msg_count => x_msg_count,
10049 x_msg_data => x_msg_data);
10050
10051 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
10052 RAISE FND_API.G_EXC_ERROR;
10053 END IF;
10054 --Validate_ln_category_code
10055
10056 ASO_validate_PVT.Validate_ln_category_code(
10057 p_init_msg_list => FND_API.G_FALSE,
10058 p_qte_header_rec => l_qte_header_rec,
10059 P_Qte_Line_rec => l_ln_rec,
10060 x_return_status => x_return_status,
10061 x_msg_count => x_msg_count,
10062 x_msg_data => x_msg_data);
10063
10064 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
10065 RAISE FND_API.G_EXC_ERROR;
10066 END IF;
10067
10068
10069 END LOOP;
10070 End if;
10071
10072
10073 aso_validate_pvt.Validate_po_line_number
10074 (
10075 p_init_msg_list => fnd_api.g_false,
10076 p_qte_header_rec => l_qte_header_rec,
10077 x_return_status => x_return_status,
10078 x_msg_count => x_msg_count,
10079 x_msg_data => x_msg_data);
10080
10081 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
10082 RAISE FND_API.G_EXC_ERROR;
10083 END IF;
10084
10085
10086
10087 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10088 aso_debug_pub.add('Update_Quote - before header_pricing ', 1, 'N');
10089 END IF;
10090
10091 IF l_control_rec.header_pricing_event IS NOT NULL AND
10092 l_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR THEN
10093
10094 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10095 aso_debug_pub.add('Update_Quote - in header_pricing ', 1, 'N');
10096 END IF;
10097
10098 l_pricing_control_rec.request_type := p_control_rec.pricing_request_type;
10099 l_pricing_control_rec.pricing_event := p_control_rec.header_pricing_event;
10100 l_pricing_control_rec.price_mode := p_control_rec.price_mode;
10101
10102 --New Code for to call overload pricing_order
10103
10104 lv_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
10105 lv_hd_price_attr_tbl := aso_utility_pvt.query_price_attr_rows(x_qte_header_rec.quote_header_id,null);
10106 lv_hd_shipment_tbl := aso_utility_pvt.query_shipment_rows(x_qte_header_rec.quote_header_id,null);
10107
10108 if lv_hd_shipment_tbl.count = 1 then
10109 lv_hd_shipment_rec := lv_hd_shipment_tbl(1);
10110 end if;
10111
10112 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10113 aso_debug_pub.add('Update_Quote: Before call to ASO_PRICING_INT.Pricing_Order');
10114 aso_debug_pub.add('Update_Quote: x_qte_line_tbl.count: ' || x_qte_line_tbl.count);
10115 END IF;
10116
10117 ASO_PRICING_INT.Pricing_Order(
10118 P_Api_Version_Number => 1.0,
10119 P_Init_Msg_List => fnd_api.g_false,
10120 P_Commit => fnd_api.g_false,
10121 p_control_rec => l_pricing_control_rec,
10122 p_qte_header_rec => lv_qte_header_rec,
10123 p_hd_shipment_rec => lv_hd_shipment_rec,
10124 p_hd_price_attr_tbl => lv_hd_price_attr_tbl,
10125 p_qte_line_tbl => x_qte_line_tbl,
10126 --p_line_rltship_tbl => l_line_rltship_tbl,
10127 --p_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
10128 --p_ln_shipment_tbl => ln_shipment_tbl,
10129 --p_ln_price_attr_tbl => l_ln_price_attr_tbl,
10130 x_qte_header_rec => lx_qte_header_rec,
10131 x_qte_line_tbl => lx_qte_line_tbl,
10132 x_qte_line_dtl_tbl => lx_qte_line_dtl_tbl,
10133 x_price_adj_tbl => l_price_adj_tbl_out,
10134 x_price_adj_attr_tbl => l_Price_Adj_Attr_Tbl_out,
10135 x_price_adj_rltship_tbl => lx_price_adj_rltship_tbl,
10136 x_return_status => l_return_status,
10137 x_msg_count => x_msg_count,
10138 x_msg_data => x_msg_data );
10139
10140
10141 x_qte_line_tbl := lx_qte_line_tbl;
10142
10143 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10144 aso_debug_pub.add('Update_Quote: After call to ASO_PRICING_INT.Pricing_Order');
10145 aso_debug_pub.add('Update_Quote: l_return_status: ' || l_return_status);
10146 aso_debug_pub.add('Update_Quote: lx_qte_line_tbl.count: ' || lx_qte_line_tbl.count);
10147 aso_debug_pub.add('Update_Quote: x_qte_line_tbl.count: ' || x_qte_line_tbl.count);
10148 END IF;
10149
10150 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10151
10152 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
10153
10154 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10155
10156 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
10157 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
10158 FND_MSG_PUB.ADD;
10159
10160 END IF;
10161
10162 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10163
10164 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
10165
10166 x_return_status := FND_API.G_RET_STS_ERROR;
10167 RAISE FND_API.G_EXC_ERROR;
10168
10169 END IF;
10170
10171 END IF;
10172
10173
10174 /*New Pricing Changes to update the date*/
10175
10176
10177 IF p_control_rec.header_pricing_event = 'BATCH' and
10178 p_control_rec.price_mode='ENTIRE_QUOTE' THEN
10179
10180 l_price_updated_date_flag := fnd_api.g_true;
10181
10182 END IF;
10183
10184
10185 -- kchervel calculating tax for the whole quote
10186 IF p_control_rec.calculate_tax_flag = 'Y' THEN
10187
10188 --Added the IF Condition below to facilitate TAX calculation changes .
10189 IF l_qte_line_tbl.count >0 then
10190 l_lines:=1;
10191 else
10192 SELECT
10193 COUNT(QUOTE_HEADER_ID)
10194 INTO
10195 l_lines
10196 FROM
10197 ASO_QUOTE_LINES_ALL
10198 WHERE
10199 QUOTE_HEADER_ID=x_qte_header_rec.quote_header_id;
10200 END IF;
10201
10202 --Commented the Below lines by Anoop on 15th August
10203 /* l_tax_control_rec.tax_level := 'SHIPPING';
10204 l_tax_control_rec.update_DB := 'Y';
10205 ASO_TAX_INT.Calculate_Tax(
10206 P_Api_Version_Number => 1.0,
10207 p_quote_header_id => x_qte_header_rec.quote_header_id,
10208 P_Tax_Control_Rec => l_tax_control_rec,
10209 x_tax_amount => x_tax_amount ,
10210 x_tax_detail_tbl => l_tax_detail_tbl,
10211 X_Return_Status => x_return_status ,
10212 X_Msg_Count => x_msg_count ,
10213 X_Msg_Data => x_msg_data );
10214 */
10215
10216
10217 --Changed the call to Tax API as a part of eTAX by Anoop Rajan on August 9 2005
10218 IF l_lines>0 then
10219 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10220 aso_debug_pub.add('Update_Quote: Before call to tax engine');
10221
10222 aso_debug_pub.add('Calculate Tax Flag : '|| p_control_rec.calculate_tax_flag);
10223 END IF;
10224 ASO_TAX_INT.CALCULATE_TAX_WITH_GTT ( p_API_VERSION_NUMBER => 1.0,
10225 p_qte_header_id => x_qte_header_rec.quote_header_id,
10226 x_return_status => x_return_status ,
10227 X_Msg_Count => x_msg_count ,
10228 X_Msg_Data => x_msg_data );
10229
10230 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10231 aso_debug_pub.add('Update_Quote: After call to tax engine');
10232 END IF;
10233 else
10234 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10235 aso_debug_pub.add('Update_Quote: NO LINE RECORDS.SO TAX NOT CALCULATED : x_return_status: '|| x_return_status, 1, 'Y');
10236 END IF;
10237 end if;
10238
10239 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
10240 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10241 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
10242 FND_MESSAGE.Set_Token('API', 'CALCULATE_TAX_WITH_GTT', FALSE);
10243 FND_MSG_PUB.ADD;
10244 END IF;
10245
10246 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10247 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10248 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
10249 RAISE FND_API.G_EXC_ERROR;
10250 END IF;
10251
10252 END IF;
10253
10254 END IF; -- tax flag set
10255
10256
10257 /*New Tax Changes to update the date*/
10258
10259 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10260
10261 aso_debug_pub.add('Update_Quote: control record parameter values');
10262 aso_debug_pub.add('p_control_rec.header_pricing_event: ' || p_control_rec.header_pricing_event);
10263 aso_debug_pub.add('p_control_rec.price_mode: ' || p_control_rec.price_mode);
10264 aso_debug_pub.add('p_control_rec.calculate_tax_flag: ' || p_control_rec.calculate_tax_flag);
10265 aso_debug_pub.add('l_price_updated_date_flag: ' || l_price_updated_date_flag);
10266
10267 END IF;
10268
10269 IF p_control_rec.calculate_tax_flag = 'Y' THEN
10270
10271 IF l_price_updated_date_flag = fnd_api.g_true THEN
10272
10273 update aso_quote_headers_all
10274 set tax_updated_date = sysdate,
10275 price_updated_date = sysdate,
10276 recalculate_flag = 'N'
10277 where quote_header_id = x_qte_header_rec.quote_header_id;
10278
10279 ELSE
10280
10281 update aso_quote_headers_all
10282 set tax_updated_date = sysdate
10283 where quote_header_id = x_qte_header_rec.quote_header_id;
10284
10285 END IF;
10286
10287 ELSIF l_price_updated_date_flag = fnd_api.g_true THEN
10288
10289 update aso_quote_headers_all
10290 set price_updated_date = sysdate,
10291 recalculate_flag = 'N'
10292 where quote_header_id = x_qte_header_rec.quote_header_id;
10293
10294 END IF;
10295
10296
10297
10298 -- Update Quote total info (do summation to get TOTAL_LIST_PRICE,
10299 -- TOTAL_ADJUSTED_AMOUNT, TOTAL_TAX, TOTAL_SHIPPING_CHARGE, SURCHARGE,
10300 -- TOTAL_QUOTE_PRICE, PAYMENT_AMOUNT)
10301 -- IF calculate_tax_flag = 'N', not summation on line level tax,
10302 -- just take the value of l_qte_header_rec.total_tax as the total_tax
10303 -- IF calculate_Freight_Charge = 'N', not summation on line level freight charge,
10304 -- just take the value of l_qte_header_rec.total_freight_charge
10305 -- (or l_hd_shipment_tbl(1).total_freight_charge???) as the TOTAL_SHIPPING_CHARGE
10306
10307
10308 IF p_control_rec.calculate_tax_flag = 'N' AND
10309 l_qte_header_rec.total_tax IS NOT NULL THEN
10310 l_calculate_tax := 'N';
10311 END IF;
10312 IF p_control_rec.calculate_freight_charge_flag = 'N' AND
10313 l_qte_header_rec.total_shipping_charge IS NOT NULL THEN
10314 l_calculate_freight_charge := 'N';
10315 END IF;
10316
10317
10318 -- Start of PNPL Changes
10319 x_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
10320
10321 l_installment_option := oe_sys_parameters.value(param_name => 'INSTALLMENT_OPTIONS',
10322 p_org_id =>x_qte_header_rec.org_id);
10323
10324 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10325 aso_debug_pub.add('Update_Quote - Value of Installment Option Param: '||l_installment_option, 1, 'Y');
10326 END IF;
10327
10328 IF ( (l_installment_option = 'ENABLE_PAY_NOW') and (nvl(x_qte_header_rec.quote_type,'X') <> 'T')
10329 and ((p_control_rec.header_pricing_event <> FND_API.G_MISS_CHAR and p_control_rec.header_pricing_event is not null)
10330 or (p_control_rec.calculate_tax_flag = 'Y')) ) then
10331
10332 l_call_ar_api := fnd_api.g_true;
10333
10334 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10335 aso_debug_pub.add('Update_Quote - p_control_rec.header_pricing_event: '||p_control_rec.header_pricing_event, 1, 'Y');
10336 aso_debug_pub.add('Update_Quote - p_control_rec.price_mode : '||p_control_rec.price_mode, 1, 'Y');
10337 aso_debug_pub.add('Update_Quote - l_qte_line_tbl.count : '||l_qte_line_tbl.count, 1, 'Y');
10338 END IF;
10339
10340 -- check if price_mode is change_line, if so then call ar api only if some lines are being created or updated
10341 IF (p_control_rec.header_pricing_event = 'BATCH' and p_control_rec.price_mode = 'CHANGE_LINE') THEN
10342 if (l_qte_line_tbl.count > 0) then
10343 l_call_ar_api := fnd_api.g_false;
10344 for i in 1..l_qte_line_tbl.count loop
10345 if (l_qte_line_tbl(i).operation_code = 'CREATE' or l_qte_line_tbl(i).operation_code = 'UPDATE') then
10346 l_call_ar_api := fnd_api.g_true;
10347 exit;
10348 end if;
10349 end loop;
10350 else
10351 l_call_ar_api := fnd_api.g_false;
10352 end if;
10353 END IF;
10354
10355 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10356 aso_debug_pub.add('Update_Quote - l_call_ar_api: '|| l_call_ar_api, 1, 'Y');
10357 END IF;
10358
10359 IF (l_call_ar_api = fnd_api.g_true ) then
10360
10361 For quote_lines_rec IN c_quote_lines(x_qte_header_rec.quote_header_id) LOOP
10362
10363 -- resetting the line term id variable
10364 l_line_term_id := null;
10365
10366 -- get the line freight charges
10367 l_line_shipping_charge := aso_shipping_int.get_line_freight_charges( x_qte_header_rec.quote_header_id,
10368 quote_lines_rec.quote_line_id );
10369
10370 -- get the line tax
10371 open c_tax_line(x_qte_header_rec.quote_header_id,quote_lines_rec.quote_line_id);
10372 fetch c_tax_line into l_line_tax;
10373 close c_tax_line;
10374
10375 -- get the payment term id for the line
10376 open get_line_payment_term(x_qte_header_rec.quote_header_id,quote_lines_rec.quote_line_id);
10377 fetch get_line_payment_term into l_line_term_id;
10378 close get_line_payment_term;
10379
10380 -- if line term id is null then get it from header
10381 If l_line_term_id is null THEN
10382 open get_hdr_payment_term(x_qte_header_rec.quote_header_id);
10383 fetch get_hdr_payment_term into l_line_term_id;
10384 close get_hdr_payment_term;
10385 END IF;
10386
10387 l_line_amount := quote_lines_rec.line_quote_price * quote_lines_rec.quantity;
10388
10389
10390 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10391 aso_debug_pub.add('Update_Quote - ********** Input to AR_VIEW_TERM_GRP.pay_now_amounts follows ********** ', 1, 'Y');
10392 aso_debug_pub.add('Update_Quote - quote_lines_rec.quote_line_id: '||quote_lines_rec.quote_line_id, 1, 'Y');
10393 aso_debug_pub.add('Update_Quote - l_line_amount: '||l_line_amount, 1, 'Y');
10394 aso_debug_pub.add('Update_Quote - l_line_shipping_charge: '||l_line_shipping_charge, 1, 'Y');
10395 aso_debug_pub.add('Update_Quote - l_line_tax: '||l_line_tax, 1, 'Y');
10396 aso_debug_pub.add('Update_Quote - l_line_term_id: '||l_line_term_id, 1, 'Y');
10397 END IF;
10398
10399 IF (l_line_term_id is not null and l_line_term_id <> fnd_api.g_miss_num) then
10400
10401 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10402 aso_debug_pub.add('Update_Quote: before call to AR_VIEW_TERM_GRP.pay_now_amounts', 1, 'Y');
10403 END IF;
10404
10405 -- Call the AR API to get the amounts
10406 AR_VIEW_TERM_GRP.pay_now_amounts(
10407 p_api_version => 1.0,
10408 p_init_msg_list => p_init_msg_list,
10409 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
10410 p_term_id => l_line_term_id,
10411 p_currency_code => x_qte_header_rec.currency_code,
10412 p_line_amount => l_line_amount,
10413 p_tax_amount => l_line_tax,
10414 p_freight_amount => l_line_shipping_charge,
10415 x_pay_now_line_amount => l_paynow_amount,
10416 x_pay_now_tax_amount => l_paynow_tax,
10417 x_pay_now_freight_amount => l_paynow_charges,
10418 x_pay_now_total_amount => l_paynow_total,
10419 X_Return_Status => x_return_status ,
10420 X_Msg_Count => x_msg_count ,
10421 X_Msg_Data => x_msg_data );
10422
10423 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10424 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;
10425
10426 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
10427
10428 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10429 FND_MESSAGE.Set_Name('ASO', 'ERROR_RETURNED');
10430 FND_MESSAGE.Set_Token('API', 'AR_PayNow_Amounts', FALSE);
10431 FND_MSG_PUB.ADD;
10432 END IF;
10433
10434 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10435 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10436 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
10437 RAISE FND_API.G_EXC_ERROR;
10438 END IF;
10439
10440 END IF;
10441
10442 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10443 aso_debug_pub.add('Update_Quote - Output from AR_VIEW_TERM_GRP.pay_now_amounts follows:', 1, 'Y');
10444 aso_debug_pub.add('Update_Quote - l_paynow_amount: '||l_paynow_amount, 1, 'Y');
10445 aso_debug_pub.add('Update_Quote - l_paynow_charges: '||l_paynow_charges, 1, 'Y');
10446 aso_debug_pub.add('Update_Quote - l_paynow_tax: '||l_paynow_tax, 1, 'Y');
10447 aso_debug_pub.add('Update_Quote - l_paynow_total: '||l_paynow_total, 1, 'Y');
10448 aso_debug_pub.add('Update_Quote - ************ End PNPL Processing ************ ', 1, 'Y');
10449 END IF;
10450
10451
10452 -- Update the corresponding columns in the line table
10453 update aso_quote_lines_all
10454 set line_paynow_charges = l_paynow_charges,
10455 line_paynow_tax = l_paynow_tax,
10456 line_paynow_subtotal = l_paynow_amount,
10457 last_update_date = sysdate,
10458 last_updated_by = fnd_global.user_id,
10459 last_update_login = fnd_global.conc_login_id
10460 where quote_line_id = quote_lines_rec.quote_line_id;
10461
10462 end if; -- check for term id null
10463 end loop;
10464
10465 END IF; -- end if for call ar api flag
10466 END IF;
10467
10468 -- End of PNPL Changes
10469
10470 Update_Quote_Total (
10471 P_Qte_Header_id => x_Qte_Header_rec.quote_header_id,
10472 P_Calculate_Tax => p_control_rec.calculate_tax_flag,
10473 P_calculate_Freight_Charge => p_control_rec.calculate_freight_charge_flag,
10474 p_control_rec => p_control_rec,
10475 P_Call_Ar_Api_Flag => l_call_ar_api,
10476 X_Return_Status => x_return_status,
10477 X_Msg_Count => x_msg_count,
10478 X_Msg_Data => x_msg_data);
10479
10480 x_qte_header_rec := aso_utility_pvt.query_header_row(x_qte_header_rec.quote_header_id);
10481
10482 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
10483
10484
10485 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
10486 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
10487 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER AFTER UPDT TOTAL', TRUE);
10488 FND_MSG_PUB.ADD;
10489 END IF;
10490
10491 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10492
10493 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
10494
10495 RAISE FND_API.G_EXC_ERROR;
10496
10497 END IF;
10498
10499 --
10500 -- End of API body.
10501 --
10502
10503 -- Change START
10504 -- Release 12 TAP Changes
10505 -- Girish Sachdeva 8/30/2005
10506 -- Adding the call to insert record in the ASO_CHANGED_QUOTES
10507
10508 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10509 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');
10510 END IF;
10511
10512 -- Call to insert record in ASO_CHANGED_QUOTES
10513 ASO_UTILITY_PVT.UPDATE_CHANGED_QUOTES(x_qte_header_rec.quote_number);
10514
10515 -- Change END
10516
10517
10518 -- Standard check for p_commit
10519 IF FND_API.to_Boolean( p_commit ) THEN
10520 COMMIT WORK;
10521 END IF;
10522
10523 -- Standard call to get message count and if count is 1, get message info.
10524 FND_MSG_PUB.Count_And_Get
10525 ( p_count => x_msg_count,
10526 p_data => x_msg_data
10527 );
10528
10529 EXCEPTION
10530 WHEN FND_API.G_EXC_ERROR THEN
10531 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10532 P_API_NAME => L_API_NAME
10533 ,P_PKG_NAME => G_PKG_NAME
10534 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
10535 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10536 ,P_SQLCODE => SQLCODE
10537 ,P_SQLERRM => SQLERRM
10538 ,X_MSG_COUNT => X_MSG_COUNT
10539 ,X_MSG_DATA => X_MSG_DATA
10540 ,X_RETURN_STATUS => X_RETURN_STATUS);
10541
10542 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10543 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10544 P_API_NAME => L_API_NAME
10545 ,P_PKG_NAME => G_PKG_NAME
10546 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
10547 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10548 ,P_SQLCODE => SQLCODE
10549 ,P_SQLERRM => SQLERRM
10550 ,X_MSG_COUNT => X_MSG_COUNT
10551 ,X_MSG_DATA => X_MSG_DATA
10552 ,X_RETURN_STATUS => X_RETURN_STATUS);
10553
10554 WHEN OTHERS THEN
10555 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10556 P_API_NAME => L_API_NAME
10557 ,P_PKG_NAME => G_PKG_NAME
10558 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
10559 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10560 ,P_SQLCODE => SQLCODE
10561 ,P_SQLERRM => SQLERRM
10562 ,X_MSG_COUNT => X_MSG_COUNT
10563 ,X_MSG_DATA => X_MSG_DATA
10564 ,X_RETURN_STATUS => X_RETURN_STATUS);
10565 End Update_quote;
10566
10567
10568 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
10569 -- The Master delete procedure may not be needed depends on different business requirements.
10570 PROCEDURE Delete_quote(
10571 P_Api_Version_Number IN NUMBER,
10572 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
10573 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
10574 P_qte_Header_Id IN NUMBER,
10575 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
10576 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
10577 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10578 )
10579
10580 IS
10581 l_api_name CONSTANT VARCHAR2(30) := 'Delete_quote';
10582 l_api_version_number CONSTANT NUMBER := 1.0;
10583 l_qln_id NUMBER;
10584 CURSOR c_qte_lines IS
10585 SELECT quote_line_id FROM ASO_QUOTE_LINES_ALL
10586 WHERE quote_header_id = p_qte_header_id;
10587
10588 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
10589 CURSOR c_qte_line(l_d_qte_line NUMBER) IS
10590 SELECT quote_line_id FROM ASO_QUOTE_LINES_ALL
10591 where quote_line_id= l_qte_line_rec.quote_line_id;
10592 BEGIN
10593 -- Standard Start of API savepoint
10594 SAVEPOINT DELETE_quote_PVT;
10595
10596 -- Standard call to check for call compatibility.
10597 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
10598 p_api_version_number,
10599 l_api_name,
10600 G_PKG_NAME)
10601 THEN
10602 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10603 END IF;
10604
10605
10606 -- Initialize message list if p_init_msg_list is set to TRUE.
10607 IF FND_API.to_Boolean( p_init_msg_list )
10608 THEN
10609 FND_MSG_PUB.initialize;
10610 END IF;
10611
10612
10613 -- Initialize API return status to SUCCESS
10614 x_return_status := FND_API.G_RET_STS_SUCCESS;
10615
10616 --
10617 -- Api body
10618 --
10619
10620 -- Invoke table handler(ASO_QUOTE_HEADERS_PKG.Delete_Row)
10621 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10622 aso_debug_pub.add('Delete_Quote - Begin ', 1, 'Y');
10623 END IF;
10624
10625 ASO_QUOTE_HEADERS_PKG.Delete_Row(
10626 p_QUOTE_HEADER_ID => p_qte_header_id);
10627
10628 FOR line_rec IN c_qte_lines LOOP
10629 l_qte_line_rec.quote_line_id := line_rec.quote_line_id;
10630 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10631 aso_debug_pub.add('Delete_Quote - before delete_line- quote_line_id: '|| l_qte_line_rec.quote_line_id, 1, 'N');
10632 END IF;
10633
10634 OPEN c_qte_line(l_qte_line_rec.quote_line_id);
10635 FETCH c_qte_line into l_qln_id;
10636 IF c_qte_line%FOUND AND l_qln_id <> FND_API.G_MISS_NUM THEN
10637 ASO_QUOTE_LINES_PVT.Delete_Quote_Line(
10638 P_Api_Version_Number => 1.0,
10639 P_qte_line_Rec => l_qte_line_rec,
10640 P_Update_Header_Flag => FND_API.G_FALSE,
10641 X_Return_Status => X_Return_Status,
10642 X_Msg_Count => X_Msg_Count,
10643 X_Msg_Data => X_Msg_Data);
10644 END IF;
10645 CLOSE c_qte_line;
10646 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
10647 RAISE FND_API.G_EXC_ERROR;
10648 END IF;
10649 END LOOP;
10650
10651
10652 --New code for Delete_Promotion 07/22/02
10653
10654 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10655 aso_debug_pub.add('Delete_Quote: Before deleting ASO_PRICE_ADJUSTMENTS table data',1,'N');
10656 END IF;
10657
10658 DELETE FROM ASO_PRICE_ADJUSTMENTS
10659 WHERE QUOTE_HEADER_ID = p_qte_header_id;
10660
10661 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10662 aso_debug_pub.add('Delete_Quote: Before deleting ASO_PRICE_ADJ_ATTRIBS table data',1,'N');
10663 END IF;
10664
10665 DELETE FROM aso_price_adj_attribs
10666 WHERE price_adjustment_id IN (select price_adjustment_id
10667 from aso_price_adjustments
10668 where quote_header_id = p_qte_header_id
10669 and quote_line_id is NULL);
10670
10671 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10672 aso_debug_pub.add('Delete_Quote: Before deleting ASO_PRICE_ATTRIBUTES table data',1,'N');
10673 END IF;
10674
10675 DELETE FROM ASO_PRICE_ATTRIBUTES
10676 WHERE QUOTE_HEADER_ID = p_qte_header_id
10677 and quote_line_id is NULL;
10678
10679 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10680 aso_debug_pub.add('Delete_Quote: After deleting ASO_PRICE_ATTRIBUTES table data',1,'N');
10681 END IF;
10682
10683
10684 --End of New code for Delete_Promotion 07/22/02
10685
10686
10687 DELETE FROM ASO_PAYMENTS
10688 WHERE QUOTE_HEADER_ID = p_qte_header_id;
10689
10690 DELETE FROM ASO_FREIGHT_CHARGES
10691 WHERE quote_shipment_id in
10692 (select shipment_id from ASO_SHIPMENTS
10693 where QUOTE_HEADER_ID = p_qte_header_id);
10694
10695 DELETE FROM ASO_SHIPMENTS
10696 WHERE QUOTE_HEADER_ID = p_qte_header_id;
10697
10698 DELETE FROM ASO_TAX_DETAILS
10699 WHERE QUOTE_HEADER_ID = p_qte_header_id;
10700
10701 DELETE FROM ASO_SALES_CREDITS
10702 WHERE QUOTE_HEADER_ID = p_qte_header_id;
10703
10704
10705 DELETE FROM ASO_QUOTE_PARTIES
10706 WHERE QUOTE_HEADER_ID = p_qte_header_id;
10707
10708 DELETE FROM ASO_QUOTE_LINE_ATTRIBS_EXT
10709 WHERE QUOTE_HEADER_ID = p_qte_header_id;
10710
10711 --
10712 -- End of API body
10713 --
10714
10715 -- Standard check for p_commit
10716 IF FND_API.to_Boolean( p_commit )
10717 THEN
10718 COMMIT WORK;
10719 END IF;
10720
10721
10722 -- Standard call to get message count and if count is 1, get message info.
10723 FND_MSG_PUB.Count_And_Get
10724 ( p_count => x_msg_count,
10725 p_data => x_msg_data
10726 );
10727
10728 EXCEPTION
10729 WHEN FND_API.G_EXC_ERROR THEN
10730 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10731 P_API_NAME => L_API_NAME
10732 ,P_PKG_NAME => G_PKG_NAME
10733 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
10734 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10735 ,P_SQLCODE => SQLCODE
10736 ,P_SQLERRM => SQLERRM
10737 ,X_MSG_COUNT => X_MSG_COUNT
10738 ,X_MSG_DATA => X_MSG_DATA
10739 ,X_RETURN_STATUS => X_RETURN_STATUS);
10740
10741 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10742 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10743 P_API_NAME => L_API_NAME
10744 ,P_PKG_NAME => G_PKG_NAME
10745 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
10746 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10747 ,P_SQLCODE => SQLCODE
10748 ,P_SQLERRM => SQLERRM
10749 ,X_MSG_COUNT => X_MSG_COUNT
10750 ,X_MSG_DATA => X_MSG_DATA
10751 ,X_RETURN_STATUS => X_RETURN_STATUS);
10752
10753 WHEN OTHERS THEN
10754 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
10755 P_API_NAME => L_API_NAME
10756 ,P_PKG_NAME => G_PKG_NAME
10757 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
10758 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
10759 ,P_SQLCODE => SQLCODE
10760 ,P_SQLERRM => SQLERRM
10761 ,X_MSG_COUNT => X_MSG_COUNT
10762 ,X_MSG_DATA => X_MSG_DATA
10763 ,X_RETURN_STATUS => X_RETURN_STATUS);
10764 End Delete_quote;
10765
10766 -- NAME
10767 -- Copy_Quote
10768 --
10769 -- PURPOSE
10770 -- Copy the quote (with quote_id = p_original_quote_id) to a new quote
10771 -- (set original_quote_id = p_original_quote_id).
10772 -- If p_header_only is FALSE, also copy all the associated quote lines
10773 -- to new quote lines and create expected purchases for each line.
10774 --
10775
10776 PROCEDURE Copy_Quote
10777 (
10778 P_Api_Version_Number IN NUMBER,
10779 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
10780 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
10781 P_control_rec IN ASO_QUOTE_PUB.control_rec_type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
10782 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
10783 P_Qte_Header_Id IN NUMBER,
10784 P_Last_Update_Date IN DATE,
10785 P_Copy_Only_Header IN VARCHAR2 := FND_API.G_FALSE,
10786 P_New_Version IN VARCHAR2 := FND_API.G_FALSE,
10787 P_Qte_Status_Id IN NUMBER := NULL,
10788 P_Qte_Number IN NUMBER := NULL,
10789 X_Qte_Header_Id OUT NOCOPY /* file.sql.39 change */ NUMBER,
10790 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
10791 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
10792 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
10793 ) IS
10794 /* -- original cpy_qte
10795 CURSOR C_Validate_Quote (x_qte_header_id NUMBER) IS
10796 SELECT 'X'
10797 FROM ASO_QUOTE_HEADERS_ALL
10798 WHERE quote_header_id = x_qte_header_id;
10799
10800
10801
10802 CURSOR c_line_relation (x_quote_header_id NUMBER) IS
10803 SELECT LINE_RELATIONSHIP_ID,
10804 CREATION_DATE,
10805 CREATED_BY,
10806 LAST_UPDATED_BY,
10807 LAST_UPDATE_DATE,
10808 LAST_UPDATE_LOGIN,
10809 REQUEST_ID,
10810 PROGRAM_APPLICATION_ID,
10811 PROGRAM_ID,
10812 PROGRAM_UPDATE_DATE,
10813 QUOTE_LINE_ID,
10814 RELATED_QUOTE_LINE_ID,
10815 RELATIONSHIP_TYPE_CODE,
10816 RECIPROCAL_FLAG FROM ASO_LINE_RELATIONSHIPS
10817 WHERE quote_line_id IN
10818 (SELECT quote_line_id FROM aso_quote_lines_all
10819 WHERE quote_header_id = x_quote_header_id)
10820 AND related_quote_line_id IN
10821 (SELECT quote_line_id FROM aso_quote_lines_all
10822 WHERE quote_header_id = x_quote_header_id);
10823 */ -- original copy_qte
10824
10825 /* Commented by Biplabi Mishra to change the EXISTS to IN 07/09/01
10826
10827
10828 CURSOR c_line_relation (x_quote_header_id NUMBER) IS
10829 SELECT LINE_RELATIONSHIP_ID,
10830 CREATION_DATE,
10831 CREATED_BY,
10832 LAST_UPDATED_BY,
10833 LAST_UPDATE_DATE,
10834 LAST_UPDATE_LOGIN,
10835 REQUEST_ID,
10836 PROGRAM_APPLICATION_ID,
10837 PROGRAM_ID,
10838 PROGRAM_UPDATE_DATE,
10839 QUOTE_LINE_ID,
10840 RELATED_QUOTE_LINE_ID,
10841 RELATIONSHIP_TYPE_CODE,
10842 RECIPROCAL_FLAG FROM ASO_LINE_RELATIONSHIPS
10843 WHERE EXISTS
10844 (SELECT 'x' FROM aso_quote_lines_all aql
10845 WHERE aql.quote_header_id = x_quote_header_id
10846 AND aql.quote_line_id = aso_line_relationships.quote_line_id)
10847 AND EXISTS
10848 (SELECT 'x' FROM aso_quote_lines_all aql
10849 WHERE aql.quote_header_id = x_quote_header_id
10850 AND aql.quote_line_id = aso_line_relationships.related_quote_line_id);
10851
10852 */
10853
10854
10855 /* Commented by Biplabi Mishra to change the IN to EXISTS 04/30/01
10856
10857 CURSOR c_price_adj_rel (x_quote_header_id NUMBER) IS
10858 SELECT
10859 QUOTE_SHIPMENT_ID,
10860 SECURITY_GROUP_ID,
10861 OBJECT_VERSION_NUMBER,
10862 ADJ_RELATIONSHIP_ID,
10863 CREATION_DATE,
10864 CREATED_BY,
10865 LAST_UPDATE_DATE,
10866 LAST_UPDATED_BY,
10867 LAST_UPDATE_LOGIN,
10868 PROGRAM_APPLICATION_ID,
10869 PROGRAM_ID,
10870 PROGRAM_UPDATE_DATE,
10871 REQUEST_ID,
10872 QUOTE_LINE_ID,
10873 PRICE_ADJUSTMENT_ID,
10874 RLTD_PRICE_ADJ_ID
10875 FROM ASO_PRICE_ADJ_RELATIONSHIPS
10876 WHERE price_adjustment_id IN
10877 (SELECT price_adjustment_id FROM aso_price_adjustments
10878 WHERE quote_header_id = x_quote_header_id)
10879 AND quote_line_id IN
10880 (SELECT quote_line_id FROM aso_quote_lines_all
10881 WHERE quote_header_id = x_quote_header_id);
10882 */
10883 /*
10884 CURSOR c_price_adj_rel (x_quote_header_id NUMBER) IS
10885 SELECT
10886 apr.QUOTE_SHIPMENT_ID,
10887 --apr.SECURITY_GROUP_ID,
10888 apr.OBJECT_VERSION_NUMBER,
10889 apr.ADJ_RELATIONSHIP_ID,
10890 apr.CREATION_DATE,
10891 apr.CREATED_BY,
10892 apr.LAST_UPDATE_DATE,
10893 apr.LAST_UPDATED_BY,
10894 apr.LAST_UPDATE_LOGIN,
10895 apr.PROGRAM_APPLICATION_ID,
10896 apr.PROGRAM_ID,
10897 apr.PROGRAM_UPDATE_DATE,
10898 apr.REQUEST_ID,
10899 apr.QUOTE_LINE_ID,
10900 apr.PRICE_ADJUSTMENT_ID,
10901 apr.RLTD_PRICE_ADJ_ID
10902 FROM ASO_PRICE_ADJ_RELATIONSHIPS apr,
10903 ASO_PRICE_ADJUSTMENTS apa
10904 WHERE apr.price_adjustment_id = apa.price_adjustment_id
10905 AND apa.quote_header_id = x_quote_header_id
10906 AND EXISTS (select 'x' from aso_quote_lines_all aql
10907 where aql.quote_header_id = x_quote_header_id
10908 and aql.quote_line_id = apr.quote_line_id);
10909 */
10910
10911 /* -- original cpy_qte
10912 CURSOR C_Qte_Number IS
10913 SELECT ASO_QUOTE_NUMBER_S.nextval
10914 FROM sys.dual;
10915
10916 CURSOR C_Qte_Version (X_qte_number NUMBER) IS
10917 SELECT max(quote_version)
10918 FROM ASO_QUOTE_HEADERS_ALL
10919 WHERE quote_number = X_qte_number;
10920
10921 CURSOR C_Qte_Status_Id (c_status_code VARCHAR2) IS
10922 SELECT quote_status_id
10923 FROM ASO_QUOTE_STATUSES_B
10924 WHERE status_code = c_status_code;
10925 --WHERE status_code = 'DRAFT';
10926
10927 CURSOR C_Qte_Status_Trans (from_id NUMBER, to_id NUMBER) IS
10928 SELECT enabled_flag
10929 FROM ASO_QUOTE_STATUS_TRANSITIONS
10930 WHERE from_status_id = from_id AND to_status_id = to_id;
10931
10932 CURSOR C_Qte_Number_exists (X_qte_number NUMBER) IS
10933 SELECT quote_number
10934 FROM ASO_QUOTE_HEADERS_ALL
10935 WHERE quote_number = X_qte_number;
10936
10937 l_api_name CONSTANT VARCHAR2(30) := 'Copy_quote';
10938 l_api_version_number CONSTANT NUMBER := 1.0;
10939 l_return_status VARCHAR2(1);
10940 l_first_version VARCHAR2(1) := FND_API.G_TRUE;
10941 l_val VARCHAR2(1);
10942 l_enabled_flag VARCHAR2(1);
10943 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
10944 l_HEADER_RELATIONSHIP_ID NUMBER;
10945 l_New_Version VARCHAR2(1) := p_New_Version;
10946 l_qte_num NUMBER;
10947 */ -- original cpy_qte
10948
10949 CURSOR C_Get_Hdr_Info(qte_hdr_id NUMBER) IS
10950 SELECT Quote_Expiration_Date, Resource_Id, Resource_Grp_Id
10951 FROM ASO_QUOTE_HEADERS_ALL
10952 WHERE Quote_Header_Id = qte_hdr_id;
10953
10954 l_api_name CONSTANT VARCHAR2(30) := 'Copy_quote';
10955 l_api_version_number CONSTANT NUMBER := 1.0;
10956
10957 lx_qte_number NUMBER;
10958 l_Copy_Quote_Header_Rec ASO_COPY_QUOTE_PUB.Copy_Quote_Header_Rec_Type
10959 := ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Header_Rec;
10960 l_Copy_Quote_Control_Rec ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type
10961 := ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Control_Rec;
10962
10963 BEGIN
10964 -- Standard Start of API savepoint
10965 SAVEPOINT COPY_QUOTE_PVT;
10966
10967 -- Standard call to check for call compatibility.
10968 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
10969 p_api_version_number,
10970 l_api_name,
10971 G_PKG_NAME) THEN
10972 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10973 END IF;
10974
10975 -- Initialize message list if p_init_msg_list is set to TRUE.
10976 IF FND_API.to_Boolean( p_init_msg_list ) THEN
10977 FND_MSG_PUB.initialize;
10978 END IF;
10979
10980 -- Debug Message
10981 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
10982 FND_MESSAGE.Set_Name('ASO', 'Copy Quote API: Start');
10983 FND_MSG_PUB.Add;
10984 END IF;
10985
10986 IF aso_debug_pub.g_debug_flag = 'Y' THEN
10987 aso_debug_pub.add('p_qte_header_id: '||p_qte_header_id,1,'N');
10988 aso_debug_pub.add('p_qte_number: '||p_qte_number,1,'N');
10989 aso_debug_pub.add('p_copy_only_header: '||p_copy_only_header,1,'N');
10990 aso_debug_pub.add('p_new_version: '||p_new_version,1,'N');
10991 aso_debug_pub.add('p_control_rec.copy_att_flag: '||p_control_rec.copy_att_flag,1,'N');
10992 aso_debug_pub.add('p_control_rec.copy_notes_flag: '||p_control_rec.copy_notes_flag,1,'N');
10993 aso_debug_pub.add('p_control_rec.copy_task_flag: '||p_control_rec.copy_task_flag,1,'N');
10994 END IF;
10995
10996 OPEN C_Get_Hdr_Info(p_qte_header_id);
10997 FETCH C_Get_Hdr_Info INTO l_Copy_Quote_Header_Rec.Quote_Expiration_Date,
10998 l_Copy_Quote_Header_Rec.Resource_id, l_Copy_Quote_Header_Rec.Resource_Grp_Id;
10999 CLOSE C_Get_Hdr_Info;
11000
11001 IF l_Copy_Quote_Header_Rec.Quote_Expiration_Date IS NULL THEN
11002 l_Copy_Quote_Header_Rec.Quote_Expiration_Date := FND_API.G_MISS_DATE;
11003 END IF;
11004
11005 IF l_Copy_Quote_Header_Rec.Resource_Id IS NULL THEN
11006 l_Copy_Quote_Header_Rec.Resource_Id := FND_API.G_MISS_NUM;
11007 END IF;
11008
11009 IF l_Copy_Quote_Header_Rec.Resource_Grp_Id IS NULL THEN
11010 l_Copy_Quote_Header_Rec.Resource_Grp_Id := FND_API.G_MISS_NUM;
11011 END IF;
11012
11013 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11014 aso_debug_pub.add('l_Copy_Quote_Header_Rec.Quote_Expiration_Date: '||l_Copy_Quote_Header_Rec.Quote_Expiration_Date,1,'N');
11015 aso_debug_pub.add('l_Copy_Quote_Header_Rec.Resource_Id: '||l_Copy_Quote_Header_Rec.Resource_Id,1,'N');
11016 aso_debug_pub.add('l_Copy_Quote_Header_Rec.Resource_Grp_Id: '||l_Copy_Quote_Header_Rec.Resource_Grp_Id,1,'N');
11017 END IF;
11018
11019 l_Copy_Quote_Header_Rec.quote_header_id := p_qte_header_id;
11020 l_Copy_Quote_Header_Rec.quote_number := p_qte_number;
11021
11022 l_Copy_Quote_Control_Rec.copy_header_only := p_copy_only_header;
11023 l_Copy_Quote_Control_Rec.New_Version := p_new_version;
11024 IF p_control_rec.copy_att_flag = 'Y' THEN
11025 l_Copy_Quote_Control_Rec.Copy_Attachment := FND_API.G_TRUE;
11026 ELSIF p_control_rec.copy_att_flag = 'N' THEN
11027 l_Copy_Quote_Control_Rec.Copy_Attachment := FND_API.G_FALSE;
11028 END IF;
11029
11030 IF p_control_rec.copy_notes_flag = 'Y' THEN
11031 l_Copy_Quote_Control_Rec.Copy_Note := FND_API.G_TRUE;
11032 ELSIF p_control_rec.copy_notes_flag = 'N' THEN
11033 l_Copy_Quote_Control_Rec.Copy_Note := FND_API.G_FALSE;
11034 END IF;
11035
11036 IF p_control_rec.copy_task_flag = 'Y' THEN
11037 l_Copy_Quote_Control_Rec.Copy_Task := FND_API.G_TRUE;
11038 ELSIF p_control_rec.copy_task_flag = 'N' THEN
11039 l_Copy_Quote_Control_Rec.Copy_Task := FND_API.G_FALSE;
11040 END IF;
11041
11042 ASO_COPY_QUOTE_PVT.Copy_Quote(
11043 P_Api_Version_Number => p_api_version_number,
11044 P_Init_Msg_List => p_init_msg_list,
11045 P_Commit => p_commit,
11046 P_Copy_Quote_Header_Rec => l_Copy_Quote_Header_Rec,
11047 P_Copy_Quote_Control_Rec => l_Copy_Quote_Control_Rec,
11048 X_Qte_Header_Id => X_Qte_Header_Id,
11049 X_Qte_Number => lX_Qte_Number,
11050 X_Return_Status => X_Return_Status,
11051 X_Msg_Count => X_Msg_Count,
11052 X_Msg_Data => X_Msg_Data );
11053
11054
11055 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11056 aso_debug_pub.add('After Copy_Qte:X_Return_Status: '||X_Return_Status,1,'N');
11057 aso_debug_pub.add('After Copy_Qte:X_Qte_Header_Id: '||X_Qte_Header_Id,1,'N');
11058 END IF;
11059
11060 /* -- original cpy_qte
11061
11062 -- Initialize API return status to success
11063 l_return_status := FND_API.G_RET_STS_SUCCESS;
11064
11065 --
11066 -- API body
11067 --
11068 -- ******************************************************************
11069 -- Validate Environment
11070 -- ******************************************************************
11071 IF FND_GLOBAL.User_Id IS NULL THEN
11072 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11073 FND_MESSAGE.Set_Name('ASO', 'UT_CANNOT_GET_PROFILE_VALUE');
11074 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
11075 FND_MSG_PUB.ADD;
11076 END IF;
11077 RAISE FND_API.G_EXC_ERROR;
11078 END IF;
11079 -- ******************************************************************
11080 IF (p_validation_level = FND_API.G_VALID_LEVEL_FULL) THEN
11081 OPEN C_Validate_Quote (p_qte_header_id);
11082 FETCH C_Validate_Quote into l_val;
11083 IF C_Validate_Quote%NOTFOUND THEN
11084 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11085 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
11086 FND_MESSAGE.Set_Token('COLUMN', 'ORIGINAL_QUOTE_ID', FALSE);
11087 FND_MESSAGE.Set_Token('VALUE', TO_CHAR(p_qte_header_id), FALSE);
11088 FND_MSG_PUB.ADD;
11089 END IF;
11090 CLOSE C_Validate_Quote;
11091 RAISE FND_API.G_EXC_ERROR;
11092 END IF;
11093 CLOSE C_Validate_Quote;
11094 END IF;
11095
11096 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11097 aso_debug_pub.add('Copy_Quote - Begin- before copy_rows ', 1, 'Y');
11098 aso_debug_pub.add('Copy_Quote - P_Qte_Header_Id: '||P_Qte_Header_Id, 1, 'N');
11099 aso_debug_pub.add('Copy_Quote - P_Last_Update_Date '||P_Last_Update_Date, 1, 'N');
11100 aso_debug_pub.add('Copy_Quote - P_Copy_Only_Header '||P_Copy_Only_Header, 1, 'N');
11101 aso_debug_pub.add('Copy_Quote - P_New_Version '||P_New_Version, 1, 'N');
11102 aso_debug_pub.add('Copy_Quote - P_Qte_Status_Id '||P_Qte_Status_Id, 1, 'N');
11103 aso_debug_pub.add('Copy_Quote - P_Qte_Number '||P_Qte_Number, 1, 'N');
11104 END IF;
11105
11106 l_qte_header_rec := ASO_UTILITY_PVT.Query_Header_Row(p_qte_header_id);
11107 IF (p_new_version = FND_API.G_TRUE AND
11108 l_qte_header_rec.quote_number = p_qte_number) THEN
11109 l_new_version := FND_API.G_TRUE;
11110 END IF;
11111 IF (l_new_version = FND_API.G_FALSE) THEN
11112 IF (p_qte_number IS NULL OR p_qte_number = FND_API.G_MISS_NUM) THEN
11113 IF (NVL(FND_PROFILE.Value('ASO_AUTO_NUMBERING'), 'Y') = 'Y') THEN
11114 OPEN C_Qte_Number;
11115 FETCH C_Qte_Number INTO l_qte_header_rec.quote_number;
11116 CLOSE C_Qte_Number;
11117 l_qte_header_rec.quote_version := 1;
11118 l_first_version := FND_API.G_TRUE;
11119 ELSE
11120 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11121 FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
11122 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_NUMBER', FALSE);
11123 FND_MSG_PUB.ADD;
11124 END IF;
11125 RAISE FND_API.G_EXC_ERROR;
11126 END IF; -- profile auto numbering
11127 ELSE
11128 OPEN C_Qte_Number_Exists(p_qte_number);
11129 FETCH C_Qte_Number_Exists into l_qte_num;
11130 CLOSE C_Qte_Number_Exists;
11131 IF (FND_PROFILE.Value('ASO_AUTO_NUMBERING') = 'N'
11132 AND l_qte_num = p_qte_number) THEN
11133 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
11134 THEN
11135 */ -- original cpy_qte
11136 /* FND_MESSAGE.Set_Name('ASO', 'CANNOT COPY TO EXISTING QUOTE');
11137 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_NUMBER', FALSE);
11138 */
11139 /* -- original cpy_qte
11140 FND_MESSAGE.Set_Name('ASO', 'ASO_CANNOT_COPY_QTE');
11141 FND_MSG_PUB.ADD;
11142 END IF;
11143 RAISE FND_API.G_EXC_ERROR;
11144 ELSE
11145 l_qte_header_rec.quote_number := p_qte_number;
11146 l_qte_header_rec.quote_version := 1;
11147 l_first_version := FND_API.G_TRUE;
11148 END IF;
11149 END IF; -- p_qte_number is null
11150 ELSE -- p_new_version
11151
11152 IF P_Qte_Number IS NOT NULL AND P_Qte_Number <> FND_API.G_MISS_NUM THEN
11153
11154 OPEN C_Qte_Number_Exists(p_qte_number);
11155 FETCH C_Qte_Number_Exists into l_qte_num;
11156
11157 IF C_Qte_Number_Exists%NOTFOUND THEN
11158
11159 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11160 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_ID');
11161 FND_MESSAGE.Set_Token('COLUMN', 'QUOTE_NUMBER', FALSE);
11162 FND_MSG_PUB.ADD;
11163 END IF;
11164
11165 CLOSE C_Qte_Number_Exists;
11166 RAISE FND_API.G_EXC_ERROR;
11167
11168 ELSE
11169 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11170 aso_debug_pub.add('Copy_Quote - P_Qte_Number Exists', 1, 'N');
11171 END IF;
11172 l_qte_header_rec.quote_number := P_Qte_Number;
11173 CLOSE C_Qte_Number_Exists;
11174
11175 END IF;
11176
11177 END IF;
11178
11179 OPEN C_Qte_Version(l_qte_header_rec.quote_number);
11180 FETCH C_Qte_Version into l_qte_header_rec.quote_version;
11181
11182 l_qte_header_rec.quote_version := nvl(l_qte_header_rec.quote_version, 0) + 1;
11183 CLOSE C_Qte_Version;
11184 l_first_version := FND_API.G_FALSE;
11185 END IF;
11186
11187 IF (p_qte_status_id IS NULL OR p_qte_status_id = FND_API.G_MISS_NUM) THEN
11188 --OPEN c_qte_status_id ('DRAFT');
11189 OPEN c_qte_status_id ( fnd_profile.value( 'ASO_DEFAULT_STATUS_CODE' ) );
11190 FETCH c_qte_status_id INTO l_qte_header_rec.quote_status_id;
11191 CLOSE c_qte_status_id;
11192 ELSE
11193 IF l_first_version = FND_API.G_FALSE THEN
11194 OPEN c_qte_status_trans (l_qte_header_rec.quote_status_id, p_qte_status_id);
11195 FETCH c_qte_status_trans INTO l_enabled_flag;
11196 IF c_qte_status_trans%NOTFOUND OR l_enabled_flag = 'N' THEN
11197 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11198 FND_MESSAGE.Set_Name('ASO', 'ASO_API_INVALID_STATUS_TRANS');
11199 FND_MSG_PUB.ADD;
11200 END IF;
11201 CLOSE c_qte_status_trans;
11202 RAISE FND_API.G_EXC_ERROR;
11203 END IF;
11204 CLOSE c_qte_status_trans;
11205 END IF;
11206 l_qte_header_rec.quote_status_id := p_qte_status_id;
11207 END IF;
11208
11209 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11210 aso_debug_pub.add('Copy_Quote - Begin- before copy_rows ', 1, 'Y');
11211 END IF;
11212
11213 Copy_Rows(
11214 P_qte_Header_Rec => l_qte_header_rec,
11215 P_Header_Only => P_Copy_Only_Header,
11216 P_control_rec => P_control_rec,
11217 X_Qte_Header_id => x_qte_header_id,
11218 X_Return_Status => l_return_status,
11219 X_Msg_Count => x_msg_count,
11220 X_Msg_Data => x_msg_data);
11221 IF aso_debug_pub.g_debug_flag = 'Y' THEN
11222 aso_debug_pub.add('Copy_Quote - After copy_rows '||l_return_status, 1, 'Y');
11223 END IF;
11224 -- create header relationship
11225
11226 ASO_HEADER_RELATIONSHIPS_PKG.Insert_Row(
11227 px_HEADER_RELATIONSHIP_ID => l_HEADER_RELATIONSHIP_ID,
11228 p_CREATION_DATE => SYSDATE,
11229 p_CREATED_BY => G_USER_ID,
11230 p_LAST_UPDATE_DATE => SYSDATE,
11231 p_LAST_UPDATED_BY => G_USER_ID,
11232 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
11233 p_REQUEST_ID => NULL,
11234 p_PROGRAM_APPLICATION_ID => NULL,
11235 p_PROGRAM_ID => NULL,
11236 p_PROGRAM_UPDATE_DATE => NULL,
11237 p_QUOTE_HEADER_ID => p_qte_header_id,
11238 p_RELATED_HEADER_ID => x_qte_header_id,
11239 p_RELATIONSHIP_TYPE_CODE => 'COPY',
11240 p_RECIPROCAL_FLAG => NULL,
11241 P_OBJECT_VERSION_NUMBER => FND_API.G_MISS_NUM
11242 );
11243
11244
11245 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
11246 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
11247 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11248 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
11249 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
11250 FND_MSG_PUB.ADD;
11251 END IF;
11252 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11253 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
11254 x_return_status := FND_API.G_RET_STS_ERROR;
11255 */ -- original cpy_qte
11256 /* IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
11257 FND_MESSAGE.Set_Name('ASO', 'ASO_API_EXP_ERROR');
11258 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
11259 FND_MSG_PUB.ADD;
11260 END IF; */
11261 /* -- original cpy_qte
11262 RAISE FND_API.G_EXC_ERROR;
11263 END IF;
11264 x_return_status := FND_API.G_RET_STS_SUCCESS;
11265 --
11266 -- End of API body
11267 --
11268 */ -- original cpy_qte
11269 -- Standard check for p_commit
11270 IF FND_API.to_Boolean( p_commit )
11271 THEN
11272 COMMIT WORK;
11273 END IF;
11274
11275
11276
11277 -- Standard call to get message count and if count is 1, get message info.
11278 FND_MSG_PUB.Count_And_Get
11279 ( p_count => x_msg_count,
11280 p_data => x_msg_data
11281 );
11282
11283 EXCEPTION
11284 WHEN FND_API.G_EXC_ERROR THEN
11285 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11286 P_API_NAME => L_API_NAME
11287 ,P_PKG_NAME => G_PKG_NAME
11288 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
11289 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11290 ,X_MSG_COUNT => X_MSG_COUNT
11291 ,X_MSG_DATA => X_MSG_DATA
11292 ,X_RETURN_STATUS => X_RETURN_STATUS);
11293
11294 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11295 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11296 P_API_NAME => L_API_NAME
11297 ,P_PKG_NAME => G_PKG_NAME
11298 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
11299 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11300 ,X_MSG_COUNT => X_MSG_COUNT
11301 ,X_MSG_DATA => X_MSG_DATA
11302 ,X_RETURN_STATUS => X_RETURN_STATUS);
11303
11304 WHEN OTHERS THEN
11305 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11306 P_API_NAME => L_API_NAME
11307 ,P_PKG_NAME => G_PKG_NAME
11308 ,P_SQLCODE => SQLCODE
11309 ,P_SQLERRM => SQLERRM
11310 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
11311 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
11312 ,X_MSG_COUNT => X_MSG_COUNT
11313 ,X_MSG_DATA => X_MSG_DATA
11314 ,X_RETURN_STATUS => X_RETURN_STATUS);
11315 END Copy_Quote;
11316
11317 -- This procudure defines the columns for the Dynamic SQL.
11318 PROCEDURE Define_Columns(
11319 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
11320 p_cur_get_QTE IN NUMBER
11321 )
11322 IS
11323 BEGIN
11324
11325 -- define all columns for ASO_QUOTE_HEADERS_V view
11326 ----dbms_sql.define_column(p_cur_get_QTE, 1, P_Qte_Header_Rec.QUOTE_HEADER_ID);
11327 ----dbms_sql.define_column(p_cur_get_QTE, 2, P_Qte_Header_Rec.ORG_ID);
11328 ----dbms_sql.define_column(p_cur_get_QTE, 3, P_Qte_Header_Rec.REQUEST_ID);
11329 ----dbms_sql.define_column(p_cur_get_QTE, 4, P_Qte_Header_Rec.ORIGINAL_SYSTEM_REFERENCE, 240);
11330 ----dbms_sql.define_column(p_cur_get_QTE, 5, P_Qte_Header_Rec.EMPLOYEE_PERSON_ID);
11331 ----dbms_sql.define_column(p_cur_get_QTE, 6, P_Qte_Header_Rec.SALESREP_FIRST_NAME, 20);
11332 ----dbms_sql.define_column(p_cur_get_QTE, 7, P_Qte_Header_Rec.SALESREP_LAST_NAME, 40);
11333 ----dbms_sql.define_column(p_cur_get_QTE, 8, P_Qte_Header_Rec.PRICE_LIST_ID);
11334 ----dbms_sql.define_column(p_cur_get_QTE, 9, P_Qte_Header_Rec.PRICE_LIST_NAME, 0);
11335 ----dbms_sql.define_column(p_cur_get_QTE, 10, P_Qte_Header_Rec.QUOTE_STATUS_ID);
11336 ----dbms_sql.define_column(p_cur_get_QTE, 11, P_Qte_Header_Rec.QUOTE_STATUS_CODE, 30);
11337 ----dbms_sql.define_column(p_cur_get_QTE, 12, P_Qte_Header_Rec.QUOTE_STATUS, 240);
11338 ----dbms_sql.define_column(p_cur_get_QTE, 15, P_Qte_Header_Rec.QUOTE_SOURCE_CODE, 15);
11339 ----dbms_sql.define_column(p_cur_get_QTE, 16, P_Qte_Header_Rec.PARTY_ID);
11340 ----dbms_sql.define_column(p_cur_get_QTE, 17, P_Qte_Header_Rec.PARTY_NAME, 255);
11341 ----dbms_sql.define_column(p_cur_get_QTE, 18, P_Qte_Header_Rec.PARTY_TYPE, 30);
11342 ----dbms_sql.define_column(p_cur_get_QTE, 19, P_Qte_Header_Rec.PERSON_FIRST_NAME, 150);
11343 ----dbms_sql.define_column(p_cur_get_QTE, 20, P_Qte_Header_Rec.PERSON_MIDDLE_NAME, 60);
11344 ----dbms_sql.define_column(p_cur_get_QTE, 21, P_Qte_Header_Rec.PERSON_LAST_NAME, 150);
11345 ----dbms_sql.define_column(p_cur_get_QTE, 22, P_Qte_Header_Rec.ORG_CONTACT_ID);
11346 ----dbms_sql.define_column(p_cur_get_QTE, 26, P_Qte_Header_Rec.QUOTE_NAME, 50);
11347 ----dbms_sql.define_column(p_cur_get_QTE, 27, P_Qte_Header_Rec.QUOTE_NUMBER);
11348 ----dbms_sql.define_column(p_cur_get_QTE, 28, P_Qte_Header_Rec.QUOTE_VERSION);
11349 ----dbms_sql.define_column(p_cur_get_QTE, 29, P_Qte_Header_Rec.QUOTE_EXPIRATION_DATE);
11350 ----dbms_sql.define_column(p_cur_get_QTE, 30, P_Qte_Header_Rec.QUOTE_CATEGORY_CODE, 30);
11351 ----dbms_sql.define_column(p_cur_get_QTE, 31, P_Qte_Header_Rec.CURRENCY_CODE, 15);
11352 ----dbms_sql.define_column(p_cur_get_QTE, 32, P_Qte_Header_Rec.EXCHANGE_RATE);
11353 ----dbms_sql.define_column(p_cur_get_QTE, 33, P_Qte_Header_Rec.EXCHANGE_TYPE_CODE, 15);
11354 ----dbms_sql.define_column(p_cur_get_QTE, 34, P_Qte_Header_Rec.EXCHANGE_RATE_DATE);
11355 ----dbms_sql.define_column(p_cur_get_QTE, 39, P_Qte_Header_Rec.ORDERED_DATE);
11356 ----dbms_sql.define_column(p_cur_get_QTE, 40, P_Qte_Header_Rec.ORDER_TYPE_ID);
11357 ----dbms_sql.define_column(p_cur_get_QTE, 41, P_Qte_Header_Rec.ORDER_TYPE_NAME, 80);
11358 ----dbms_sql.define_column(p_cur_get_QTE, 45, P_Qte_Header_Rec.TOTAL_LIST_PRICE);
11359 ----dbms_sql.define_column(p_cur_get_QTE, 46, P_Qte_Header_Rec.TOTAL_ADJUSTED_AMOUNT);
11360 ----dbms_sql.define_column(p_cur_get_QTE, 47, P_Qte_Header_Rec.TOTAL_ADJUSTED_PERCENT);
11361 ----dbms_sql.define_column(p_cur_get_QTE, 48, P_Qte_Header_Rec.TOTAL_TAX);
11362 ----dbms_sql.define_column(p_cur_get_QTE, 49, P_Qte_Header_Rec.SURCHARGE);
11363 ----dbms_sql.define_column(p_cur_get_QTE, 50, P_Qte_Header_Rec.TOTAL_SHIPPING_CHARGE);
11364 ----dbms_sql.define_column(p_cur_get_QTE, 51, P_Qte_Header_Rec.TOTAL_QUOTE_PRICE);
11365 ----dbms_sql.define_column(p_cur_get_QTE, 52, P_Qte_Header_Rec.ACCOUNTING_RULE_ID);
11366 ----dbms_sql.define_column(p_cur_get_QTE, 53, P_Qte_Header_Rec.INVOICING_RULE_ID);
11367 ----dbms_sql.define_column(p_cur_get_QTE, 73, P_Qte_Header_Rec.INVOICE_TO_PARTY_ID);
11368 ----dbms_sql.define_column(p_cur_get_QTE, 74, P_Qte_Header_Rec.INVOICE_TO_PARTY_SITE_ID);
11369 ----dbms_sql.define_column(p_cur_get_QTE, 75, P_Qte_Header_Rec.INVOICE_TO_PARTY_NAME, 255);
11370 ----dbms_sql.define_column(p_cur_get_QTE, 76, P_Qte_Header_Rec.INVOICE_TO_CONTACT_FIRST_NAME, 150);
11371 ----dbms_sql.define_column(p_cur_get_QTE, 77, P_Qte_Header_Rec.INVOICE_TO_CONTACT_MIDDLE_NAME, 60);
11372 ----dbms_sql.define_column(p_cur_get_QTE, 78, P_Qte_Header_Rec.INVOICE_TO_CONTACT_LAST_NAME, 150);
11373 ----dbms_sql.define_column(p_cur_get_QTE, 79, P_Qte_Header_Rec.INVOICE_TO_ADDRESS1, 240);
11374 ----dbms_sql.define_column(p_cur_get_QTE, 80, P_Qte_Header_Rec.INVOICE_TO_ADDRESS2, 240);
11375 ----dbms_sql.define_column(p_cur_get_QTE, 81, P_Qte_Header_Rec.INVOICE_TO_ADDRESS3, 240);
11376 ----dbms_sql.define_column(p_cur_get_QTE, 82, P_Qte_Header_Rec.INVOICE_TO_ADDRESS4, 240);
11377 ----dbms_sql.define_column(p_cur_get_QTE, 83, P_Qte_Header_Rec.INVOICE_TO_COUNTRY_CODE, 60);
11378 ----dbms_sql.define_column(p_cur_get_QTE, 84, P_Qte_Header_Rec.INVOICE_TO_COUNTRY, 80);
11379 ----dbms_sql.define_column(p_cur_get_QTE, 85, P_Qte_Header_Rec.INVOICE_TO_CITY, 60);
11380 ----dbms_sql.define_column(p_cur_get_QTE, 86, P_Qte_Header_Rec.INVOICE_TO_POSTAL_CODE, 60);
11381 ----dbms_sql.define_column(p_cur_get_QTE, 87, P_Qte_Header_Rec.INVOICE_TO_STATE, 60);
11382 ----dbms_sql.define_column(p_cur_get_QTE, 88, P_Qte_Header_Rec.INVOICE_TO_PROVINCE, 60);
11383 ----dbms_sql.define_column(p_cur_get_QTE, 89, P_Qte_Header_Rec.INVOICE_TO_COUNTY, 60);
11384 ----dbms_sql.define_column(p_cur_get_QTE, 92, P_Qte_Header_Rec.CONTRACT_ID);
11385 ----dbms_sql.define_column(p_cur_get_QTE, 93, P_Qte_Header_Rec.ATTRIBUTE_CATEGORY, 30);
11386 ----dbms_sql.define_column(p_cur_get_QTE, 94, P_Qte_Header_Rec.ATTRIBUTE1, 150);
11387 ----dbms_sql.define_column(p_cur_get_QTE, 95, P_Qte_Header_Rec.ATTRIBUTE2, 150);
11388 ----dbms_sql.define_column(p_cur_get_QTE, 96, P_Qte_Header_Rec.ATTRIBUTE3, 150);
11389 ----dbms_sql.define_column(p_cur_get_QTE, 97, P_Qte_Header_Rec.ATTRIBUTE4, 150);
11390 ----dbms_sql.define_column(p_cur_get_QTE, 98, P_Qte_Header_Rec.ATTRIBUTE5, 150);
11391 ----dbms_sql.define_column(p_cur_get_QTE, 99, P_Qte_Header_Rec.ATTRIBUTE6, 150);
11392 ----dbms_sql.define_column(p_cur_get_QTE, 100, P_Qte_Header_Rec.ATTRIBUTE7, 150);
11393 ----dbms_sql.define_column(p_cur_get_QTE, 101, P_Qte_Header_Rec.ATTRIBUTE8, 150);
11394 ----dbms_sql.define_column(p_cur_get_QTE, 102, P_Qte_Header_Rec.ATTRIBUTE9, 150);
11395 ----dbms_sql.define_column(p_cur_get_QTE, 103, P_Qte_Header_Rec.ATTRIBUTE10, 150);
11396 ----dbms_sql.define_column(p_cur_get_QTE, 104, P_Qte_Header_Rec.ATTRIBUTE11, 150);
11397 ----dbms_sql.define_column(p_cur_get_QTE, 105, P_Qte_Header_Rec.ATTRIBUTE12, 150);
11398 ----dbms_sql.define_column(p_cur_get_QTE, 106, P_Qte_Header_Rec.ATTRIBUTE13, 150);
11399 ----dbms_sql.define_column(p_cur_get_QTE, 107, P_Qte_Header_Rec.ATTRIBUTE14, 150);
11400 ----dbms_sql.define_column(p_cur_get_QTE, 108, P_Qte_Header_Rec.ATTRIBUTE15, 150);
11401
11402 null;
11403
11404 END Define_Columns;
11405
11406 -- This procudure gets column values by the Dynamic SQL.
11407 PROCEDURE Get_Column_Values(
11408 p_cur_get_QTE IN NUMBER,
11409 X_Qte_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Rec_Type
11410 )
11411 IS
11412 BEGIN
11413
11414 -- get all column values for ASO_QUOTE_HEADERS_V table
11415 ----dbms_sql.column_value(p_cur_get_QTE, 2, X_Qte_Header_Rec.QUOTE_HEADER_ID);
11416 ----dbms_sql.column_value(p_cur_get_QTE, 3, X_Qte_Header_Rec.ORG_ID);
11417 ----dbms_sql.column_value(p_cur_get_QTE, 4, X_Qte_Header_Rec.REQUEST_ID);
11418 ----dbms_sql.column_value(p_cur_get_QTE, 5, X_Qte_Header_Rec.ORIGINAL_SYSTEM_REFERENCE);
11419 ----dbms_sql.column_value(p_cur_get_QTE, 6, X_Qte_Header_Rec.EMPLOYEE_PERSON_ID);
11420 ----dbms_sql.column_value(p_cur_get_QTE, 7, X_Qte_Header_Rec.SALESREP_FIRST_NAME);
11421 ----dbms_sql.column_value(p_cur_get_QTE, 8, X_Qte_Header_Rec.SALESREP_LAST_NAME);
11422 ----dbms_sql.column_value(p_cur_get_QTE, 9, X_Qte_Header_Rec.PRICE_LIST_ID);
11423 ----dbms_sql.column_value(p_cur_get_QTE, 10, X_Qte_Header_Rec.PRICE_LIST_NAME);
11424 ----dbms_sql.column_value(p_cur_get_QTE, 11, X_Qte_Header_Rec.QUOTE_STATUS_ID);
11425 ----dbms_sql.column_value(p_cur_get_QTE, 12, X_Qte_Header_Rec.QUOTE_STATUS_CODE);
11426 ----dbms_sql.column_value(p_cur_get_QTE, 13, X_Qte_Header_Rec.QUOTE_STATUS);
11427 ----dbms_sql.column_value(p_cur_get_QTE, 16, X_Qte_Header_Rec.QUOTE_SOURCE_CODE);
11428 ----dbms_sql.column_value(p_cur_get_QTE, 17, X_Qte_Header_Rec.PARTY_ID);
11429 ----dbms_sql.column_value(p_cur_get_QTE, 18, X_Qte_Header_Rec.PARTY_NAME);
11430 ----dbms_sql.column_value(p_cur_get_QTE, 19, X_Qte_Header_Rec.PARTY_TYPE);
11431 ----dbms_sql.column_value(p_cur_get_QTE, 20, X_Qte_Header_Rec.PERSON_FIRST_NAME);
11432 ----dbms_sql.column_value(p_cur_get_QTE, 21, X_Qte_Header_Rec.PERSON_MIDDLE_NAME);
11433 ----dbms_sql.column_value(p_cur_get_QTE, 22, X_Qte_Header_Rec.PERSON_LAST_NAME);
11434 ----dbms_sql.column_value(p_cur_get_QTE, 23, X_Qte_Header_Rec.ORG_CONTACT_ID);
11435 ----dbms_sql.column_value(p_cur_get_QTE, 27, X_Qte_Header_Rec.QUOTE_NAME);
11436 ----dbms_sql.column_value(p_cur_get_QTE, 28, X_Qte_Header_Rec.QUOTE_NUMBER);
11437 ----dbms_sql.column_value(p_cur_get_QTE, 29, X_Qte_Header_Rec.QUOTE_VERSION);
11438 ----dbms_sql.column_value(p_cur_get_QTE, 30, X_Qte_Header_Rec.QUOTE_EXPIRATION_DATE);
11439 ----dbms_sql.column_value(p_cur_get_QTE, 31, X_Qte_Header_Rec.QUOTE_CATEGORY_CODE);
11440 ----dbms_sql.column_value(p_cur_get_QTE, 32, X_Qte_Header_Rec.CURRENCY_CODE);
11441 ----dbms_sql.column_value(p_cur_get_QTE, 33, X_Qte_Header_Rec.EXCHANGE_RATE);
11442 ----dbms_sql.column_value(p_cur_get_QTE, 34, X_Qte_Header_Rec.EXCHANGE_TYPE_CODE);
11443 ----dbms_sql.column_value(p_cur_get_QTE, 35, X_Qte_Header_Rec.EXCHANGE_RATE_DATE);
11444 ----dbms_sql.column_value(p_cur_get_QTE, 40, X_Qte_Header_Rec.ORDERED_DATE);
11445 ----dbms_sql.column_value(p_cur_get_QTE, 41, X_Qte_Header_Rec.ORDER_TYPE_ID);
11446 ----dbms_sql.column_value(p_cur_get_QTE, 42, X_Qte_Header_Rec.ORDER_TYPE_NAME);
11447 ----dbms_sql.column_value(p_cur_get_QTE, 46, X_Qte_Header_Rec.TOTAL_LIST_PRICE);
11448 ----dbms_sql.column_value(p_cur_get_QTE, 47, X_Qte_Header_Rec.TOTAL_ADJUSTED_AMOUNT);
11449 ----dbms_sql.column_value(p_cur_get_QTE, 48, X_Qte_Header_Rec.TOTAL_ADJUSTED_PERCENT);
11450 ----dbms_sql.column_value(p_cur_get_QTE, 49, X_Qte_Header_Rec.TOTAL_TAX);
11451 ----dbms_sql.column_value(p_cur_get_QTE, 50, X_Qte_Header_Rec.SURCHARGE);
11452 ----dbms_sql.column_value(p_cur_get_QTE, 51, X_Qte_Header_Rec.TOTAL_SHIPPING_CHARGE);
11453 ----dbms_sql.column_value(p_cur_get_QTE, 52, X_Qte_Header_Rec.TOTAL_QUOTE_PRICE);
11454 ----dbms_sql.column_value(p_cur_get_QTE, 53, X_Qte_Header_Rec.ACCOUNTING_RULE_ID);
11455 ----dbms_sql.column_value(p_cur_get_QTE, 54, X_Qte_Header_Rec.INVOICING_RULE_ID);
11456 ----dbms_sql.column_value(p_cur_get_QTE, 74, X_Qte_Header_Rec.INVOICE_TO_PARTY_ID);
11457 ----dbms_sql.column_value(p_cur_get_QTE, 75, X_Qte_Header_Rec.INVOICE_TO_PARTY_SITE_ID);
11458 ----dbms_sql.column_value(p_cur_get_QTE, 76, X_Qte_Header_Rec.INVOICE_TO_PARTY_NAME);
11459 ----dbms_sql.column_value(p_cur_get_QTE, 77, X_Qte_Header_Rec.INVOICE_TO_CONTACT_FIRST_NAME);
11460 ----dbms_sql.column_value(p_cur_get_QTE, 78, X_Qte_Header_Rec.INVOICE_TO_CONTACT_MIDDLE_NAME);
11461 ----dbms_sql.column_value(p_cur_get_QTE, 79, X_Qte_Header_Rec.INVOICE_TO_CONTACT_LAST_NAME);
11462 ----dbms_sql.column_value(p_cur_get_QTE, 80, X_Qte_Header_Rec.INVOICE_TO_ADDRESS1);
11463 ----dbms_sql.column_value(p_cur_get_QTE, 81, X_Qte_Header_Rec.INVOICE_TO_ADDRESS2);
11464 ----dbms_sql.column_value(p_cur_get_QTE, 82, X_Qte_Header_Rec.INVOICE_TO_ADDRESS3);
11465 ----dbms_sql.column_value(p_cur_get_QTE, 83, X_Qte_Header_Rec.INVOICE_TO_ADDRESS4);
11466 ----dbms_sql.column_value(p_cur_get_QTE, 84, X_Qte_Header_Rec.INVOICE_TO_COUNTRY_CODE);
11467 ----dbms_sql.column_value(p_cur_get_QTE, 85, X_Qte_Header_Rec.INVOICE_TO_COUNTRY);
11468 ----dbms_sql.column_value(p_cur_get_QTE, 86, X_Qte_Header_Rec.INVOICE_TO_CITY);
11469 ----dbms_sql.column_value(p_cur_get_QTE, 87, X_Qte_Header_Rec.INVOICE_TO_POSTAL_CODE);
11470 ----dbms_sql.column_value(p_cur_get_QTE, 88, X_Qte_Header_Rec.INVOICE_TO_STATE);
11471 ----dbms_sql.column_value(p_cur_get_QTE, 89, X_Qte_Header_Rec.INVOICE_TO_PROVINCE);
11472 ----dbms_sql.column_value(p_cur_get_QTE, 90, X_Qte_Header_Rec.INVOICE_TO_COUNTY);
11473 ----dbms_sql.column_value(p_cur_get_QTE, 93, X_Qte_Header_Rec.CONTRACT_ID);
11474 ----dbms_sql.column_value(p_cur_get_QTE, 94, X_Qte_Header_Rec.ATTRIBUTE_CATEGORY);
11475 ----dbms_sql.column_value(p_cur_get_QTE, 95, X_Qte_Header_Rec.ATTRIBUTE1);
11476 ----dbms_sql.column_value(p_cur_get_QTE, 96, X_Qte_Header_Rec.ATTRIBUTE2);
11477 ----dbms_sql.column_value(p_cur_get_QTE, 97, X_Qte_Header_Rec.ATTRIBUTE3);
11478 ----dbms_sql.column_value(p_cur_get_QTE, 98, X_Qte_Header_Rec.ATTRIBUTE4);
11479 ----dbms_sql.column_value(p_cur_get_QTE, 99, X_Qte_Header_Rec.ATTRIBUTE5);
11480 ----dbms_sql.column_value(p_cur_get_QTE, 100, X_Qte_Header_Rec.ATTRIBUTE6);
11481 ----dbms_sql.column_value(p_cur_get_QTE, 101, X_Qte_Header_Rec.ATTRIBUTE7);
11482 ----dbms_sql.column_value(p_cur_get_QTE, 102, X_Qte_Header_Rec.ATTRIBUTE8);
11483 ----dbms_sql.column_value(p_cur_get_QTE, 103, X_Qte_Header_Rec.ATTRIBUTE9);
11484 ----dbms_sql.column_value(p_cur_get_QTE, 104, X_Qte_Header_Rec.ATTRIBUTE10);
11485 ----dbms_sql.column_value(p_cur_get_QTE, 105, X_Qte_Header_Rec.ATTRIBUTE11);
11486 ----dbms_sql.column_value(p_cur_get_QTE, 106, X_Qte_Header_Rec.ATTRIBUTE12);
11487 ----dbms_sql.column_value(p_cur_get_QTE, 107, X_Qte_Header_Rec.ATTRIBUTE13);
11488 ----dbms_sql.column_value(p_cur_get_QTE, 108, X_Qte_Header_Rec.ATTRIBUTE14);
11489 ----dbms_sql.column_value(p_cur_get_QTE, 109, X_Qte_Header_Rec.ATTRIBUTE15);
11490 null;
11491
11492 END Get_Column_Values;
11493
11494 PROCEDURE Gen_QTE_order_cl(
11495 p_order_by_rec IN ASO_QUOTE_PUB.QTE_sort_rec_type,
11496 x_order_by_cl OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
11497 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
11498 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
11499 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
11500 )
11501 IS
11502 l_order_by_cl VARCHAR2(1000) := NULL;
11503 l_util_order_by_tbl ASO_UTILITY_PVT.Util_order_by_tbl_type;
11504 BEGIN
11505
11506 -- Hint: Developer should add more statements according to ASO_sort_rec_type
11507 -- Ex:
11508 -- l_util_order_by_tbl(1).col_choice := p_order_by_rec.customer_name;
11509 -- l_util_order_by_tbl(1).col_name := 'Customer_Name';
11510
11511
11512 ASO_UTILITY_PVT.Translate_OrderBy(
11513 p_api_version_number => 1.0
11514 ,p_init_msg_list => FND_API.G_FALSE
11515 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
11516 ,p_order_by_tbl => l_util_order_by_tbl
11517 ,x_order_by_clause => l_order_by_cl
11518 ,x_return_status => x_return_status
11519 ,x_msg_count => x_msg_count
11520 ,x_msg_data => x_msg_data);
11521
11522 IF(l_order_by_cl IS NOT NULL) THEN
11523 x_order_by_cl := 'order by' || l_order_by_cl;
11524 ELSE
11525 x_order_by_cl := NULL;
11526 END IF;
11527
11528 END Gen_QTE_order_cl;
11529
11530 -- This procedure bind the variables for the Dynamic SQL
11531 PROCEDURE Bind(
11532 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
11533 -- Hint: Add more binding variables here
11534 p_cur_get_QTE IN NUMBER
11535 )
11536 IS
11537 BEGIN
11538 -- Bind variables
11539 -- Only those that are not NULL
11540
11541 -- The following example applies to all columns,
11542 -- developers can copy and paste them.
11543 IF( (P_Qte_Header_Rec.QUOTE_HEADER_ID IS NOT NULL) AND (P_Qte_Header_Rec.QUOTE_HEADER_ID <> FND_API.G_MISS_NUM) )
11544 THEN
11545 dbms_SQL.BIND_VARIABLE(p_cur_get_QTE, ':p_QUOTE_HEADER_ID', P_Qte_Header_Rec.QUOTE_HEADER_ID);
11546 END IF;
11547
11548 END Bind;
11549
11550 PROCEDURE Gen_Select(
11551 x_select_cl OUT NOCOPY /* file.sql.39 change */ VARCHAR2
11552 )
11553 IS
11554 BEGIN
11555
11556 x_select_cl := 'Select ' ||
11557 'ASO_QUOTE_HEADERS_V.ROW_ID,' ||
11558 'ASO_QUOTE_HEADERS_V.QUOTE_HEADER_ID,' ||
11559 'ASO_QUOTE_HEADERS_V.ORG_ID,' ||
11560 'ASO_QUOTE_HEADERS_V.LAST_UPDATE_DATE,' ||
11561 'ASO_QUOTE_HEADERS_V.LAST_UPDATED_BY,' ||
11562 'ASO_QUOTE_HEADERS_V.CREATION_DATE,' ||
11563 'ASO_QUOTE_HEADERS_V.CREATED_BY,' ||
11564 'ASO_QUOTE_HEADERS_V.LAST_UPDATE_LOGIN,' ||
11565 'ASO_QUOTE_HEADERS_V.REQUEST_ID,' ||
11566 'ASO_QUOTE_HEADERS_V.PROGRAM_APPLICATION_ID,' ||
11567 'ASO_QUOTE_HEADERS_V.PROGRAM_ID,' ||
11568 'ASO_QUOTE_HEADERS_V.PROGRAM_UPDATE_DATE,' ||
11569 'ASO_QUOTE_HEADERS_V.ORIGINAL_SYSTEM_REFERENCE,' ||
11570 'ASO_QUOTE_HEADERS_V.EMPLOYEE_PERSON_ID,' ||
11571 'ASO_QUOTE_HEADERS_V.SALESREP_FIRST_NAME,' ||
11572 'ASO_QUOTE_HEADERS_V.SALESREP_LAST_NAME,' ||
11573 'ASO_QUOTE_HEADERS_V.PRICE_LIST_ID,' ||
11574 'ASO_QUOTE_HEADERS_V.PRICE_LIST_NAME,' ||
11575 'ASO_QUOTE_HEADERS_V.QUOTE_STATUS_ID,' ||
11576 'ASO_QUOTE_HEADERS_V.QUOTE_STATUS_CODE,' ||
11577 'ASO_QUOTE_HEADERS_V.QUOTE_STATUS,' ||
11578 'ASO_QUOTE_HEADERS_V.UPDATE_ALLOWED_FLAG,' ||
11579 'ASO_QUOTE_HEADERS_V.AUTO_VERSION_FLAG,' ||
11580 'ASO_QUOTE_HEADERS_V.QUOTE_SOURCE_CODE,' ||
11581 'ASO_QUOTE_HEADERS_V.PARTY_ID,' ||
11582 'ASO_QUOTE_HEADERS_V.PARTY_NAME,' ||
11583 'ASO_QUOTE_HEADERS_V.PARTY_TYPE,' ||
11584 'ASO_QUOTE_HEADERS_V.PERSON_FIRST_NAME,' ||
11585 'ASO_QUOTE_HEADERS_V.PERSON_MIDDLE_NAME,' ||
11586 'ASO_QUOTE_HEADERS_V.PERSON_LAST_NAME,' ||
11587 'ASO_QUOTE_HEADERS_V.ORG_CONTACT_ID,' ||
11588 'ASO_QUOTE_HEADERS_V.CONTACT_FIRST_NAME,' ||
11589 'ASO_QUOTE_HEADERS_V.CONTACT_MIDDLE_NAME,' ||
11590 'ASO_QUOTE_HEADERS_V.CONTACT_LAST_NAME,' ||
11591 'ASO_QUOTE_HEADERS_V.QUOTE_NAME,' ||
11592 'ASO_QUOTE_HEADERS_V.QUOTE_NUMBER,' ||
11593 'ASO_QUOTE_HEADERS_V.QUOTE_VERSION,' ||
11594 'ASO_QUOTE_HEADERS_V.QUOTE_EXPIRATION_DATE,' ||
11595 'ASO_QUOTE_HEADERS_V.QUOTE_CATEGORY_CODE,' ||
11596 'ASO_QUOTE_HEADERS_V.CURRENCY_CODE,' ||
11597 'ASO_QUOTE_HEADERS_V.EXCHANGE_RATE,' ||
11598 'ASO_QUOTE_HEADERS_V.EXCHANGE_TYPE_CODE,' ||
11599 'ASO_QUOTE_HEADERS_V.EXCHANGE_RATE_DATE,' ||
11600 'ASO_QUOTE_HEADERS_V.SOURCE_CAMPAIGN_ID,' ||
11601 'ASO_QUOTE_HEADERS_V.CAMPAIGN_ID,' ||
11602 'ASO_QUOTE_HEADERS_V.CAMPAIGN_NAME,' ||
11603 'ASO_QUOTE_HEADERS_V.CAMPAIGN_SOURCE_CODE,' ||
11604 'ASO_QUOTE_HEADERS_V.ORDERED_DATE,' ||
11605 'ASO_QUOTE_HEADERS_V.ORDER_TYPE_ID,' ||
11606 'ASO_QUOTE_HEADERS_V.ORDER_TYPE_NAME,' ||
11607 'ASO_QUOTE_HEADERS_V.TAX_EXEMPT_NUMBER,' ||
11608 'ASO_QUOTE_HEADERS_V.TAX_EXEMPT_REASON_CODE,' ||
11609 'ASO_QUOTE_HEADERS_V.TAX_EXEMPT_FLAG,' ||
11610 'ASO_QUOTE_HEADERS_V.TOTAL_LIST_PRICE,' ||
11611 'ASO_QUOTE_HEADERS_V.TOTAL_ADJUSTED_AMOUNT,' ||
11612 'ASO_QUOTE_HEADERS_V.TOTAL_ADJUSTED_PERCENT,' ||
11613 'ASO_QUOTE_HEADERS_V.TOTAL_TAX,' ||
11614 'ASO_QUOTE_HEADERS_V.SURCHARGE,' ||
11615 'ASO_QUOTE_HEADERS_V.TOTAL_SHIPPING_CHARGE,' ||
11616 'ASO_QUOTE_HEADERS_V.TOTAL_QUOTE_PRICE,' ||
11617 'ASO_QUOTE_HEADERS_V.ACCOUNTING_RULE_ID,' ||
11618 'ASO_QUOTE_HEADERS_V.INVOICING_RULE_ID,' ||
11619 'ASO_QUOTE_HEADERS_V.SHIP_METHOD_CODE,' ||
11620 'ASO_QUOTE_HEADERS_V.FREIGHT_TERMS_CODE,' ||
11621 'ASO_QUOTE_HEADERS_V.SHIP_TO_PARTY_ID,' ||
11622 'ASO_QUOTE_HEADERS_V.SHIP_TO_PARTY_SITE_ID,' ||
11623 'ASO_QUOTE_HEADERS_V.SHIP_TO_PARTY_NAME,' ||
11624 'ASO_QUOTE_HEADERS_V.SHIP_TO_CONTACT_FIRST_NAME,' ||
11625 'ASO_QUOTE_HEADERS_V.SHIP_TO_CONTACT_MIDDLE_NAME,' ||
11626 'ASO_QUOTE_HEADERS_V.SHIP_TO_CONTACT_LAST_NAME,' ||
11627 'ASO_QUOTE_HEADERS_V.SHIP_TO_ADDRESS1,' ||
11628 'ASO_QUOTE_HEADERS_V.SHIP_TO_ADDRESS2,' ||
11629 'ASO_QUOTE_HEADERS_V.SHIP_TO_ADDRESS3,' ||
11630 'ASO_QUOTE_HEADERS_V.SHIP_TO_ADDRESS4,' ||
11631 'ASO_QUOTE_HEADERS_V.SHIP_TO_COUNTRY_CODE,' ||
11632 'ASO_QUOTE_HEADERS_V.SHIP_TO_COUNTRY,' ||
11633 'ASO_QUOTE_HEADERS_V.SHIP_TO_CITY,' ||
11634 'ASO_QUOTE_HEADERS_V.SHIP_TO_POSTAL_CODE,' ||
11635 'ASO_QUOTE_HEADERS_V.SHIP_TO_STATE,' ||
11636 'ASO_QUOTE_HEADERS_V.SHIP_TO_PROVINCE,' ||
11637 'ASO_QUOTE_HEADERS_V.SHIP_TO_COUNTY,' ||
11638 'ASO_QUOTE_HEADERS_V.INVOICE_TO_PARTY_ID,' ||
11639 'ASO_QUOTE_HEADERS_V.INVOICE_TO_PARTY_SITE_ID,' ||
11640 'ASO_QUOTE_HEADERS_V.INVOICE_TO_PARTY_NAME,' ||
11641 'ASO_QUOTE_HEADERS_V.INVOICE_TO_CONTACT_FIRST_NAME,' ||
11642 'ASO_QUOTE_HEADERS_V.INVOICE_TO_CONTACT_MIDDLE_NAME,' ||
11643 'ASO_QUOTE_HEADERS_V.INVOICE_TO_CONTACT_LAST_NAME,' ||
11644 'ASO_QUOTE_HEADERS_V.INVOICE_TO_ADDRESS1,' ||
11645 'ASO_QUOTE_HEADERS_V.INVOICE_TO_ADDRESS2,' ||
11646 'ASO_QUOTE_HEADERS_V.INVOICE_TO_ADDRESS3,' ||
11647 'ASO_QUOTE_HEADERS_V.INVOICE_TO_ADDRESS4,' ||
11648 'ASO_QUOTE_HEADERS_V.INVOICE_TO_COUNTRY_CODE,' ||
11649 'ASO_QUOTE_HEADERS_V.INVOICE_TO_COUNTRY,' ||
11650 'ASO_QUOTE_HEADERS_V.INVOICE_TO_CITY,' ||
11651 'ASO_QUOTE_HEADERS_V.INVOICE_TO_POSTAL_CODE,' ||
11652 'ASO_QUOTE_HEADERS_V.INVOICE_TO_STATE,' ||
11653 'ASO_QUOTE_HEADERS_V.INVOICE_TO_PROVINCE,' ||
11654 'ASO_QUOTE_HEADERS_V.INVOICE_TO_COUNTY,' ||
11655 'ASO_QUOTE_HEADERS_V.SHIPPING_INSTRUCTIONS,' ||
11656 'ASO_QUOTE_HEADERS_V.PACKING_INSTRUCTIONS,' ||
11657 'ASO_QUOTE_HEADERS_V.CONTRACT_ID,' ||
11658 'ASO_QUOTE_HEADERS_V.ATTRIBUTE_CATEGORY,' ||
11659 'ASO_QUOTE_HEADERS_V.ATTRIBUTE1,' ||
11660 'ASO_QUOTE_HEADERS_V.ATTRIBUTE2,' ||
11661 'ASO_QUOTE_HEADERS_V.ATTRIBUTE3,' ||
11662 'ASO_QUOTE_HEADERS_V.ATTRIBUTE4,' ||
11663 'ASO_QUOTE_HEADERS_V.ATTRIBUTE5,' ||
11664 'ASO_QUOTE_HEADERS_V.ATTRIBUTE6,' ||
11665 'ASO_QUOTE_HEADERS_V.ATTRIBUTE7,' ||
11666 'ASO_QUOTE_HEADERS_V.ATTRIBUTE8,' ||
11667 'ASO_QUOTE_HEADERS_V.ATTRIBUTE9,' ||
11668 'ASO_QUOTE_HEADERS_V.ATTRIBUTE10,' ||
11669 'ASO_QUOTE_HEADERS_V.ATTRIBUTE11,' ||
11670 'ASO_QUOTE_HEADERS_V.ATTRIBUTE12,' ||
11671 'ASO_QUOTE_HEADERS_V.ATTRIBUTE13,' ||
11672 'ASO_QUOTE_HEADERS_V.ATTRIBUTE14,' ||
11673 'ASO_QUOTE_HEADERS_V.ATTRIBUTE15,' ||
11674 'from ASO_QUOTE_HEADERS_V';
11675
11676 END Gen_Select;
11677
11678 PROCEDURE Gen_QTE_Where(
11679 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
11680 x_QTE_where OUT NOCOPY /* file.sql.39 change */ VARCHAR2
11681 )
11682 IS
11683 -- cursors to check if wildcard values '%' and '_' have been passed
11684 -- as item values
11685 /*
11686 CURSOR c_chk_str1(p_rec_item VARCHAR2) IS
11687 SELECT INSTR(p_rec_item, '%', 1, 1)
11688 FROM DUAL;
11689 CURSOR c_chk_str2(p_rec_item VARCHAR2) IS
11690 SELECT INSTR(p_rec_item, '_', 1, 1)
11691 FROM DUAL;
11692 */
11693 -- return values from cursors
11694 str_csr1 NUMBER;
11695 str_csr2 NUMBER;
11696 l_operator VARCHAR2(10);
11697 BEGIN
11698
11699 -- There are three example for each kind of datatype:
11700 -- NUMBER, DATE, VARCHAR2.
11701 -- Developer can copy and paste the following codes for your own record.
11702
11703 -- example for NUMBER datatype
11704 IF( (P_Qte_Header_Rec.QUOTE_HEADER_ID IS NOT NULL) AND (P_Qte_Header_Rec.QUOTE_HEADER_ID <> FND_API.G_MISS_NUM) )
11705 THEN
11706 IF(x_QTE_where IS NULL) THEN
11707 x_QTE_where := 'Where';
11708 ELSE
11709 x_QTE_where := x_QTE_where || ' AND ';
11710 END IF;
11711 x_QTE_where := x_QTE_where || 'P_Qte_Header_Rec.QUOTE_HEADER_ID = :p_QUOTE_HEADER_ID';
11712 END IF;
11713
11714 -- example for DATE datatype
11715 IF( (P_Qte_Header_Rec.CREATION_DATE IS NOT NULL) AND (P_Qte_Header_Rec.CREATION_DATE <> FND_API.G_MISS_DATE) )
11716 THEN
11717 -- check if item value contains '%' wildcard
11718 /* OPEN c_chk_str1(P_Qte_Header_Rec.CREATION_DATE);
11719 FETCH c_chk_str1 INTO str_csr1;
11720 CLOSE c_chk_str1;
11721 */
11722 str_csr1 := INSTR(P_Qte_Header_Rec.CREATION_DATE, '%', 1, 1);
11723
11724 IF(str_csr1 <> 0) THEN
11725 l_operator := ' LIKE ';
11726 ELSE
11727 l_operator := ' = ';
11728 END IF;
11729
11730 -- check if item value contains '_' wildcard
11731 /*
11732 OPEN c_chk_str2(P_Qte_Header_Rec.CREATION_DATE);
11733 FETCH c_chk_str2 INTO str_csr2;
11734 CLOSE c_chk_str2;
11735 */
11736 str_csr2 := INSTR(P_Qte_Header_Rec.CREATION_DATE, '_', 1, 1);
11737
11738 IF(str_csr2 <> 0) THEN
11739 l_operator := ' LIKE ';
11740 ELSE
11741 l_operator := ' = ';
11742 END IF;
11743
11744 IF(x_QTE_where IS NULL) THEN
11745 x_QTE_where := 'Where ';
11746 ELSE
11747 x_QTE_where := x_QTE_where || ' AND ';
11748 END IF;
11749 x_QTE_where := x_QTE_where || 'P_Qte_Header_Rec.CREATION_DATE ' || l_operator || ' :p_CREATION_DATE';
11750 END IF;
11751
11752 -- example for VARCHAR2 datatype
11753 IF( (P_Qte_Header_Rec.QUOTE_NAME IS NOT NULL) AND (P_Qte_Header_Rec.QUOTE_NAME <> FND_API.G_MISS_CHAR) )
11754 THEN
11755 -- check if item value contains '%' wildcard
11756 /*
11757 OPEN c_chk_str1(P_Qte_Header_Rec.QUOTE_NAME);
11758 FETCH c_chk_str1 INTO str_csr1;
11759 CLOSE c_chk_str1;
11760 */
11761 str_csr1 := INSTR(P_Qte_Header_Rec.QUOTE_NAME, '%', 1, 1);
11762
11763 IF(str_csr1 <> 0) THEN
11764 l_operator := ' LIKE ';
11765 ELSE
11766 l_operator := ' = ';
11767 END IF;
11768
11769 -- check if item value contains '_' wildcard
11770 /*
11771 OPEN c_chk_str2(P_Qte_Header_Rec.QUOTE_NAME);
11772 FETCH c_chk_str2 INTO str_csr2;
11773 CLOSE c_chk_str2;
11774 */
11775 str_csr2 := INSTR(P_Qte_Header_Rec.QUOTE_NAME, '_', 1, 1);
11776
11777 IF(str_csr2 <> 0) THEN
11778 l_operator := ' LIKE ';
11779 ELSE
11780 l_operator := ' = ';
11781 END IF;
11782
11783 IF(x_QTE_where IS NULL) THEN
11784 x_QTE_where := 'Where ';
11785 ELSE
11786 x_QTE_where := x_QTE_where || ' AND ';
11787 END IF;
11788 x_QTE_where := x_QTE_where || 'P_Qte_Header_Rec.QUOTE_NAME ' || l_operator || ' :p_QUOTE_NAME';
11789 END IF;
11790
11791 -- Add more IF statements for each column below
11792
11793
11794 END Gen_QTE_Where;
11795
11796 PROCEDURE Get_quote(
11797 P_Api_Version_Number IN NUMBER,
11798 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
11799 P_Qte_Header_Rec IN ASO_QUOTE_PUB.Qte_Header_Rec_Type,
11800 -- Hint: Add list of bind variables here
11801 p_rec_requested IN NUMBER := G_DEFAULT_NUM_REC_FETCH,
11802 p_start_rec_prt IN NUMBER := 1,
11803 p_return_tot_count IN NUMBER := FND_API.G_FALSE,
11804 -- Hint: user defined record type
11805 p_order_by_rec IN ASO_QUOTE_PUB.QTE_sort_rec_type,
11806 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
11807 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
11808 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
11809 X_Qte_Header_Tbl OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Qte_Header_Tbl_Type,
11810 x_returned_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
11811 x_next_rec_ptr OUT NOCOPY /* file.sql.39 change */ NUMBER,
11812 x_tot_rec_count OUT NOCOPY /* file.sql.39 change */ NUMBER)
11813 IS
11814 l_api_name CONSTANT VARCHAR2(30) := 'Get_quote';
11815 l_api_version_number CONSTANT NUMBER := 1.0;
11816
11817 -- Local record counters
11818 l_returned_rec_count NUMBER := 0; -- number of records returned in x_X_Qte_Header_Rec
11819 l_next_record_ptr NUMBER := 1;
11820 l_ignore NUMBER;
11821
11822 -- total number of records accessable by caller
11823 l_tot_rec_count NUMBER := 0;
11824 l_tot_rec_amount NUMBER := 0;
11825
11826 -- Status local variables
11827 l_return_status VARCHAR2(1); -- Return value from procedures
11828 l_return_status_full VARCHAR2(1); -- Calculated return status from
11829
11830 -- Dynamic SQL statement elements
11831 l_cur_get_qte NUMBER;
11832 l_select_cl VARCHAR2(2000) := '';
11833 l_order_by_cl VARCHAR2(2000);
11834 l_QTE_where VARCHAR2(2000) := '';
11835
11836 -- For flex field query
11837 l_flex_where_tbl_type ASO_UTILITY_PVT.flex_where_tbl_type;
11838 l_flex_where VARCHAR2(2000) := NULL;
11839 l_counter NUMBER;
11840
11841 -- Local scratch record
11842 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
11843 l_crit_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type;
11844 BEGIN
11845 -- Standard Start of API savepoint
11846 SAVEPOINT GET_QUOTE_PVT;
11847
11848 -- Standard call to check for call compatibility.
11849 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
11850 p_api_version_number,
11851 l_api_name,
11852 G_PKG_NAME)
11853 THEN
11854 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11855 END IF;
11856
11857
11858 -- Initialize message list if p_init_msg_list is set to TRUE.
11859 IF FND_API.to_Boolean( p_init_msg_list )
11860 THEN
11861 FND_MSG_PUB.initialize;
11862 END IF;
11863
11864
11865
11866
11867 -- Initialize API return status to SUCCESS
11868 x_return_status := FND_API.G_RET_STS_SUCCESS;
11869
11870 --
11871 -- Api body
11872 --
11873
11874 -- *************************************************
11875 -- Generate Dynamic SQL based on criteria passed in.
11876 -- Doing this for performance. Indexes are disabled when using NVL within static SQL statement.
11877 -- Ignore condition when criteria is NULL
11878 -- Generate Select clause and From clause
11879 -- Hint: Developer should modify Gen_Select procedure.
11880 Gen_Select(l_select_cl);
11881
11882 -- Hint: Developer should modify and implement Gen_Where precedure.
11883 Gen_QTE_Where(l_crit_qte_header_rec, l_QTE_where);
11884
11885 -- Generate Where clause for flex fields
11886 -- Hint: Developer can use table/view alias in the From clause generated in Gen_Select procedure
11887
11888 FOR l_counter IN 1..15 LOOP
11889 l_flex_where_tbl_type(l_counter).name := 'ASO_QUOTE_HEADERS_V.attribute' || l_counter;
11890 END LOOP;
11891
11892 l_flex_where_tbl_type(16).name := 'ASO_QUOTE_HEADERS_V.attribute_category';
11893 l_flex_where_tbl_type(1).value := P_Qte_Header_Rec.attribute1;
11894 l_flex_where_tbl_type(2).value := P_Qte_Header_Rec.attribute2;
11895 l_flex_where_tbl_type(3).value := P_Qte_Header_Rec.attribute3;
11896 l_flex_where_tbl_type(4).value := P_Qte_Header_Rec.attribute4;
11897 l_flex_where_tbl_type(5).value := P_Qte_Header_Rec.attribute5;
11898 l_flex_where_tbl_type(6).value := P_Qte_Header_Rec.attribute6;
11899 l_flex_where_tbl_type(7).value := P_Qte_Header_Rec.attribute7;
11900 l_flex_where_tbl_type(8).value := P_Qte_Header_Rec.attribute8;
11901 l_flex_where_tbl_type(9).value := P_Qte_Header_Rec.attribute9;
11902 l_flex_where_tbl_type(10).value := P_Qte_Header_Rec.attribute10;
11903 l_flex_where_tbl_type(11).value := P_Qte_Header_Rec.attribute11;
11904 l_flex_where_tbl_type(12).value := P_Qte_Header_Rec.attribute12;
11905 l_flex_where_tbl_type(13).value := P_Qte_Header_Rec.attribute13;
11906 l_flex_where_tbl_type(14).value := P_Qte_Header_Rec.attribute14;
11907 l_flex_where_tbl_type(15).value := P_Qte_Header_Rec.attribute15;
11908 l_flex_where_tbl_type(16).value := P_Qte_Header_Rec.attribute_category;
11909
11910 ASO_UTILITY_PVT.Gen_Flexfield_Where(
11911 p_flex_where_tbl_type => l_flex_where_tbl_type,
11912 x_flex_where_clause => l_flex_where);
11913
11914 -- Hint: if master/detail relationship, generate Where clause for lines level criteria
11915 -- Generate order by clause
11916 Gen_QTE_order_cl(p_order_by_rec, l_order_by_cl, l_return_status, x_msg_count, x_msg_data);
11917
11918
11919 l_cur_get_qte := dbms_sql.open_cursor;
11920
11921 -- Hint: concatenate all where clause (include flex field/line level if any applies)
11922 -- dbms_sql.parse(l_cur_get_QTE, l_select_cl || l_head_where || l_flex_where || l_lines_where
11923 -- || l_steam_where || l_order_by_cl, dbms_sql.native);
11924
11925 -- Hint: Developer should implement Bind Variables procedure according to bind variables in the parameter list
11926 -- Bind(l_crit_qte_header_rec, l_crit_exp_purchase_rec, p_start_date, p_end_date,
11927 -- p_crit_exp_salesforce_id, p_crit_ptr_salesforce_id,
11928 -- p_crit_salesgroup_id, p_crit_ptr_manager_person_id,
11929 -- p_win_prob_ceiling, p_win_prob_floor,
11930 -- p_total_amt_ceiling, p_total_amt_floor,
11931 -- l_cur_get_QTE);
11932
11933 -- Bind flexfield variables
11934 ASO_UTILITY_PVT.Bind_Flexfield_Where(
11935 p_cursor_id => l_cur_get_QTE,
11936 p_flex_where_tbl_type => l_flex_where_tbl_type);
11937
11938 -- Define all Select Columns
11939 Define_Columns(l_crit_qte_header_rec, l_cur_get_QTE);
11940
11941 -- Execute
11942
11943 l_ignore := dbms_sql.execute(l_cur_get_QTE);
11944
11945
11946 -- This loop is here to avoid calling a function in the main
11947 -- cursor. Basically, calling this function seems to disable
11948 -- index, but verification is needed. This is a good
11949 -- place to optimize the code if required.
11950
11951 LOOP
11952 -- 1. There are more rows in the cursor.
11953 -- 2. User does not care about total records, and we need to return more.
11954 -- 3. Or user cares about total number of records.
11955 IF((dbms_sql.fetch_rows(l_cur_get_QTE)>0) AND ((p_return_tot_count = FND_API.G_TRUE)
11956 OR (l_returned_rec_count<p_rec_requested) OR (p_rec_requested=FND_API.G_MISS_NUM)))
11957 THEN
11958
11959 -- Hint: Developer need to implement this part
11960 -- dbms_sql.column_value(l_cur_get_opp, 1, l_opp_rec.lead_id);
11961 -- dbms_sql.column_value(l_cur_get_opp, 7, l_opp_rec.customer_id);
11962 -- dbms_sql.column_value(l_cur_get_opp, 8, l_opp_rec.address_id);
11963
11964 -- Hint: Check access for this record (e.x. ASO_ACCESS_PVT.Haso_OpportunityAccess)
11965 -- Return this particular record if
11966 -- 1. The caller has access to record.
11967 -- 2. The number of records returned < number of records caller requested in this run.
11968 -- 3. The record comes AFTER or Equal to the start index the caller requested.
11969
11970 -- Developer should check whether there is access privilege here
11971 -- IF(l_qte_header_rec.member_access <> 'N' OR l_qte_header_rec.member_role <> 'N') THEN
11972 Get_Column_Values(l_cur_get_QTE, l_qte_header_rec);
11973 l_tot_rec_count := l_tot_rec_count + 1;
11974 IF(l_returned_rec_count < p_rec_requested) AND (l_tot_rec_count >= p_start_rec_prt) THEN
11975 l_returned_rec_count := l_returned_rec_count + 1;
11976 -- insert into resultant tables
11977 X_Qte_Header_Tbl(l_returned_rec_count) := l_qte_header_rec;
11978 END IF;
11979 -- END IF;
11980 ELSE
11981 EXIT;
11982 END IF;
11983 END LOOP;
11984 --
11985 -- End of API body
11986 --
11987
11988
11989
11990 -- Standard call to get message count and if count is 1, get message info.
11991 FND_MSG_PUB.Count_And_Get
11992 ( p_count => x_msg_count,
11993 p_data => x_msg_data
11994 );
11995
11996 EXCEPTION
11997 WHEN FND_API.G_EXC_ERROR THEN
11998 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
11999 P_API_NAME => L_API_NAME
12000 ,P_PKG_NAME => G_PKG_NAME
12001 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
12002 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
12003 ,X_MSG_COUNT => X_MSG_COUNT
12004 ,X_MSG_DATA => X_MSG_DATA
12005 ,X_RETURN_STATUS => X_RETURN_STATUS);
12006
12007 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
12008 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
12009 P_API_NAME => L_API_NAME
12010 ,P_PKG_NAME => G_PKG_NAME
12011 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
12012 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
12013 ,X_MSG_COUNT => X_MSG_COUNT
12014 ,X_MSG_DATA => X_MSG_DATA
12015 ,X_RETURN_STATUS => X_RETURN_STATUS);
12016
12017 WHEN OTHERS THEN
12018 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
12019 P_API_NAME => L_API_NAME
12020 ,P_PKG_NAME => G_PKG_NAME
12021 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
12022 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
12023 ,X_MSG_COUNT => X_MSG_COUNT
12024 ,X_MSG_DATA => X_MSG_DATA
12025 ,X_RETURN_STATUS => X_RETURN_STATUS);
12026 End Get_quote;
12027
12028 PROCEDURE Validate_Quote
12029 (
12030 P_Api_Version_Number IN NUMBER,
12031 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
12032 P_Qte_Header_Id IN NUMBER,
12033 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12034 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
12035 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
12036 IS
12037 BEGIN
12038 null;
12039 END Validate_Quote;
12040
12041
12042 -- NAME
12043 -- Submit_Quote
12044 --
12045 -- PURPOSE
12046 -- Validate the quote and quote lines, where quote_id = p_quote_id.
12047 -- If validation is successful, insert the quote and quote lines
12048 -- to OE's interface tables. Submit a concurrent request to order
12049 -- the quote.
12050 --
12051
12052 PROCEDURE Submit_Quote
12053 (
12054 P_Api_Version_Number IN NUMBER,
12055 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
12056 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
12057 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
12058 p_control_rec IN ASO_QUOTE_PUB.SUBMIT_Control_Rec_Type
12059 := ASO_QUOTE_PUB.G_MISS_SUBMIT_CONTROL_REC,
12060 P_Qte_Header_Id IN NUMBER,
12061 X_Order_Header_Rec OUT NOCOPY /* file.sql.39 change */ ASO_QUOTE_PUB.Order_Header_Rec_Type,
12062 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12063 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
12064 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
12065
12066 IS
12067
12068 l_qte_header_rec ASO_QUOTE_PUB.Qte_Header_Rec_Type
12069 := ASO_QUOTE_PUB.G_MISS_Qte_Header_Rec;
12070
12071 BEGIN
12072
12073 -- Calling New Submit_Quote API
12074
12075 l_qte_header_rec.quote_header_id := P_Qte_Header_Id;
12076
12077 ASO_SUBMIT_QUOTE_PVT.Submit_Quote(
12078 P_Api_Version_Number => 1.0,
12079 P_Init_Msg_List => p_init_msg_list,
12080 P_Commit => p_commit,
12081 P_validation_level => p_validation_level,
12082 P_Control_Rec => p_control_rec,
12083 P_Qte_Header_Rec => l_qte_header_rec,
12084 x_order_header_rec => x_Order_Header_Rec,
12085 X_Return_Status => x_return_status,
12086 X_Msg_Count => x_msg_count,
12087 X_Msg_Data => x_msg_data);
12088
12089
12090 END Submit_Quote;
12091
12092
12093 PROCEDURE config_copy(
12094 p_qte_line_id IN NUMBER,
12095 p_old_config_header_id IN NUMBER,
12096 p_old_config_revision_num IN NUMBER,
12097 p_config_header_id IN NUMBER,
12098 p_config_revision_num IN NUMBER,
12099 x_qte_header_id IN NUMBER,
12100 qte_header_id IN NUMBER,
12101 p_qte_line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
12102 P_control_rec IN ASO_QUOTE_PUB.control_rec_type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
12103 l_line_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type,
12104 l_price_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type,
12105 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12106 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
12107 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12108 )
12109 IS
12110
12111 CURSOR line_id_from_config IS
12112 SELECT ASO_Quote_Line_Details.QUOTE_LINE_ID
12113 FROM ASO_Quote_Line_Details, ASO_Quote_Lines_all
12114 WHERE ASO_Quote_Line_Details.config_header_id = p_old_config_header_id
12115 AND ASO_Quote_Line_Details.config_revision_num = p_old_config_revision_num
12116 AND ASO_quote_line_details.quote_line_id = ASO_Quote_Lines_all.quote_line_id
12117 AND ASO_Quote_Lines_all.item_type_code <> 'MDL'
12118 AND aso_quote_lines_all.quote_header_id = qte_header_id;
12119
12120 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
12121 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
12122 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
12123 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
12124 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
12125 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
12126 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
12127 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
12128 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
12129
12130 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
12131 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
12132 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
12133 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
12134 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
12135 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
12136 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
12137 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
12138 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
12139 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
12140 lx_ln_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
12141 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
12142 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
12143
12144 LX_PRICE_ADJ_RLTSHIP_ID NUMBER;
12145 LX_LINE_RELATIONSHIP_ID NUMBER;
12146
12147 X_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
12148 X_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
12149 X_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
12150 l_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
12151 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
12152 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
12153 l_quote_party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
12154 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
12155 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
12156 l_sales_credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
12157
12158 l_return_status varchar2(1);
12159 qte_line_id NUMBER;
12160 i NUMBER;
12161 j NUMBER;
12162 k NUMBER;
12163
12164 CURSOR C_Serviceable_Product(l_organization_id NUMBER, l_inv_item_id NUMBER) IS
12165 SELECT serviceable_product_flag FROM MTL_SYSTEM_ITEMS_VL
12166 WHERE inventory_item_id = l_inv_item_id
12167 AND organization_id = l_organization_id;
12168
12169 l_quote_line_id number;
12170 l_serviceable_product_flag VARCHAR2(1);
12171
12172 l_api_version CONSTANT NUMBER := 1.0;
12173
12174 BEGIN
12175
12176 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12177 aso_debug_pub.add('Copy_Config - Begin ', 1, 'Y');
12178 aso_debug_pub.add('Copy_Config - x_qte_header_id '||x_qte_header_id, 1, 'Y');
12179 aso_debug_pub.add('Copy_Config - qte_header_id '||qte_header_id, 1, 'Y');
12180 aso_debug_pub.add('Copy_Config - p_qte_line_id '|| p_qte_line_id, 1, 'Y');
12181 END IF;
12182
12183 OPEN line_id_from_config;
12184 LOOP
12185 FETCH line_id_from_config INTO qte_line_id;
12186 EXIT WHEN line_id_from_config%NOTFOUND;
12187
12188 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12189 aso_debug_pub.add('Copy_Config - inside cursor qte_line_id '|| qte_line_id, 1, 'Y');
12190 END IF;
12191 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row(qte_line_id);
12192
12193 l_qte_line_rec.quote_header_id := x_qte_header_id;
12194
12195 l_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(qte_line_id);
12196
12197 FOR k IN 1..l_qte_line_dtl_tbl.count LOOP
12198 l_qte_line_dtl_tbl(k).config_header_id := p_config_header_id;
12199 l_qte_line_dtl_tbl(k).config_revision_num := p_config_revision_num;
12200 END LOOP;
12201
12202
12203 l_line_attr_Ext_Tbl := ASO_UTILITY_PVT.Query_Line_Attribs_Ext_Rows(qte_line_id);
12204 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Rows(qte_header_id,qte_line_id);
12205
12206 FOR j IN 1..l_price_adj_tbl.count LOOP
12207 l_price_adj_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12208 END LOOP;
12209
12210 l_price_adj_attr_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows(p_price_adj_tbl => l_price_adj_tbl);
12211 l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows(qte_header_id, qte_line_id);
12212
12213 FOR j IN 1..l_price_attr_tbl.count LOOP
12214 l_price_attr_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12215 END LOOP;
12216
12217 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(qte_header_id, QTE_LINE_ID);
12218
12219 FOR j IN 1..l_payment_tbl.count LOOP
12220 l_payment_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12221 l_payment_tbl(j).CREDIT_CARD_APPROVAL_CODE := NULL;
12222 l_payment_tbl(j).CREDIT_CARD_APPROVAL_DATE := NULL;
12223 l_payment_tbl(j).PAYMENT_AMOUNT := NULL;
12224 END LOOP;
12225
12226 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(qte_header_id, QTE_LINE_ID);
12227 FOR j IN 1..l_shipment_tbl.count LOOP
12228 l_shipment_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12229 END LOOP;
12230
12231 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row(qte_header_id,QTE_LINE_ID);
12232 FOR j IN 1..l_sales_credit_tbl.count LOOP
12233 l_sales_credit_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12234 END LOOP;
12235
12236 l_quote_party_tbl := ASO_UTILITY_PVT.Query_Quote_Party_Row(qte_header_id,QTE_LINE_ID);
12237 FOR j IN 1..l_quote_party_tbl.count LOOP
12238 l_quote_party_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12239 END LOOP;
12240
12241 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows(l_shipment_tbl);
12242 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows(qte_header_id,QTE_LINE_ID, l_shipment_tbl);
12243
12244 OPEN C_Serviceable_Product(l_qte_line_rec.organization_id, l_qte_line_rec.inventory_item_id);
12245 FETCH C_Serviceable_Product INTO l_serviceable_product_flag;
12246 CLOSE C_Serviceable_Product;
12247 l_quote_line_id := l_qte_line_rec.quote_line_id;
12248 -- BC4J Fix
12249 --l_qte_line_rec.quote_line_id := null;
12250
12251 ASO_QUOTE_LINES_PVT.Insert_Quote_Line_Rows (
12252 p_control_rec => l_control_rec,
12253 P_qte_Line_Rec => l_qte_line_rec,
12254 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
12255 P_Line_Attribs_Ext_Tbl => l_line_attr_ext_tbl,
12256 P_price_attributes_tbl => l_price_attr_tbl,
12257 P_Price_Adj_Tbl => l_price_adj_tbl,
12258 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
12259 P_Payment_Tbl => l_payment_tbl,
12260 P_Shipment_Tbl => l_shipment_tbl,
12261 P_Freight_Charge_Tbl => l_freight_charge_tbl,
12262 P_Tax_Detail_Tbl => l_tax_detail_tbl,
12263 P_Sales_Credit_Tbl => l_sales_credit_tbl,
12264 P_Quote_Party_Tbl => l_quote_party_tbl,
12265 x_qte_Line_Rec => lx_qte_line_rec,
12266 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
12267 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
12268 x_price_attributes_tbl => l_price_attr_tbl_out,
12269 x_Price_Adj_Tbl => lx_ln_price_adj_tbl,
12270 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
12271 x_Payment_Tbl => l_payment_tbl_out,
12272 x_Shipment_Tbl => l_shipment_tbl_out,
12273 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
12274 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
12275 X_Sales_Credit_Tbl => l_sales_credit_tbl_out,
12276 X_Quote_Party_Tbl => l_quote_party_tbl_out,
12277 X_Return_Status => l_return_status,
12278 X_Msg_Count => x_msg_count,
12279 X_Msg_Data => x_msg_data);
12280
12281 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
12282 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
12283 l_price_attr_tbl := l_price_attr_tbl_out;
12284 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
12285 l_payment_tbl := l_payment_tbl_out;
12286 l_shipment_tbl := l_shipment_tbl_out;
12287 l_freight_charge_tbl := l_freight_charge_tbl_out;
12288 l_tax_detail_tbl := l_tax_detail_tbl_out;
12289 l_sales_credit_tbl := l_sales_credit_tbl_out;
12290 l_quote_party_tbl := l_quote_party_tbl_out;
12291
12292
12293 IF p_control_rec.copy_att_flag = 'Y' THEN
12294 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12295 aso_debug_pub.add('Copy_Rows - Begin- before config line copy_attch ', 1, 'Y');
12296 END IF;
12297
12298 ASO_ATTACHMENT_INT.Copy_Attachments(
12299 p_api_version => l_api_version,
12300 p_old_object_code => 'ASO_QUOTE_LINES_ALL',
12301 p_new_object_code => 'ASO_QUOTE_LINES_ALL',
12302 p_old_object_id => qte_line_id,
12303 p_new_object_id => lx_qte_line_rec.quote_line_id,
12304 x_return_status => x_return_status ,
12305 x_msg_count => x_msg_count,
12306 x_msg_data => x_msg_data
12307 );
12308
12309 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12310 aso_debug_pub.add('Copy_Rows -After config line copy_attch '||x_return_status, 1, 'Y');
12311 END IF;
12312
12313 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
12314 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
12315 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12316 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
12317 FND_MESSAGE.Set_Token('ROW', 'ASO_COPYQUOTE_ AFTER_ATTACHMENTS', TRUE);
12318 FND_MSG_PUB.ADD;
12319 END IF;
12320 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12321 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
12322 x_return_status := FND_API.G_RET_STS_ERROR;
12323 RAISE FND_API.G_EXC_ERROR;
12324 END IF ;
12325 END IF;
12326
12327 FOR j IN 1..l_price_adj_tbl.count LOOP
12328 l_price_index_link_tbl(l_price_adj_tbl(j).price_adjustment_id) :=
12329 lx_ln_price_adj_tbl(j).price_adjustment_id;
12330 END LOOP;
12331 l_line_index_link_tbl(qte_line_id) := lx_qte_line_rec.quote_line_id;
12332
12333 -- CLOSE line_id_from_config;
12334 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12335 aso_debug_pub.add('Copy_Config - l_qte_line_tbl(i).item_type_code '|| l_qte_line_rec.item_type_code, 1, 'Y');
12336 aso_debug_pub.add('Copy - l_qte_line_tbl(i).inventory_item_id '|| l_qte_line_rec.inventory_item_id, 1, 'Y');
12337 aso_debug_pub.add('Copy - l_serviceable_product_flag '|| l_serviceable_product_flag, 1, 'Y');
12338 END IF;
12339 IF l_serviceable_product_flag = 'Y' THEN
12340 ASO_QUOTE_HEADERS_PVT.service_copy(
12341 p_qte_line_id => l_quote_line_id,
12342 p_control_rec => p_control_rec,
12343 x_qte_header_id => x_qte_header_id,
12344 qte_header_id => qte_header_id,
12345 p_qte_line_rec => l_qte_line_rec,
12346 l_line_index_link_tbl => l_line_index_link_tbl,
12347 l_price_index_link_tbl => l_price_index_link_tbl,
12348 X_Return_Status => l_return_status,
12349 X_Msg_Count => x_msg_count,
12350 X_Msg_Data => x_msg_data
12351 );
12352 END IF;
12353
12354 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
12355 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
12356 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12357 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
12358 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
12359 FND_MSG_PUB.ADD;
12360 END IF;
12361 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12362 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
12363 x_return_status := FND_API.G_RET_STS_ERROR;
12364 END IF;
12365
12366 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
12367 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
12368 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12369 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
12370 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
12371 FND_MSG_PUB.ADD;
12372 END IF;
12373
12374 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12375 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
12376 x_return_status := FND_API.G_RET_STS_ERROR;
12377 END IF;
12378
12379 END LOOP;
12380
12381 CLOSE line_id_from_config;
12382
12383 END config_copy;
12384
12385
12386 PROCEDURE service_copy(
12387 p_qte_line_id IN NUMBER,
12388 x_qte_header_id IN NUMBER,
12389 qte_header_id IN NUMBER,
12390 p_qte_line_rec IN ASO_QUOTE_PUB.Qte_Line_Rec_Type,
12391 P_control_rec IN ASO_QUOTE_PUB.control_rec_type := ASO_QUOTE_PUB.G_MISS_Control_Rec,
12392 l_line_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type,
12393 l_price_index_link_tbl IN OUT NOCOPY ASO_QUOTE_HEADERS_PVT.Index_Link_Tbl_Type,
12394 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12395 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
12396 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12397 )
12398 IS
12399
12400 CURSOR line_id_from_service IS
12401 SELECT related_quote_line_id
12402 FROM aso_line_relationships
12403 WHERE quote_line_id = p_qte_line_id
12404 AND relationship_type_code = 'SERVICE';
12405
12406 l_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
12407 l_payment_tbl_out ASO_QUOTE_PUB.Payment_Tbl_Type;
12408 l_shipment_tbl ASO_QUOTE_PUB.Shipment_Tbl_Type;
12409 l_shipment_tbl_out ASO_QUOTE_PUB.Shipment_Tbl_Type;
12410 l_shipment_rec ASO_QUOTE_PUB.Shipment_Rec_Type;
12411 l_freight_charge_tbl ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
12412 l_freight_charge_tbl_out ASO_QUOTE_PUB.Freight_Charge_Tbl_Type;
12413 l_tax_detail_tbl ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
12414 l_tax_detail_tbl_out ASO_QUOTE_PUB.Tax_Detail_Tbl_Type;
12415
12416 l_Price_Attr_Tbl ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
12417 l_Price_Attr_Tbl_out ASO_QUOTE_PUB.Price_Attributes_Tbl_Type;
12418 l_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
12419 l_Price_Adj_Attr_Tbl ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
12420 l_Price_Adj_Attr_Tbl_out ASO_QUOTE_PUB.Price_Adj_Attr_Tbl_Type;
12421 l_qte_line_dtl_tbl ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
12422 l_qte_line_dtl_tbl_out ASO_QUOTE_PUB.Qte_Line_Dtl_Tbl_Type;
12423 l_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
12424 l_Line_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
12425 l_Line_Attr_Ext_Tbl_out ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
12426 lx_ln_Price_Adj_Tbl ASO_QUOTE_PUB.Price_Adj_Tbl_Type;
12427 lx_qte_line_rec ASO_QUOTE_PUB.Qte_Line_Rec_Type;
12428 l_control_rec ASO_QUOTE_PUB.Control_Rec_Type;
12429
12430 LX_PRICE_ADJ_RLTSHIP_ID NUMBER;
12431 LX_LINE_RELATIONSHIP_ID NUMBER;
12432
12433 X_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
12434 X_Sales_Credit_Tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
12435 X_Quote_Party_Tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
12436 l_hd_Attr_Ext_Tbl ASO_QUOTE_PUB.Line_Attribs_Ext_Tbl_Type;
12437 l_quote_party_tbl ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
12438 l_quote_party_tbl_out ASO_QUOTE_PUB.Quote_Party_Tbl_Type;
12439 l_quote_party_rec ASO_QUOTE_PUB.Quote_Party_rec_Type;
12440 l_sales_credit_tbl ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
12441 l_sales_credit_tbl_out ASO_QUOTE_PUB.Sales_Credit_Tbl_Type;
12442 l_sales_credit_rec ASO_QUOTE_PUB.Sales_Credit_rec_Type;
12443
12444 l_service_ref_line_id NUMBER;
12445
12446 l_return_status varchar2(1);
12447 qte_line_id NUMBER;
12448 i NUMBER;
12449 j NUMBER;
12450 k NUMBER;
12451 l_api_version CONSTANT NUMBER := 1.0;
12452
12453 BEGIN
12454 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12455 aso_debug_pub.add('Copy_Service - Begin ', 1, 'Y');
12456 aso_debug_pub.add('Copy_Service - x_qte_header_id '||x_qte_header_id, 1, 'Y');
12457 aso_debug_pub.add('Copy_Service - qte_header_id '||qte_header_id, 1, 'Y');
12458 aso_debug_pub.add('Copy_Service - p_qte_line_id '|| p_qte_line_id, 1, 'Y');
12459 END IF;
12460
12461 OPEN line_id_from_service;
12462 LOOP
12463 FETCH line_id_from_service INTO qte_line_id;
12464 EXIT WHEN line_id_from_service%NOTFOUND;
12465 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12466 aso_debug_pub.add('Copy_Service - inside cursor qte_line_id '|| qte_line_id, 1, 'Y');
12467 END IF;
12468 l_qte_line_rec := ASO_UTILITY_PVT.Query_Qte_Line_Row(qte_line_id);
12469
12470 l_qte_line_rec.quote_header_id := x_qte_header_id;
12471
12472 l_qte_line_dtl_tbl := ASO_UTILITY_PVT.Query_Line_Dtl_Rows(qte_line_id);
12473
12474
12475 IF l_qte_line_dtl_tbl.count > 0 THEN
12476 FOR k IN 1..l_qte_line_dtl_tbl.count LOOP
12477 IF l_qte_line_dtl_tbl(k).service_ref_type_code = 'QUOTE' THEN
12478 IF l_qte_line_dtl_tbl(k).service_ref_line_id is NOT NULL THEN
12479 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12480 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');
12481 END IF;
12482 l_service_ref_line_id :=
12483 l_line_index_link_tbl(l_qte_line_dtl_tbl(k).service_ref_line_id);
12484 l_qte_line_dtl_tbl(k).service_ref_line_id := l_service_ref_line_id;
12485 END IF;
12486 END IF;
12487 END LOOP;
12488 END IF;
12489 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12490 aso_debug_pub.add('Copy_Service - 2 l_service_ref_line_id '|| l_service_ref_line_id, 1, 'Y');
12491 END IF;
12492 /*
12493 FOR k IN 1..l_qte_line_dtl_tbl.count LOOP
12494 l_qte_line_dtl_tbl(k).config_header_id := p_config_header_id;
12495 l_qte_line_dtl_tbl(k).config_revision_num := p_config_revision_num;
12496 END LOOP;
12497 */
12498
12499 l_line_attr_Ext_Tbl := ASO_UTILITY_PVT.Query_Line_Attribs_Ext_Rows(qte_line_id);
12500 l_price_adj_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Rows(qte_header_id,qte_line_id);
12501
12502 FOR j IN 1..l_price_adj_tbl.count LOOP
12503 l_price_adj_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12504 END LOOP;
12505
12506 l_price_adj_attr_tbl := ASO_UTILITY_PVT.Query_Price_Adj_Attr_Rows(p_price_adj_tbl => l_price_adj_tbl);
12507 l_price_attr_tbl := ASO_UTILITY_PVT.Query_Price_Attr_Rows(qte_header_id, qte_line_id);
12508
12509 FOR j IN 1..l_price_attr_tbl.count LOOP
12510 l_price_attr_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12511 END LOOP;
12512
12513 l_payment_tbl := ASO_UTILITY_PVT.Query_Payment_Rows(qte_header_id, QTE_LINE_ID);
12514
12515 FOR j IN 1..l_payment_tbl.count LOOP
12516 l_payment_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12517 l_payment_tbl(j).CREDIT_CARD_APPROVAL_CODE := NULL;
12518 l_payment_tbl(j).CREDIT_CARD_APPROVAL_DATE := NULL;
12519 l_payment_tbl(j).PAYMENT_AMOUNT := NULL;
12520 END LOOP;
12521
12522 l_shipment_tbl := ASO_UTILITY_PVT.Query_Shipment_Rows(qte_header_id, QTE_LINE_ID);
12523 FOR j IN 1..l_shipment_tbl.count LOOP
12524 l_shipment_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12525 END LOOP;
12526
12527 l_sales_credit_tbl := ASO_UTILITY_PVT.Query_Sales_Credit_Row(qte_header_id,QTE_LINE_ID);
12528 FOR j IN 1..l_sales_credit_tbl.count LOOP
12529 l_sales_credit_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12530 END LOOP;
12531
12532 l_quote_party_tbl := ASO_UTILITY_PVT.Query_Quote_Party_Row(qte_header_id,QTE_LINE_ID);
12533 FOR j IN 1..l_quote_party_tbl.count LOOP
12534 l_quote_party_tbl(j).QUOTE_HEADER_ID := x_qte_header_id;
12535 END LOOP;
12536
12537 l_freight_charge_tbl := ASO_UTILITY_PVT.Query_Freight_Charge_Rows(l_shipment_tbl);
12538 l_tax_detail_tbl := ASO_UTILITY_PVT.Query_Tax_Detail_Rows(qte_header_id,QTE_LINE_ID, l_shipment_tbl);
12539 -- BC4J Fix
12540 --l_qte_line_rec.quote_line_id := null;
12541 ASO_QUOTE_LINES_PVT.Insert_Quote_Line_Rows (
12542 p_control_rec => l_control_rec,
12543 P_qte_Line_Rec => l_qte_line_rec,
12544 P_qte_line_dtl_tbl => l_qte_line_dtl_tbl,
12545 P_Line_Attribs_Ext_Tbl => l_line_attr_ext_tbl,
12546 P_price_attributes_tbl => l_price_attr_tbl,
12547 P_Price_Adj_Tbl => l_price_adj_tbl,
12548 P_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl,
12549 P_Payment_Tbl => l_payment_tbl,
12550 P_Shipment_Tbl => l_shipment_tbl,
12551 P_Freight_Charge_Tbl => l_freight_charge_tbl,
12552 P_Tax_Detail_Tbl => l_tax_detail_tbl,
12553 P_Sales_Credit_Tbl => l_sales_credit_tbl,
12554 P_Quote_Party_Tbl => l_quote_party_tbl,
12555 x_qte_Line_Rec => lx_qte_line_rec,
12556 x_qte_line_dtl_tbl => l_qte_line_dtl_tbl_out,
12557 x_Line_Attribs_Ext_Tbl => l_line_attr_Ext_Tbl_out,
12558 x_price_attributes_tbl => l_price_attr_tbl_out,
12559 x_Price_Adj_Tbl => lx_ln_price_adj_tbl,
12560 x_Price_Adj_Attr_Tbl => l_Price_Adj_Attr_Tbl_out,
12561 x_Payment_Tbl => l_payment_tbl_out,
12562 x_Shipment_Tbl => l_shipment_tbl_out,
12563 x_Freight_Charge_Tbl => l_freight_charge_tbl_out,
12564 x_Tax_Detail_Tbl => l_tax_detail_tbl_out,
12565 X_Sales_Credit_Tbl => l_sales_credit_tbl_out,
12566 X_Quote_Party_Tbl => l_quote_party_tbl_out,
12567 X_Return_Status => l_return_status,
12568 X_Msg_Count => x_msg_count,
12569 X_Msg_Data => x_msg_data);
12570
12571
12572 l_qte_line_dtl_tbl := l_qte_line_dtl_tbl_out;
12573 l_line_attr_Ext_Tbl := l_line_attr_Ext_Tbl_out;
12574 l_price_attr_tbl := l_price_attr_tbl_out;
12575 l_Price_Adj_Attr_Tbl := l_Price_Adj_Attr_Tbl_out;
12576 l_payment_tbl := l_payment_tbl_out;
12577 l_shipment_tbl := l_shipment_tbl_out;
12578 l_freight_charge_tbl := l_freight_charge_tbl_out;
12579 l_tax_detail_tbl := l_tax_detail_tbl_out;
12580 l_sales_credit_tbl := l_sales_credit_tbl_out;
12581 l_quote_party_tbl := l_quote_party_tbl_out;
12582
12583
12584 IF p_control_rec.copy_att_flag = 'Y' THEN
12585 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12586 aso_debug_pub.add('Copy_Rows - Begin- before config line copy_attch ', 1, 'Y');
12587 END IF;
12588
12589 ASO_ATTACHMENT_INT.Copy_Attachments(
12590 p_api_version => l_api_version,
12591 p_old_object_code => 'ASO_QUOTE_LINES_ALL',
12592 p_new_object_code => 'ASO_QUOTE_LINES_ALL',
12593 p_old_object_id => qte_line_id,
12594 p_new_object_id => lx_qte_line_rec.quote_line_id,
12595 x_return_status => x_return_status ,
12596 x_msg_count => x_msg_count,
12597 x_msg_data => x_msg_data
12598 );
12599
12600 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12601 aso_debug_pub.add('Copy_Rows -After config line copy_attch '||x_return_status, 1, 'Y');
12602 END IF;
12603
12604 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
12605 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
12606 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12607 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
12608 FND_MESSAGE.Set_Token('ROW', 'ASO_COPYQUOTE_ AFTER_ATTACHMENTS', TRUE);
12609 FND_MSG_PUB.ADD;
12610 END IF;
12611 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12612 ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
12613 x_return_status := FND_API.G_RET_STS_ERROR;
12614 RAISE FND_API.G_EXC_ERROR;
12615 END IF ;
12616 END IF;
12617
12618 FOR j IN 1..l_price_adj_tbl.count LOOP
12619 l_price_index_link_tbl(l_price_adj_tbl(j).price_adjustment_id) :=
12620 lx_ln_price_adj_tbl(j).price_adjustment_id;
12621 END LOOP;
12622 l_line_index_link_tbl(qte_line_id) := lx_qte_line_rec.quote_line_id;
12623
12624 -- CLOSE line_id_from_config;
12625
12626 IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
12627 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
12628 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12629 FND_MESSAGE.Set_Name('ASO', 'ASO_API_UNEXP_ERROR');
12630 FND_MESSAGE.Set_Token('ROW', 'ASO_QUOTE_HEADER', TRUE);
12631 FND_MSG_PUB.ADD;
12632 END IF;
12633
12634 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12635 ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
12636 x_return_status := FND_API.G_RET_STS_ERROR;
12637 END IF;
12638
12639
12640 END LOOP;
12641
12642 CLOSE line_id_from_service;
12643
12644 END service_copy;
12645
12646 PROCEDURE Quote_Security_Check(
12647 P_Api_Version_Number IN NUMBER,
12648 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
12649 P_User_Id IN NUMBER,
12650 X_Resource_Id OUT NOCOPY /* file.sql.39 change */ NUMBER,
12651 X_Security_Flag OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12652 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
12653 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
12654 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12655 )
12656 IS
12657
12658 l_role_type VARCHAR2(240) := NULL;
12659 l_mgr_flag VARCHAR2(1) := NULL;
12660 l_api_name CONSTANT VARCHAR2(30) := 'QUOTE_SECURITY_CHECK';
12661 l_api_version_number CONSTANT NUMBER := 1.0;
12662
12663 Cursor C_salesrep (X_User_Id NUMBER) IS
12664 SELECT j.resource_id
12665 /* FROM jtf_rs_srp_vl srp, jtf_rs_resource_extns j */ --Commented Code Yogeshwar (MOAC)
12666 FROM jtf_rs_salesreps_mo_v srp, jtf_rs_resource_extns j --New Code Yogeshwar (MOAC)
12667 WHERE j.user_id = X_User_Id
12668 AND j.resource_id = srp.resource_id
12669 AND srp.status = 'A'
12670 AND nvl(trunc(srp.start_date_active), trunc(sysdate)) <= trunc(sysdate)
12671 AND nvl(trunc(srp.end_date_active), trunc(sysdate)) >= trunc(sysdate);
12672 /* --Commented Code Start Yogeshwar (MOAC)
12673 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);
12674 */ --Commented Code End yogeshwar (MOAC)
12675
12676
12677 Cursor C_role (X_Resource_Id NUMBER, X_Profile_Role_Type VARCHAR2) IS
12678 SELECT role.role_type_code, role.manager_flag
12679 FROM JTF_RS_DEFRESROLES_VL role, JTF_RS_DEFRESOURCES_VL res
12680 WHERE role.role_resource_id = res.resource_id
12681 AND res.resource_id = X_resource_id
12682 AND nvl(trunc(role.res_rl_start_date), trunc(sysdate)) <= trunc(sysdate)
12683 AND nvl(trunc(role.res_rl_end_date), trunc(sysdate)) >= trunc(sysdate)
12684 AND role.ROLE_TYPE_CODE = X_profile_role_type
12685 AND role.delete_flag = 'N';
12686
12687 BEGIN
12688
12689 -- Standard call to check for call compatibility.
12690 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
12691 p_api_version_number,
12692 l_api_name,
12693 G_PKG_NAME)
12694 THEN
12695 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
12696 END IF;
12697
12698 -- Initialize message list if p_init_msg_list is set to TRUE.
12699 IF FND_API.to_Boolean( p_init_msg_list )
12700 THEN
12701 FND_MSG_PUB.initialize;
12702 END IF;
12703
12704
12705 -- Initialize API return status to SUCCESS
12706 x_return_status := FND_API.G_RET_STS_SUCCESS;
12707
12708 X_Resource_Id := NULL;
12709 X_Security_Flag := 'N';
12710
12711 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12712 aso_debug_pub.add('Quote_Security_Check(): before main logic', 1, 'Y');
12713 END IF;
12714
12715 FOR c_sv IN C_salesrep(p_user_id) LOOP
12716 X_Resource_Id := c_sv.resource_id;
12717 IF X_Resource_Id IS NOT NULL THEN
12718 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12719 aso_debug_pub.add('Quote_Security_Check(): Resource_Id IS NOT NULL', 1, 'Y');
12720 END IF;
12721 IF (FND_PROFILE.Value('ASO_ROLE_TYPE')) IS NOT NULL THEN
12722 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12723 aso_debug_pub.add('Quote_Security_Check(): ASO_ROLE_TYPE NOT NULL', 1, 'Y');
12724 END IF;
12725 FOR c_r IN C_role(X_Resource_Id, FND_PROFILE.Value('ASO_ROLE_TYPE')) LOOP
12726 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12727 aso_debug_pub.add('Quote_Security_Check(): C_Role FOUND', 1, 'Y');
12728 END IF;
12729 l_mgr_flag := c_r.manager_flag;
12730 IF l_mgr_flag ='Y' THEN
12731 X_Security_Flag := 'Y';
12732 END IF;
12733 END LOOP;
12734 IF l_mgr_flag IS NULL THEN
12735 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12736 aso_debug_pub.add('Quote_Security_Check(): C_Role NOTFOUND', 1, 'Y');
12737 END IF;
12738 X_Security_Flag := 'Y';
12739 END IF;
12740 ELSE
12741 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12742 aso_debug_pub.add('Quote_Security_Check(): ASO_ROLE_TYPE IS NULL', 1, 'Y');
12743 END IF;
12744 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
12745 FND_MESSAGE.set_name('ASO','ASO_ERR_ROLE_TYPE_NULL');
12746 FND_MSG_PUB.ADD;
12747 x_return_status := FND_API.G_RET_STS_ERROR;
12748 END IF;
12749 END IF;
12750 END IF;
12751 END LOOP;
12752
12753 IF aso_debug_pub.g_debug_flag = 'Y' THEN
12754 aso_debug_pub.add('Quote_Security_Check(): after main logic', 1, 'Y');
12755 aso_debug_pub.add('Quote_Security_Check(): End: Resource_Id: '||X_Resource_Id, 1, 'Y');
12756 aso_debug_pub.add('Quote_Security_Check(): End: Security_Flag: '||X_Security_Flag, 1, 'Y');
12757 END IF;
12758
12759
12760 -- Standard call to get message count and if count is 1, get message info.
12761 FND_MSG_PUB.Count_And_Get
12762 ( p_count => x_msg_count,
12763 p_data => x_msg_data
12764 );
12765
12766 End Quote_Security_Check;
12767
12768
12769 End ASO_QUOTE_HEADERS_PVT;