1 PACKAGE BODY IBE_Quote_Checkout_Pvt as
2 /* $Header: IBEVQASB.pls 120.13.12020000.3 2013/03/11 09:18:25 amaheshw ship $ */
3 -- Start of Comments
4 -- Package name : IBE_Quote_Checkout_Pvt
5 -- Purpose :
6 -- NOTE :
7
8 -- End of Comments
9
10 -- Default number of records fetch per call
11 l_true VARCHAR2(1) := FND_API.G_TRUE;
12 G_PKG_NAME CONSTANT VARCHAR2(30) := 'IBE_Quote_Checkout_Pvt';
13 G_FILE_NAME CONSTANT VARCHAR2(12):= 'IBEVQASB.pls';
14 G_AUTH_ERROR CONSTANT NUMBER :=3;
15 PROCEDURE Authorize_Credit_Card(
16 p_qte_Header_Id IN NUMBER
17 ,x_return_status OUT NOCOPY VARCHAR2
18 ,x_msg_count OUT NOCOPY NUMBER
19 ,x_msg_data OUT NOCOPY VARCHAR2
20 ) IS
21
22 l_trxn_extension_id NUMBER;
23 l_payer IBY_FNDCPT_COMMON_PUB.PayerContext_rec_type;
24 l_payee_rec IBY_FNDCPT_TRXN_PUB.PayeeContext_rec_type;
25 l_party_id NUMBER;
26 l_resource_id NUMBER := FND_API.G_MISS_NUM;
27 l_org_type VARCHAR2(30) := 'OPERATING_UNIT';
28 l_payment_function VARCHAR2(30) := 'CUSTOMER_PAYMENT';
29 l_auth_result IBY_FNDCPT_TRXN_PUB.AuthResult_rec_type;
30 l_amount IBY_FNDCPT_TRXN_PUB.Amount_rec_type;
31 l_auth_attribs IBY_FNDCPT_TRXN_PUB.AuthAttribs_rec_type;
32 l_response IBY_FNDCPT_COMMON_PUB.Result_rec_type;
33 l_trxn_currency_code VARCHAR2(30) := 'USD';
34 l_return_status VARCHAR2(30) := NULL;
35 l_msg_count NUMBER;
36 l_msg_data VARCHAR2(2000);
37 l_auth_amount NUMBER;
38 L_API_NAME CONSTANT VARCHAR2(30) := 'Authorize_Credit_Card';
39 l_quote_source_code VARCHAR2(40);
40 l_org_id NUMBER;
41
42 -- bug 16466998
43 l_cust_account_id NUMBER;
44
45
46 Cursor c_get_trxn_extn_id (c_quote_header_id number)
47 IS
48 select trxn_extension_id
49 from aso_payments
50 where quote_header_id = c_quote_header_id and quote_line_id is null;
51
52 Cursor c_get_quote_details (c_quote_header_id number)
53 IS
54 -- bug 16466998 select total_quote_price, currency_code, party_id, resource_id, quote_source_code
55 select total_quote_price, currency_code, party_id, resource_id, quote_source_code, cust_account_id
56 from ibe_quote_headers_v
57 where quote_header_id = c_quote_header_id;
58
59 Cursor c_get_org_id (c_party_id number)
60 IS
61 select object_id
62 from hz_relationships
63 where party_id = c_party_id and directional_flag='F'
64 and relationship_code in ('EMPLOYEE_OF','CONTACT_OF') and rownum <2;
65
66 PRAGMA AUTONOMOUS_TRANSACTION;
67
68 BEGIN
69
70
71 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
72 IBE_UTIL.DEBUG('Inside Authorize_Credit_Card api');
73 IBE_UTIL.DEBUG('PRAGMA AUTONOMOUS_TRANSACTION');
74 END IF;
75
76 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
77 IBE_UTIL.DEBUG('Authorize_Credit_Card:FND_MSG_PUB.initialized');
78 END IF;
79
80 open c_get_trxn_extn_id(p_qte_Header_Id);
81 fetch c_get_trxn_extn_id into l_trxn_extension_id;
82 close c_get_trxn_extn_id;
83
84 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
85 IBE_UTIL.DEBUG('Authorize_Credit_Card: After trxn query - l_trxn_extension_id' || l_trxn_extension_id);
86 END IF;
87
88 open c_get_quote_details(p_qte_Header_Id);
89 -- bug 16466998 fetch c_get_quote_details into l_auth_amount, l_trxn_currency_code, l_party_id, l_resource_id, l_quote_source_code;
90 fetch c_get_quote_details into l_auth_amount, l_trxn_currency_code, l_party_id, l_resource_id, l_quote_source_code, l_cust_account_id;
91 close c_get_quote_details;
92
93 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
94 IBE_UTIL.DEBUG('Authorize_Credit_Card:l_trxn_currency_code'|| l_trxn_currency_code);
95 IBE_UTIL.DEBUG('Authorize_Credit_Card:Amount populated...'|| l_auth_amount);
96 IBE_UTIL.DEBUG('Authorize_Credit_Card:l_party_id populated...'|| l_party_id);
97 IBE_UTIL.DEBUG('Authorize_Credit_Card:l_resource_id populated...'|| l_resource_id);
98 IBE_UTIL.DEBUG('Authorize_Credit_Card:l_quote_source_code...'|| l_quote_source_code);
99 IBE_UTIL.DEBUG(' bug 16466998 Authorize_Credit_Card:l_cust_account_id...'|| l_cust_account_id);
100 END IF;
101
102 IF(l_resource_id is not null AND l_resource_id <> FND_API.G_MISS_NUM AND l_party_id is not null
103 and l_quote_source_code = 'Order Capture Quotes') THEN
104 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
105 IBE_UTIL.DEBUG('Authorize_Credit_Card: l_resource_id not null and is Order Capture Quote. Get the org_id');
106 END IF;
107
108 open c_get_org_id(l_party_id);
109 fetch c_get_org_id into l_org_id;
110 if c_get_org_id%NOTFOUND THEN
111 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
112 IBE_UTIL.DEBUG('Authorize_Credit_Card: l_org_id not found');
113 END IF;
114 else
115 l_party_id := l_org_id;
116 end if;
117 close c_get_org_id;
118
119
120 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
121 IBE_UTIL.DEBUG('Authorize_Credit_Card: After getting the org_id- party_id is '||l_party_id);
122 END IF;
123 END IF;
124
125 l_payer.payment_function := 'CUSTOMER_PAYMENT';
126 l_payer.party_id := l_party_id;
127 l_payee_rec.Org_Type := 'OPERATING_UNIT';
128 l_payee_rec.Org_Id := MO_GLOBAL.get_current_org_id;
129 l_amount.value := l_auth_amount;
130 l_amount.currency_code := l_trxn_currency_code;
131 l_auth_attribs.RiskEval_Enable_Flag := 'N'; -- Risk Validation should not be done
132
133 -- bug 16466998
134 l_payer.cust_account_id := l_cust_account_id;
135
136 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
137 IBE_UTIL.DEBUG('Authorize_Credit_Card:Before call to create auth trxn_extension_id is: '||l_trxn_extension_id);
138 IBE_UTIL.DEBUG('Authorize_Credit_Card:Payer context values ...');
139 IBE_UTIL.DEBUG('Authorize_Credit_Card:payment function'||l_payment_function);
140 IBE_UTIL.DEBUG('Authorize_Credit_Card:l_payer.party_id'||l_party_id);
141 IBE_UTIL.DEBUG('Authorize_Credit_Card:amount is '||l_amount.value);
142 IBE_UTIL.DEBUG('Authorize_Credit_Card:currency is '||l_amount.currency_code);
143 IBE_UTIL.DEBUG('Authorize_Credit_Card:risk eval flag is '||l_auth_attribs.RiskEval_Enable_Flag);
144 IBE_UTIL.DEBUG(' bug 16466998 Authorize_Credit_Card:l_cust_account_id is '||l_cust_account_id);
145 IBE_UTIL.DEBUG(' bug 16466998 Authorize_Credit_Card:l_payer.cust_account_id is '||l_payer.cust_account_id);
146 IBE_UTIL.DEBUG('Authorize_Credit_Card:Calling IBY_Fndcpt_Trxn_Pub.Create_Authorization ');
147 END IF;
148
149
150 IBY_Fndcpt_Trxn_Pub.Create_Authorization
151 (p_api_version => 1.0,
152 x_return_status => l_return_status,
153 x_msg_count => l_msg_count,
154 x_msg_data => l_msg_data,
155 p_payer => l_payer,
156 p_payer_equivalency => IBY_FNDCPT_COMMON_PUB.G_PAYER_EQUIV_UPWARD,
157 p_payee => l_payee_rec,
158 p_trxn_entity_id => l_trxn_extension_id,
159 p_auth_attribs => l_auth_attribs,
160 p_amount => l_amount,
161 x_auth_result => l_auth_result,
162 x_response => l_response);
163
164
165 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
166 IBE_UTIL.DEBUG('Authorize_Credit_Card: After call to IBY_Fndcpt_Trxn_Pub.Create_Authorization');
167 IBE_UTIL.DEBUG('Authorize_Credit_Card: l_return_status:'||l_return_status);
168 IBE_UTIL.DEBUG('Authorize_Credit_Card: CC l_response.result_code '||l_response.result_code);
169 IBE_UTIL.DEBUG('Authorize_Credit_Card: x_msg_data:'|| l_msg_data);
170
171 if(l_response.result_code = 'IBY_0001' or l_response.result_code = 'COMMUNICATION_ERROR') then
172 IBE_UTIL.DEBUG('Authorize_Credit_Card: There was some communication error');
173 IBE_UTIL.DEBUG('Authorize_Credit_Card: x_msg_data:'|| l_msg_data);
174 end if;
175 END IF;
176
177 IF l_return_status = FND_API.G_RET_STS_SUCCESS AND l_response.result_code = 'AUTH_SUCCESS' THEN
178
179 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
180 IBE_UTIL.DEBUG('Authorize_Credit_Card:Authorization successful....Commiting the data');
181 END IF;
182 COMMIT;
183
184 ELSE
185 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
186 IBE_UTIL.DEBUG('Authorize_Credit_Card:CC Auth failed...!');
187 IBE_UTIL.DEBUG('Authorize_Credit_Card:l_response.result_code = '|| l_response.result_code);
188 END IF;
189
190 x_return_status := FND_API.G_RET_STS_ERROR;
191
192 FND_MSG_PUB.initialize;
193 FND_MESSAGE.CLEAR;
194
195 IF l_response.result_code = 'IBY_0020' or l_response.result_code = 'PAYMENT_SYS_REJECT' THEN
196
197 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
198 IBE_UTIL.DEBUG('Authorize_Credit_Card: Payment Decline - PAYMENT_SYS_REJECT ');
199 IBE_UTIL.DEBUG('Authorize_Credit_Card: x_msg_count '|| x_msg_count);
200 IBE_UTIL.DEBUG('Authorize_Credit_Card: x_msg_data '|| x_msg_data);
201 END IF;
202
203 FND_MESSAGE.SET_NAME('IBE','IBE_ERR_CC_AUTH_DECLINE');
204 FND_MSG_PUB.ADD;
205
206 ELSE
207 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
208 IBE_UTIL.DEBUG('Authorize_Credit_Card:Had some problem while processing the CC Auth.Setting common error msg ');
209 END IF;
210
211 FND_MESSAGE.SET_NAME('IBE','IBE_ERR_CC_AUTH_PROCESSING');
212 FND_MSG_PUB.ADD;
213
214 END IF;
215
216 RAISE FND_API.G_EXC_ERROR;
217 END IF;
218
219 EXCEPTION
220 WHEN FND_API.G_EXC_ERROR THEN
221 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
222 IBE_Util.Debug('Expected exception in IBE_Quote_Checkout_Pvt.Authorize_Credit_Card');
223 END IF;
224
225 x_return_status := FND_API.G_RET_STS_ERROR;
226 FND_Msg_Pub.Count_And_Get(p_encoded => FND_API.G_FALSE,
227 p_count => x_msg_count ,
228 p_data => x_msg_data);
229 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
230 IBE_Util.Debug('Expected exception count and data'||x_msg_count||'data = '||x_msg_data);
231 END IF;
232 RAISE FND_API.G_EXC_ERROR;
233
234 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
235 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
236 IBE_Util.Debug('Unexpected exception in IBE_Quote_Checkout_Pvt.Authorize_Credit_Card');
237 END IF;
238
239 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
240 FND_Msg_Pub.Count_And_Get(p_encoded => FND_API.G_FALSE,
241 p_count => x_msg_count ,
242 p_data => x_msg_data);
243 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
244
245 WHEN OTHERS THEN
246 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
247 IBE_Util.Debug('Unknown exception in IBE_Quote_Checkout_Pvt.Authorize_Credit_Card');
248 END IF;
249
250 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
251 IF FND_Msg_Pub.Check_Msg_Level(FND_Msg_Pub.G_MSG_LVL_UNEXP_ERROR) THEN
252 FND_Msg_Pub.Add_Exc_Msg(G_PKG_NAME,
253 L_API_NAME);
254 END IF;
255 FND_Msg_Pub.Count_And_Get(p_encoded => FND_API.G_FALSE,
256 p_count => x_msg_count ,
257 p_data => x_msg_data);
258
259 END Authorize_Credit_Card;
260
261
262 PROCEDURE Default_Order_State(
263 p_qte_Header_Id IN NUMBER
264 ,px_submit_Control_Rec IN OUT NOCOPY ASO_QUOTE_PUB.Submit_Control_Rec_Type
265 ) IS
266 l_qte_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
267
268 FUNCTION Boolean_To_GBoolean(p_Cond IN BOOLEAN) RETURN VARCHAR2 IS
269 BEGIN
270 IF p_Cond THEN
271 RETURN FND_API.G_TRUE;
272 ELSE
273 RETURN FND_API.G_FALSE;
274 END IF;
275 END Boolean_To_GBoolean;
276
277 BEGIN
278
279 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
280 IBE_Util.Debug('IBE_Quote_Checkout_Pvt.Default_Order_State Start');
281 END IF;
282
283 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
284 IBE_Util.Debug('Submit_Control_Rec.Book_Flag=' || px_submit_control_rec.book_flag);
285 IBE_Util.Debug('Submit_Control_Rec.Book_Flag=(' || px_submit_control_rec.book_flag || ')');
286 IBE_Util.Debug('FND_PROFILE(ASO_DEFAULT_ORDER_STATE)=(' || FND_PROFILE.Value('ASO_DEFAULT_ORDER_STATE') || ')');
287 END IF;
288
289 IF px_submit_control_rec.book_flag = FND_API.G_MISS_CHAR --OR
290 -- px_submit_control_rec.book_flag = 'F'
291 -- shouldn't be defaulting if F is passed in
292 THEN
293 l_qte_payment_tbl := IBE_Quote_Misc_pvt.getHeaderPaymentTbl(p_qte_header_id);
294
295 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
296 IBE_Util.Debug('qte_payment_tbl.COUNT=' || l_qte_payment_tbl.COUNT);
297 END IF;
298 IF l_qte_payment_tbl.COUNT = 1 THEN
299 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
300 IBE_UTIL.Debug('qte_payment_tbl(1).payment_type_code = ' || l_qte_payment_tbl(1).payment_type_code);
301 END IF;
302 IF l_qte_payment_tbl(1).payment_type_code IN ('CREDIT_CARD', 'PO') THEN
303 /*IF l_qte_payment_tbl(1).payment_ref_number IS NOT NULL THEN
304 px_submit_control_rec.book_flag :=
305 Boolean_To_GBoolean(FND_PROFILE.Value('ASO_DEFAULT_ORDER_STATE') = 'BOOKED');
306 ELSE
307 px_submit_control_rec.book_flag := FND_API.G_FALSE;
308 END IF;*/
309
310 /*mannamra: Credit Card Consolidation changes: 1. We will no longer use payment_ref_number, which would
311 be the credit card number when payment type is credit_card,
312 because only assignment id will be sufficient for ASO to
313 retrieve the credit card details.
314 2. PO number cannot be an independent payment type hence
315 not taking into consideration the case when only PO number
316 is passed.
317 */
318 IF (l_qte_payment_tbl(1).instr_assignment_id is not null
319 AND l_qte_payment_tbl(1).instr_assignment_id <> FND_API.G_MISS_NUM) THEN
320 px_submit_control_rec.book_flag :=
321 Boolean_To_GBoolean(FND_PROFILE.Value('ASO_DEFAULT_ORDER_STATE') = 'BOOKED');
322 ELSE
323 px_submit_control_rec.book_flag := FND_API.G_FALSE;
324 END IF;
325
326 ELSIF NVL(l_qte_payment_tbl(1).payment_type_code, 'CASH') IN ('CASH', 'CHECK') THEN
327 px_submit_control_rec.book_flag :=
328 Boolean_To_GBoolean(FND_PROFILE.Value('ASO_DEFAULT_ORDER_STATE') = 'BOOKED');
329 END IF;
330 ELSE -- Handles INVOICE payment type code
331 px_submit_control_rec.book_flag :=
332 Boolean_To_GBoolean(FND_PROFILE.Value('ASO_DEFAULT_ORDER_STATE') = 'BOOKED');
333 END IF;
334 END IF;
335
336 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
337 IBE_Util.Debug('Updated Submit_Control_Rec.Book_Flag=' || px_submit_control_rec.book_flag);
338 END IF;
339
340 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
341 IBE_Util.Debug('IBE_Quote_Checkout_Pvt.Default_Order_State Finishes');
342 END IF;
343
344 END Default_Order_State;
345
346 PROCEDURE SubmitQuote(
347 p_api_version_number IN NUMBER
348 ,p_commit IN VARCHAR2 := FND_API.g_false
349 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
350 ,p_quote_Header_Id IN NUMBER
351 ,p_last_update_date in DATE := FND_API.G_MISS_DATE
352
353 ,p_sharee_party_Id IN NUMBER := FND_API.G_MISS_NUM
354 ,p_sharee_cust_account_id IN NUMBER := FND_API.G_MISS_NUM
355 ,p_sharee_number IN NUMBER := FND_API.G_MISS_NUM
356
357 ,p_submit_Control_Rec IN ASO_QUOTE_PUB.Submit_Control_Rec_Type
358 := ASO_QUOTE_PUB.G_MISS_Submit_Control_Rec
359
360 ,p_customer_comments IN VARCHAR2 := FND_API.G_MISS_CHAR
361 ,p_reason_code IN VARCHAR2 := FND_API.G_MISS_CHAR
362 ,p_salesrep_email_id IN VARCHAR2 := FND_API.G_MISS_CHAR
363
364 -- 9/17/02: added to control calling validate_user_update
365 ,p_validate_user IN VARCHAR2 := FND_API.G_TRUE
366 ,p_minisite_id IN NUMBER := FND_API.G_MISS_NUM
367
368 ,x_order_header_rec OUT NOCOPY ASO_QUOTE_PUB.Order_Header_Rec_Type
369 --Mannamra: Added for bug 4716044
370 ,x_hold_flag OUT NOCOPY VARCHAR2
371 ,x_return_status OUT NOCOPY VARCHAR2
372 ,x_msg_count OUT NOCOPY NUMBER
373 ,x_msg_data OUT NOCOPY VARCHAR2
374 )
375 IS
376 L_API_NAME CONSTANT VARCHAR2(30) := 'SUBMITQUOTE';
377 L_API_VERSION CONSTANT NUMBER := 1.0;
378
379 l_privilege_type_code VARCHAR2(30);
380 l_qte_header_rec ASO_QUOTE_PUB.QTE_HEADER_REC_TYPE;
381 l_submit_control_rec ASO_QUOTE_PUB.Submit_Control_Rec_Type
382 := ASO_QUOTE_PUB.G_MISS_Submit_Control_Rec;
383 l_return_status VARCHAR2(1);
384 l_msg_count NUMBER;
385 l_msg_data VARCHAR2(2000);
386
387 PLACE_ORDER NUMBER := 6;
388
389
390 l_contract_id NUMBER;
391 l_related_obj_id NUMBER;
392 l_contract_number VARCHAR2(120);
393 l_current_state NUMBER;
394
395 l_contract_template_id NUMBER;
396 l_check_terms VARCHAR2(240) := null;
397
398 -- temp vars for NOCOPY OUT params
399 l_quote_header_id_tmp NUMBER;
400 l_last_update_date_tmp DATE;
401
402 l_quote_source_code ASO_QUOTE_HEADERS.QUOTE_SOURCE_CODE%TYPE;
403 l_sold_to_party_id NUMBER;
404 l_party_id NUMBER;
405 lx_party_id NUMBER;
406 l_last_updated_by NUMBER;
407 l_person_first_name HZ_PARTIES.PERSON_FIRST_NAME%TYPE;
408 l_person_last_name HZ_PARTIES.PERSON_LAST_NAME%TYPE;
409 l_hold_flag VARCHAR2(1);
410 --CC Auth
411 l_CC_Auth_Prof VARCHAR2(1) := NVL(FND_PROFILE.Value('IBE_PERFORM_CC_AUTH'), 'Y');
412 l_qte_payment_tbl ASO_QUOTE_PUB.Payment_Tbl_Type;
413 l_auth_flag VARCHAR2(1);
414 l_trxn_extension_id NUMBER;
415 l_payment_type_code VARCHAR2(30);
416
417 Cursor c_get_quote_details(c_quote_header_id number) IS
418 select quote_source_code, party_id, last_updated_by
419 from aso_quote_headers
420 where quote_header_id = c_quote_header_id;
421
422 Cursor c_get_party_id (c_user_id number) is
423 select customer_id
424 from fnd_user
425 where user_id = c_user_id;
426 Cursor c_get_auth_details (ci_extension_id IN iby_fndcpt_tx_extensions.trxn_extension_id%TYPE)
427 IS
428 SELECT authorized_flag
429 FROM iby_trxn_extensions_v
430 WHERE (trxn_extension_id = ci_extension_id);
431
432 Cursor c_get_trxn_extn_id (c_quote_header_id number)
433 IS
434 select trxn_extension_id
435 FROM ASO_PAYMENTS
436 WHERE quote_HEADER_ID = c_quote_header_id and QUOTE_LINE_ID is null;
437
438 BEGIN
439 -- Standard Start of API savepoint
440 SAVEPOINT SUBMITQUOTE_PVT;
441 -- Standard call to check for call compatibility.
442 IF NOT FND_API.Compatible_API_Call (L_API_VERSION,
443 P_Api_Version_Number,
444 L_API_NAME,
445 G_PKG_NAME )
446 THEN
447 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
448 END IF;
449 -- Initialize message list IF p_init_msg_list is set to TRUE.
450 IF FND_API.to_Boolean( p_init_msg_list ) THEN
451 FND_MSG_PUB.initialize;
452 END IF;
453
454 -- Initialize API return status to success
455 x_return_status := FND_API.G_RET_STS_SUCCESS;
456
457 -- API body
458 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
459 IBE_UTIL.DEBUG('SUBMITQUOTE: Before Calling log_environment_info');
460 END IF;
461 IBE_Quote_Misc_pvt.log_environment_info();
462 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
463 IBE_UTIL.DEBUG('SUBMITQUOTE: After Calling log_environment_info');
464 END IF;
465 --ibe_util.enable_debug;
466 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
467 IBE_Util.Debug('Begin IBE_Quote_Checkout_Pvt.SubmitQuote()');
468 END IF;
469
470 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
471 IBE_UTIL.DEBUG('Submit_Quote: p_validate_user flag='||p_validate_user);
472 END IF;
473 if (fnd_api.to_boolean(p_validate_user)) then
474 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
475 IBE_UTIL.DEBUG('Submit_Quote: before calling validate_user_update()');
476 END IF;
477 -- User Authentication
478 IBE_Quote_Misc_pvt.Validate_User_Update(
479 p_init_msg_list => FND_API.G_TRUE
480 ,p_quote_header_id => p_quote_Header_Id
481 ,p_quote_retrieval_number => p_sharee_number
482 ,p_validate_user => FND_API.G_TRUE
483 ,p_privilege_type_code => 'A'
484 ,p_save_type => PLACE_ORDER
485 ,p_last_update_date => p_last_update_date
486 ,x_return_status => x_return_status
487 ,x_msg_count => x_msg_count
488 ,x_msg_data => x_msg_data
489 );
490 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
491 RAISE FND_API.G_EXC_ERROR;
492 END IF;
493
494 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
495 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
496 END IF;
497 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
498 IBE_UTIL.debug('SUBmit_quote: after calling validate_user_update()');
499 END IF;
500 end if;
501
502 l_qte_header_rec.quote_header_id := p_quote_header_id;
503 /*IF p_sharee_number IS NOT NULL
504 AND p_sharee_number <> FND_API.G_MISS_NUM THEN
505 -- save cart check permisson
506 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
507 IBE_Util.Debug('IBE_Quote_Save_pvt.Save() starts');
508 END IF;
509
510 IBE_Quote_Save_pvt.Save(
511 p_api_version_number => p_api_version_number
512 ,p_init_msg_list => FND_API.G_TRUE
513 ,p_commit => FND_API.G_FALSE
514 ,p_sharee_number => p_sharee_number
515 ,p_sharee_party_id => p_sharee_party_id
516 ,p_sharee_cust_account_id => p_sharee_cust_account_id
517 ,p_changeowner => fnd_api.g_true
518 ,p_qte_header_rec => l_qte_header_rec
519 ,x_quote_header_id => l_quote_header_id_tmp
520 ,x_last_update_date => l_last_update_date_tmp
521 ,x_return_status => x_return_status
522 ,x_msg_count => x_msg_count
523 ,x_msg_data => x_msg_data);
524
525 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
526 IBE_Util.Debug('IBE_Quote_Save_pvt.Save() finishes');
527 END IF;
528
529 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
530 RAISE FND_API.G_EXC_ERROR;
531 END IF;
532
533 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
534 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
535 END IF;
536
537 l_qte_header_rec.quote_header_id := l_quote_header_id_tmp;
538 l_qte_header_rec.last_update_date := l_last_update_date_tmp;
539
540 END IF;*/
541
542 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
543 IBE_Util.Debug('ASO_Quote_Pub.Default_Order_State starts');
544 END IF;
545
546 l_submit_control_rec := p_submit_control_rec;
547 Default_Order_State(p_qte_header_id => l_qte_header_rec.quote_header_id,
548 px_submit_control_Rec => l_submit_control_rec);
549
550 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
551 IBE_Util.Debug('ASO_Quote_Pub.Default_Order_State finishes. Control_Rec.book_flag = ' ||
552 l_submit_control_rec.book_flag);
553 END IF;
554
555 -- Added for Contracts Integration
556
557 IF (FND_Profile.Value('OKC_ENABLE_SALES_CONTRACTS') = 'Y' ) THEN
558 -- check if the contract is associated to the quote. If not then retrieve the template id and pass it in header rec.
559 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
560 IBE_Util.Debug('Contracts feature is turned ON, before calling Contract get_terms_template');
561 END IF;
562 l_check_terms := OKC_TERMS_UTIL_GRP.Get_Terms_Template( p_doc_type => 'QUOTE',
563 p_doc_id => l_qte_header_rec.quote_header_id);
564 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
565 IBE_Util.Debug('After get_terms_template api, l_check_terms='||l_check_terms);
566 END IF;
567
568 IF (l_check_terms is null) THEN
569 /*mannamra: changes for MOAC*/
570 --l_contract_template_id := FND_PROFILE.VALUE('ASO_DEFAULT_CONTRACT_TEMPLATE'); old style
571 l_contract_template_id := to_number(ASO_UTILITY_PVT.GET_OU_ATTRIBUTE_VALUE(ASO_UTILITY_PVT.G_DEFAULT_CONTRACT_TEMPLATE)); --New style
572 /*mannamra: end of changes for MOAC*/
573 END IF;
574
575 -- Get the quote details like last_updated_by, quote_source_code, party_id
576 open c_get_quote_details(l_qte_header_rec.quote_header_id);
577 fetch c_get_quote_details into l_quote_source_code,
578 l_sold_to_party_id,
579 l_last_updated_by;
580 close c_get_quote_details;
581
582 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
583 IBE_Util.Debug('Quote Source Code = '||l_quote_source_code);
584 IBE_Util.Debug('Sold To Party Id = '||l_sold_to_party_id);
585 IBE_Util.Debug('last updated by = '||l_last_updated_by);
586 END IF;
587
588 -- for Express Checkout carts, use the last_updated_by column to get the Party Id. If the party Id is null then
589 -- use the Sold To Party Id.
590 -- For Other Carts, get the party Id depending on the fnd_global.user_id
591
592 IF (l_quote_source_code = 'IStore Oneclick') THEN
593 open c_get_party_id(l_last_updated_by);
594 fetch c_get_party_id into l_party_id;
595 close c_get_party_id;
596
597 IF l_party_id is null THEN
598 l_party_id := l_sold_to_party_id;
599 END IF;
600 ELSE
601 open c_get_party_id(FND_GLOBAL.USER_ID);
602 fetch c_get_party_id into l_party_id;
603 close c_get_party_id;
604 END IF;
605
606 -- Get the First Name and Last Name for the derived party id.
607 -- Call ibe_workflow_pvt.get_name_details.
608 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
609 IBE_Util.Debug('Before calling get_name_details, partyId = '||l_party_id);
610 END IF;
611
612 IF (l_party_id is not null) THEN
613 IBE_WORKFLOW_PVT.get_name_details(
614 p_party_id => l_party_id,
615 p_user_type => FND_API.G_MISS_CHAR,
616 x_contact_first_name => l_person_first_name,
617 x_contact_last_name => l_person_last_name,
618 x_party_id => lx_party_id);
619 END IF;
620
621 -- set the header record with all the required data.
622 l_qte_header_rec.Customer_Name_And_Title := l_person_first_name ||' '||l_person_last_name;
623 l_qte_header_rec.Customer_Signature_Date := sysdate;
624 l_qte_header_rec.Contract_Template_Id := l_contract_template_id;
625
626 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
627 IBE_Util.Debug('Customer Name and Title ='||l_qte_header_rec.Customer_Name_And_Title);
628 IBE_Util.Debug('Customer Name and Title ='||l_qte_header_rec.Customer_Signature_Date);
629 IBE_Util.Debug('Customer Name and Title ='||l_qte_header_rec.Contract_Template_Id);
630 IBE_Util.Debug('Before calling new ASO Submit Quote api with Header Rec');
631 END IF;
632
633 -- Added for CC Authorization
634 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
635 IBE_UTIL.Debug('l_CC_Auth_Prof = ' || l_CC_Auth_Prof);
636 IBE_Util.Debug('Checking if Authorize_Credit_Card() need to be called');
637 END IF;
638
639 IF l_CC_Auth_Prof = 'Y' THEN
640
641 l_qte_payment_tbl := IBE_Quote_Misc_pvt.getHeaderPaymentTbl(p_quote_Header_Id);
642 IF l_qte_payment_tbl.COUNT = 1 THEN
643 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
644 IBE_UTIL.Debug('qte_payment_tbl(1).payment_type_code = ' || l_qte_payment_tbl(1).payment_type_code);
645 END IF;
646 l_payment_type_code := l_qte_payment_tbl(1).payment_type_code;
647 END IF;
648
649 open c_get_trxn_extn_id(l_qte_header_rec.quote_header_id);
650 fetch c_get_trxn_extn_id into l_trxn_extension_id;
651 close c_get_trxn_extn_id;
652
653 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
654 IBE_Util.Debug('l_trxn_extension_id from aso_payments = '||l_trxn_extension_id);
655 END IF;
656
657 open c_get_auth_details(l_trxn_extension_id);
658 fetch c_get_auth_details into l_auth_flag;
659 close c_get_auth_details;
660
661 END IF;
662
663 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
664 IBE_Util.Debug('l_trxn_extension_id Auth Flag = '||l_auth_flag);
665 END IF;
666
667 IF l_CC_Auth_Prof = 'Y' and l_auth_flag = 'N' and l_payment_type_code='CREDIT_CARD' THEN
668 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
669 IBE_Util.Debug('Going to call Authorize_Credit_Card');
670 END IF;
671 Authorize_Credit_Card(p_qte_header_id => l_qte_header_rec.quote_header_id
672 ,x_return_status => x_return_status
673 ,x_msg_count => x_msg_count
674 ,x_msg_data => x_msg_data);
675
676 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
677 IBE_Util.Debug('After Authorize_Credit_Card checking the returned status');
678 END IF;
679
680 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
681 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
682 IBE_Util.Debug('IBE_Quote_Checkout_Pvt.Authorize_Credit_Card(): Exp Error while entering the quote ');
683 END IF;
684
685 RAISE FND_API.G_EXC_ERROR;
686 END IF;
687
688 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
689 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
690 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote(): Unexp Error while entering the quote ');
691 END IF;
692
693 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
694 END IF;
695 END IF;
696
697 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
698 IBE_Util.Debug('After Authorize_Credit_Card');
699 END IF;
700
701 ASO_Quote_Pub.Submit_quote(
702 P_Api_Version_Number => p_api_version_number
703 ,P_Init_Msg_List => FND_API.G_TRUE
704 ,P_Commit => FND_API.G_FALSE
705 ,p_control_rec => l_submit_control_rec
706 ,P_Qte_Header_Rec => l_qte_header_rec
707 ,x_order_header_rec => x_Order_Header_Rec
708 ,x_return_status => x_return_status
709 ,x_msg_count => x_msg_count
710 ,x_msg_data => x_msg_data);
711
712
713 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
714 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote() New api with Header Rec finishes, x_Order_Header_Rec.header_id '||x_Order_Header_Rec.ORDER_header_id);
715 END IF;
716 ELSE
717 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
718 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote() starts');
719 END IF;
720
721
722 --CC Authorization when OKC_ENABLE_SALES_CONTRACTS is no starts
723 IF l_CC_Auth_Prof = 'Y' THEN
724 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
725 IBE_Util.Debug('Credit card authorization when OKC profile isset to no starts');
726 END IF;
727 l_qte_payment_tbl := IBE_Quote_Misc_pvt.getHeaderPaymentTbl(p_quote_Header_Id);
728 IF l_qte_payment_tbl.COUNT = 1 THEN
729 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
730 IBE_UTIL.Debug('Else: qte_payment_tbl(1).payment_type_code = ' || l_qte_payment_tbl(1).payment_type_code);
731 END IF;
732 l_payment_type_code := l_qte_payment_tbl(1).payment_type_code;
733 END IF;
734
735 open c_get_trxn_extn_id(l_qte_header_rec.quote_header_id);
736 fetch c_get_trxn_extn_id into l_trxn_extension_id;
737 close c_get_trxn_extn_id;
738
739 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
740 IBE_Util.Debug('Else:l_trxn_extension_id from aso_payments = '||l_trxn_extension_id);
741 END IF;
742
743 open c_get_auth_details(l_trxn_extension_id);
744 fetch c_get_auth_details into l_auth_flag;
745 close c_get_auth_details;
746
747 END IF;
748
749 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
750 IBE_Util.Debug('Else : l_trxn_extension_id Auth Flag = '||l_auth_flag);
751 END IF;
752
753 IF l_CC_Auth_Prof = 'Y' and l_auth_flag = 'N' and l_payment_type_code='CREDIT_CARD' THEN
754
755 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
756 IBE_Util.Debug('Going to call Authorize_Credit_Card');
757 END IF;
758 Authorize_Credit_Card(p_qte_header_id => l_qte_header_rec.quote_header_id
759 ,x_return_status => x_return_status
760 ,x_msg_count => x_msg_count
761 ,x_msg_data => x_msg_data);
762
763 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
764 IBE_Util.Debug('Else:After Authorize_Credit_Card checking the returned status');
765 END IF;
766
767 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
768 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
769 IBE_Util.Debug('Else:IBE_Quote_Checkout_Pvt.Authorize_Credit_Card(): Exp Error while entering the quote ');
770 END IF;
771
772 RAISE FND_API.G_EXC_ERROR;
773 END IF;
774
775 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
776 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
777 IBE_Util.Debug('Else:ASO_Quote_Pub.Submit_Quote(): Unexp Error while entering the quote ');
778 END IF;
779
780 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
781 END IF;
782 END IF;
783
784 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
785 IBE_Util.Debug('Else:After Authorize_Credit_Card');
786 END IF;
787
788 --CC Authorization when OKC_ENABLE_SALES_CONTRACTS is no ends
789
790
791
792 ASO_Quote_Pub.Submit_Quote(
793 p_api_version_number => p_api_version_number
794 ,p_Init_Msg_List => FND_API.G_TRUE
795 ,p_control_rec => l_submit_control_rec
796 ,p_Qte_Header_Id => l_qte_header_rec.quote_header_id
797 ,x_order_header_rec => x_Order_Header_Rec
798 ,x_return_status => x_return_status
799 ,x_msg_count => x_msg_count
800 ,x_msg_data => x_msg_data);
801
802 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
803 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote() finishes x_Order_Header_Rec.header_id '||x_Order_Header_Rec.ORDER_header_id);
804 END IF;
805 END IF;
806 l_msg_data := x_msg_data;
807 l_msg_count := x_msg_count;
808 l_return_status := x_return_status;
809
810 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
811 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
812 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote(): Error in submit quote');
813 END IF;
814
815 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
816 END IF;
817
818 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
819 IF ( l_submit_control_rec.book_flag = FND_API.G_TRUE
820 AND FND_PROFILE.VALUE('IBE_ENTER_ORDER_ON_ERROR') = 'Y')
821 THEN
822 -- l_submit_control_rec := p_submit_control_rec;
823 l_submit_control_rec.book_flag := fnd_api.g_false;
824
825 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
826 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote() after book failure starts');
827 END IF;
828
829 ASO_Quote_Pub.Submit_Quote(
830 p_api_version_number => p_api_version_number
831 ,p_Init_Msg_List => FND_API.G_TRUE
832 ,p_control_rec => l_submit_control_rec
833 ,p_Qte_Header_Id => l_qte_header_rec.quote_header_id
834 ,x_order_header_rec => x_Order_Header_Rec
835 ,x_return_status => x_return_status
836 ,x_msg_count => x_msg_count
837 ,x_msg_data => x_msg_data);
838
839 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
840 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote() after book failure finishes x_Order_Header_Rec.header_id '||x_Order_Header_Rec.ORDER_header_id);
841 END IF;
842
843 IF x_return_status = FND_API.G_RET_STS_ERROR THEN -- bug 12754581, scnagara
844 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
845 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote(): Exp Error while entering the quote ');
846 END IF;
847
848 RAISE FND_API.G_EXC_ERROR;
849 END IF;
850
851 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
852 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
853 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote(): Unexp Error while entering the quote ');
854 END IF;
855
856 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
857 END IF;
858 ELSE
859
860 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
861 IBE_Util.Debug('ASO_Quote_Pub.Submit_Quote(): Error in submit quote');
862 END IF;
863 RAISE FND_API.G_EXC_ERROR;
864 END IF;
865 END IF;
866
867 -------------------------------------------------------------------------------------
868 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
869 IBE_Util.Debug('submitQuote: Calling oe_holds_pub.check_holds with header id '||x_Order_Header_Rec.ORDER_HEADER_ID);
870 END IF;
871
872 oe_holds_pub.check_holds(p_api_version => 1
873 ,p_header_id => x_Order_Header_Rec.ORDER_HEADER_ID
874 ,x_result_out => l_hold_flag
875 ,x_return_status => x_return_status
876 ,x_msg_count => x_msg_count
877 ,x_msg_data => x_msg_data);
878
879 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
880 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
881 IBE_Util.Debug('submitQuote: oe_holds_pub.check_holds has returned with an error '||x_msg_data);
882 END IF;
883
884 RAISE FND_API.G_EXC_ERROR;
885 END IF;
886
887 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
888 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
889 IBE_Util.Debug('submitQuote: oe_holds_pub.check_holds has returned with an error '||x_msg_data);
890 END IF;
891 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
892 END IF;
893
894 x_hold_flag := l_hold_flag;
895
896 -------------------------------------------------------------------------------------
897
898 IBE_QUOTE_SAVESHARE_V2_PVT.stop_sharing (
899 p_quote_header_id => p_quote_header_id ,
900 p_delete_context => 'IBE_SC_CART_ORDERED',
901 P_minisite_id => p_minisite_id ,
902 p_api_version => p_api_version_number ,
903 p_init_msg_list => fnd_api.g_false ,
904 p_commit => fnd_api.g_false ,
905 x_return_status => x_return_status ,
906 x_msg_count => x_msg_count ,
907 x_msg_data => x_msg_data );
908
909
910 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
911 RAISE FND_API.G_EXC_ERROR;
912 END IF;
913
914 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
915 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
916 END IF;
917
918
919 IF p_reason_code <> FND_API.G_MISS_CHAR
920 AND p_reason_code IS NOT NULL THEN
921 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
922 IBE_Util.Debug('IBE_Workflow_Pvt.NotifyForSalesAssistance() starts');
923 END IF;
924
925 IBE_Workflow_Pvt.NotifyForSalesAssistance(
926 p_api_version => p_api_version_number
927 ,p_init_msg_list => FND_API.G_TRUE
928 ,p_quote_id => l_qte_header_rec.quote_header_id
929 ,p_customer_comments => p_customer_comments
930 ,p_reason_code => p_reason_code
931 ,p_salesrep_email_id => p_salesrep_email_id
932 ,x_return_status => x_return_status
933 ,x_msg_count => x_msg_count
934 ,x_msg_data => x_msg_data);
935
936 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
937 IBE_Util.Debug('IBE_Workflow_Pvt.NotifyForSalesAssistance() finishes');
938 END IF;
939 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
940 RAISE FND_API.G_EXC_ERROR;
941 END IF;
942
943 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
944 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
945 END IF;
946 ELSE
947
948 /*This part is to bock notifications for application in maintenance mode(High Availability)*/
949 /*If the state of application is among 2,3,4,5 then notifications are disabled*/
950 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
951 IBE_Util.Debug('JTF_HA_STATE_PKG.Get_Current_state begins');
952 END IF;
953
954 JTF_HA_STATE_PKG.Get_Current_state(x_current_state => l_current_state,
955 x_return_status => x_return_status);
956
957 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
958 IBE_Util.Debug('JTF_HA_STATE_PKG.Get_Current_state finishes');
959 END IF;
960 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
961 RAISE FND_API.G_EXC_ERROR;
962 END IF;
963
964 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
965 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
966 END IF;
967 IF(l_current_state NOT IN (2,3,4,5)) THEN
968
969 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
970 IBE_Util.Debug('IBE_Workflow_Pvt.NotifyOrderStatus() starts');
971 END IF;
972 /*This part is a fix for sending notifications to sharee*/
973 IF (p_sharee_party_id = fnd_api.g_miss_num OR p_sharee_party_id IS NULL) THEN
974 IBE_Workflow_Pvt.NotifyOrderStatus(
975 p_api_version => p_api_version_number
976 ,p_init_msg_list => FND_API.G_TRUE
977 ,p_quote_id => l_qte_header_rec.quote_header_id
978 ,p_status => l_return_status
979 ,p_errmsg_count => l_msg_count
980 ,p_errmsg_data => l_msg_data
981 ,x_return_status => x_return_status
982 ,x_msg_count => x_msg_count
983 ,x_msg_data => x_msg_data);
984
985 ELSE
986 /*Sharee is present*/
987 IBE_Workflow_Pvt.NotifyOrderStatus(
988 p_api_version => p_api_version_number
989 ,p_init_msg_list => FND_API.G_TRUE
990 ,p_quote_id => l_qte_header_rec.quote_header_id
991 ,p_status => l_return_status
992 ,p_errmsg_count => l_msg_count
993 ,p_errmsg_data => l_msg_data
994 ,p_sharee_partyId => p_sharee_party_Id
995 ,x_return_status => x_return_status
996 ,x_msg_count => x_msg_count
997 ,x_msg_data => x_msg_data);
998
999 END IF;
1000
1001 /* Book Order Error - Enter Order Success should notify user */
1002 IF (l_return_status = 'E' and x_return_status = 'S') THEN
1003 IBE_Workflow_Pvt.NotifyOrderStatus(
1004 p_api_version => p_api_version_number
1005 ,p_init_msg_list => FND_API.G_TRUE
1006 ,p_quote_id => l_qte_header_rec.quote_header_id
1007 ,p_status => 'S'
1008 ,p_errmsg_count => l_msg_count
1009 ,p_errmsg_data => l_msg_data
1010 ,x_return_status => x_return_status
1011 ,x_msg_count => x_msg_count
1012 ,x_msg_data => x_msg_data);
1013 END IF;
1014
1015
1016 END IF;--for l_current_state(HA)
1017 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
1018 IBE_Util.Debug('IBE_Workflow_Pvt.NotifyOrderStatus() finishes');
1019 END IF;
1020 IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
1021 RAISE FND_API.G_EXC_ERROR;
1022 END IF;
1023
1024 IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1025 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1026 END IF;
1027 END IF;
1028
1029 -- End of API body.
1030 -- Standard check of p_commit.
1031 IF FND_API.To_Boolean( p_commit ) THEN
1032 COMMIT WORK;
1033 END IF;
1034
1035 -- Standard call to get message count and IF count is 1, get message info.
1036 FND_Msg_Pub.Count_And_Get(p_encoded => FND_API.G_FALSE,
1037 p_count => x_msg_count ,
1038 p_data => x_msg_data);
1039 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
1040 IBE_Util.Debug('End IBE_Quote_Checkout_Pvt.SubmitQuote()');
1041 END IF;
1042 --ibe_util.disable_debug;
1043 EXCEPTION
1044 WHEN FND_API.G_EXC_ERROR THEN
1045 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
1046 IBE_Util.Debug('Expected exception in IBE_Quote_Checkout_Pvt.SubmitQuote');
1047 END IF;
1048 ROLLBACK TO SUBMITQUOTE_PVT;
1049 x_return_status := FND_API.G_RET_STS_ERROR;
1050 FND_Msg_Pub.Count_And_Get(p_encoded => FND_API.G_FALSE,
1051 p_count => x_msg_count ,
1052 p_data => x_msg_data);
1053 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1054 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
1055 IBE_Util.Debug('Unexpected exception in IBE_Quote_Checkout_Pvt.SubmitQuote');
1056 END IF;
1057
1058 ROLLBACK TO SUBMITQUOTE_PVT;
1059 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1060 FND_Msg_Pub.Count_And_Get(p_encoded => FND_API.G_FALSE,
1061 p_count => x_msg_count ,
1062 p_data => x_msg_data);
1063 WHEN OTHERS THEN
1064 IF (IBE_UTIL.G_DEBUGON = l_true) THEN
1065 IBE_Util.Debug('Unknown exception in IBE_Quote_Checkout_Pvt.SubmitQuote');
1066 END IF;
1067
1068 ROLLBACK TO SUBMITQUOTE_PVT;
1069 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1070 IF FND_Msg_Pub.Check_Msg_Level(FND_Msg_Pub.G_MSG_LVL_UNEXP_ERROR) THEN
1071 FND_Msg_Pub.Add_Exc_Msg(G_PKG_NAME,
1072 L_API_NAME);
1073 END IF;
1074 FND_Msg_Pub.Count_And_Get(p_encoded => FND_API.G_FALSE,
1075 p_count => x_msg_count ,
1076 p_data => x_msg_data);
1077 END SubmitQuote;
1078 END IBE_Quote_Checkout_Pvt;