1: PACKAGE BODY OE_Negotiate_WF as
2: /* $Header: OEXWNEGB.pls 120.2 2006/03/07 15:46:42 mmisra noship $ */
3:
4:
5: PROCEDURE Update_Status_Lost(
15: --
16:
17: BEGIN
18: IF l_debug_level > 0 THEN
19: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Update_Status_Lost:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
20: END IF;
21: OE_STANDARD_WF.Set_Msg_Context(actid);
22: IF (funcmode = 'RUN') then
23:
42:
43: END IF;
44: EXCEPTION
45: when others then
46: wf_core.context('OE_Negotiate_WF', 'Update_Status_Lost', itemtype, itemkey, to_char(actid), funcmode);
47: -- start data fix project
48: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
49: p_itemtype => itemtype,
50: p_itemkey => itemkey);
72: --
73:
74: BEGIN
75: IF l_debug_level > 0 THEN
76: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Negotiation_Complete:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
77: END IF;
78: OE_STANDARD_WF.Set_Msg_Context(actid);
79: IF (funcmode = 'RUN') then
80:
105: END IF;
106: END IF;
107: EXCEPTION
108: when others then
109: wf_core.context('OE_Negotiate_WF', 'Negotiation_Complete', itemtype, itemkey, to_char(actid), funcmode);
110: -- start data fix project
111: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
112: p_itemtype => itemtype,
113: p_itemkey => itemkey);
145: --
146:
147: BEGIN
148: IF l_debug_level > 0 THEN
149: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Submit_Draft_Internal:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
150: END IF;
151: OE_STANDARD_WF.Set_Msg_Context(actid);
152:
153: IF (funcmode = 'RUN') then
260:
261: resultout := 'COMPLETE:COMPLETE';
262:
263: IF l_debug_level > 0 THEN
264: oe_debug_pub.add('Exiting OE_NEGOTIATE_WF.Submit_Draft_Internal Normally', 1);
265: END IF;
266:
267:
268: END IF;
267:
268: END IF;
269: EXCEPTION
270: when others then
271: wf_core.context('OE_Negotiate_WF', 'Submit_Draft_Internal', itemtype, itemkey, to_char(actid), funcmode);
272: -- start data fix project
273: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
274: p_itemtype => itemtype,
275: p_itemkey => itemkey);
294: --
295:
296: BEGIN
297: IF l_debug_level > 0 THEN
298: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Customer_Acceptance:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
299: END IF;
300: OE_STANDARD_WF.Set_Msg_Context(actid);
301: IF (funcmode = 'RUN') then
302: OE_MSG_PUB.set_msg_context(
319:
320: END IF;
321: EXCEPTION
322: when others then
323: wf_core.context('OE_Negotiate_WF', 'Customer_Acceptance', itemtype, itemkey, to_char(actid), funcmode);
324: -- start data fix project
325: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
326: p_itemtype => itemtype,
327: p_itemkey => itemkey);
346: --
347:
348: BEGIN
349: IF l_debug_level > 0 THEN
350: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Update_Customer_Accepted:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
351: END IF;
352: OE_STANDARD_WF.Set_Msg_Context(actid);
353: IF (funcmode = 'RUN') then
354: OE_MSG_PUB.set_msg_context(
372:
373: END IF;
374: EXCEPTION
375: when others then
376: wf_core.context('OE_Negotiate_WF', 'Update_Customer_Accepted', itemtype, itemkey, to_char(actid), funcmode);
377: -- start data fix project
378: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
379: p_itemtype => itemtype,
380: p_itemkey => itemkey);
400:
401: BEGIN
402:
403: IF l_debug_level > 0 THEN
404: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Update_Customer_Rejected:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
405: END IF;
406: OE_STANDARD_WF.Set_Msg_Context(actid);
407: IF (funcmode = 'RUN') then
408: OE_MSG_PUB.set_msg_context(
426:
427: END IF;
428: EXCEPTION
429: when others then
430: wf_core.context('OE_Negotiate_WF', 'Update_Customer_Rejected', itemtype, itemkey, to_char(actid), funcmode);
431: -- start data fix project
432: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
433: p_itemtype => itemtype,
434: p_itemkey => itemkey);
458:
459: BEGIN
460:
461: IF l_debug_level > 0 THEN
462: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Check_Expiration_Date:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
463: END IF;
464: OE_STANDARD_WF.Set_Msg_Context(actid);
465: IF (funcmode = 'RUN') then
466: OE_MSG_PUB.set_msg_context(
497: , avalue=>l_avalue
498: );
499: resultout := 'COMPLETE:COMPLETE';
500: IF l_debug_level > 0 THEN
501: oe_debug_pub.add('Leaving OE_Negotiate_WF.Check_Expiration_Date: NO TIMER TO SET', 1);
502: END IF;
503: return;
504: END IF;
505:
506: -- expiration date does exist but expired
507: IF l_expiration_date < sysdate THEN
508: resultout := 'COMPLETE:EXPIRED';
509: IF l_debug_level > 0 THEN
510: oe_debug_pub.add('Leaving OE_Negotiate_WF.Check_Expiration_Date: EXPIRED', 1);
511: END IF;
512: return;
513: END IF;
514:
525: aname=>'OFFER_FINAL_EXPIRE_TIMER',
526: avalue=>l_final_timer);
527: resultout := 'COMPLETE:NO_REMINDER';
528: IF l_debug_level > 0 THEN
529: oe_debug_pub.add('Leaving OE_Negotiate_WF.Check_Expiration_Date: NO REMINDER', 1);
530: END IF;
531: ELSIF to_char(sysdate, 'DD-MON-RRRR') = to_char(l_expiration_date, 'DD-MON-RRRR') THEN
532: -- pre notification percentage is non-zero
533: -- expiration_date is today midnight, we should send the reminder
538: , avalue=>(l_expiration_date - sysdate) * 1440
539: );
540: resultout := 'COMPLETE:EXPIRE_TODAY';
541: IF l_debug_level > 0 THEN
542: oe_debug_pub.add('OE_Negotiate_WF.Check_Expiration_Date: EXPIRE TODAY', 1);
543: END IF;
544: ELSE --expiration is not today, i.e. it is in the future
545: --again expiration_date should already be in 23:59:59
546: l_aname(1) := 'OFFER_FINAL_EXPIRE_TIMER';
556: resultout := 'COMPLETE:COMPLETE';
557: END IF; -- end if of expiration date is today or future
558:
559: IF l_debug_level > 0 THEN
560: oe_debug_pub.add('Leaving OE_Negotiate_WF.Check_Expiration_Date: TIMER(S) SET', 1);
561: END IF;
562: END IF; --funcmode = run
563:
564: EXCEPTION
562: END IF; --funcmode = run
563:
564: EXCEPTION
565: when others then
566: wf_core.context('OE_Negotiate_WF', 'Check_Expiration_Date', itemtype, itemkey, to_char(actid), funcmode);
567: -- start data fix project
568: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
569: p_itemtype => itemtype,
570: p_itemkey => itemkey);
598: --
599:
600: BEGIN
601: IF l_debug_level > 0 THEN
602: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Offer_Expired:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
603: END IF;
604: OE_STANDARD_WF.Set_Msg_Context(actid);
605: IF (funcmode = 'RUN') then
606: OE_MSG_PUB.set_msg_context(
654:
655: END IF;
656: EXCEPTION
657: when others then
658: wf_core.context('OE_Negotiate_WF', 'Offer_Expired', itemtype, itemkey, to_char(actid), funcmode);
659: -- start data fix project
660: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
661: p_itemtype => itemtype,
662: p_itemkey => itemkey);
770: BEGIN
771: OE_MSG_PUB.initialize;
772: x_return_status := FND_API.G_RET_STS_SUCCESS;
773: IF l_debug_level > 0 THEN
774: oe_debug_pub.add('ENTERING OE_Negotiate_WF.Lost: '|| TO_CHAR (p_header_id) ,1) ;
775: END IF;
776: OE_MSG_PUB.set_msg_context(
777: p_entity_code => 'HEADER'
778: ,p_entity_id => p_header_id
802: fnd_message.set_token('SALES_DOCUMENT_TYPE', l_sales_document_type);
803: oe_msg_pub.add;
804: x_return_status := FND_API.G_RET_STS_ERROR;
805: IF l_debug_level > 0 THEN
806: oe_debug_pub.add('EXITING OE_Negotiate_WF.Lost WITH STATUS: '||X_RETURN_STATUS ,1);
807: END IF;
808: return;
809: END;
810: -- ok to go Lost
821:
822: WF_ENGINE.CompleteActivityInternalName(OE_GLOBALS.G_WFI_NGO, to_char(p_header_id), l_activity_name, 'LOST');
823:
824: IF l_debug_level > 0 THEN
825: oe_debug_pub.add('EXITING OE_Negotiate_WF.Lost normally', 1);
826: END IF;
827: EXCEPTION
828: WHEN OTHERS THEN
829: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
827: EXCEPTION
828: WHEN OTHERS THEN
829: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
830: IF l_debug_level > 0 THEN
831: oe_debug_pub.add('EXITING OE_Negotiate_WF.Lost WITH STATUS: '||X_RETURN_STATUS ,1);
832: END IF;
833: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
834: THEN
835: OE_MSG_PUB.Add_Exc_Msg
860: BEGIN
861: OE_MSG_PUB.initialize;
862: x_return_status := FND_API.G_RET_STS_SUCCESS;
863: IF l_debug_level > 0 THEN
864: oe_debug_pub.add('ENTERING OE_Negotiate_WF.Customer_Accepted: '|| TO_CHAR (p_header_id) ,1) ;
865: END IF;
866:
867: OE_MSG_PUB.set_msg_context(
868: p_entity_code => 'HEADER'
924: fnd_message.set_token('SALES_DOCUMENT_TYPE', l_sales_document_type);
925: oe_msg_pub.add;
926: x_return_status := FND_API.G_RET_STS_ERROR;
927: IF l_debug_level > 0 THEN
928: oe_debug_pub.add('EXITING OE_Negotiate_WF.Customer_Accepted WITH STATUS: '||X_RETURN_STATUS ,1);
929: END IF;
930: return;
931: END;
932: -- ok to go Accept
954: itemkey => to_char(p_header_id),
955: activity => l_activity_name,
956: result => 'ACCEPT');
957: IF l_debug_level > 0 THEN
958: oe_debug_pub.add('EXITING OE_Negotiate_WF.Customer_Accepted normally', 1);
959: END IF;
960: EXCEPTION
961:
962: WHEN OTHERS THEN
961:
962: WHEN OTHERS THEN
963: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
964: IF l_debug_level > 0 THEN
965: oe_debug_pub.add('EXITING OE_Negotiate_WF.Customer_Accepted WITH STATUS: '||X_RETURN_STATUS ,1);
966: END IF;
967: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
968: THEN
969: OE_MSG_PUB.Add_Exc_Msg
998: BEGIN
999: OE_MSG_PUB.initialize;
1000: x_return_status := FND_API.G_RET_STS_SUCCESS;
1001: IF l_debug_level > 0 THEN
1002: oe_debug_pub.add('ENTERING OE_Negotiate_WF.Customer_Rejected: '|| TO_CHAR (p_header_id) ,1) ;
1003: END IF;
1004: OE_MSG_PUB.set_msg_context(
1005: p_entity_code => 'HEADER'
1006: ,p_entity_id => p_header_id
1030: fnd_message.set_token('SALES_DOCUMENT_TYPE', l_sales_document_type);
1031: oe_msg_pub.add;
1032: x_return_status := FND_API.G_RET_STS_ERROR;
1033: IF l_debug_level > 0 THEN
1034: oe_debug_pub.add('EXITING OE_Negotiate_WF.Customer_Rejected WITH STATUS: '||X_RETURN_STATUS ,1);
1035: END IF;
1036: return;
1037: END;
1038: -- ok to go Reject
1048:
1049:
1050: WF_ENGINE.CompleteActivityInternalName(OE_GLOBALS.G_WFI_NGO, to_char(p_header_id), l_activity_name, 'REJECT');
1051: IF l_debug_level > 0 THEN
1052: oe_debug_pub.add('EXITING OE_Negotiate_WF.Customer_Rejected normally', 1);
1053: END IF;
1054: EXCEPTION
1055: WHEN OTHERS THEN
1056: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1054: EXCEPTION
1055: WHEN OTHERS THEN
1056: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1057: IF l_debug_level > 0 THEN
1058: oe_debug_pub.add('EXITING OE_Negotiate_WF.Customer_Rejected WITH STATUS: '||X_RETURN_STATUS ,1);
1059: END IF;
1060: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1061: THEN
1062: OE_MSG_PUB.Add_Exc_Msg
1081: BEGIN
1082: OE_MSG_PUB.initialize;
1083: x_return_status := FND_API.G_RET_STS_SUCCESS;
1084: IF l_debug_level > 0 THEN
1085: oe_debug_pub.add('ENTERING OE_Negotiate_WF.Offer_Date_Changed: '|| TO_CHAR (p_header_id) ,1) ;
1086: END IF;
1087: OE_MSG_PUB.set_msg_context(
1088: p_entity_code => 'HEADER'
1089: ,p_entity_id => p_header_id
1112: fnd_message.set_token('SALES_DOCUMENT_TYPE', l_sales_document_type);
1113: oe_msg_pub.add;
1114: x_return_status := FND_API.G_RET_STS_ERROR;
1115: IF l_debug_level > 0 THEN
1116: oe_debug_pub.add('EXITING OE_Negotiate_WF.Offer_Date_Changed WITH STATUS: '||X_RETURN_STATUS ,1);
1117: END IF;
1118: return;
1119: END;
1120: -- ok to go date changed
1122: oe_debug_pub.add('Calling WF_ENGINE to completeactivity' ,3);
1123: END IF;
1124: WF_ENGINE.CompleteActivityInternalName(OE_GLOBALS.G_WFI_NGO, to_char(p_header_id), l_activity_name, 'DATE_CHANGED');
1125: IF l_debug_level > 0 THEN
1126: oe_debug_pub.add('EXITING OE_Negotiate_WF.Offer_Date_Changed normally', 1);
1127: END IF;
1128: EXCEPTION
1129: WHEN OTHERS THEN
1130: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1128: EXCEPTION
1129: WHEN OTHERS THEN
1130: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1131: IF l_debug_level > 0 THEN
1132: oe_debug_pub.add('EXITING OE_Negotiate_WF.Offer_Date_Changed WITH STATUS: '||X_RETURN_STATUS ,1);
1133: END IF;
1134: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1135: THEN
1136: OE_MSG_PUB.Add_Exc_Msg
1161: BEGIN
1162: -- OE_MSG_PUB.initialize; commented out for 4671489
1163: x_return_status := FND_API.G_RET_STS_SUCCESS;
1164: IF l_debug_level > 0 THEN
1165: oe_debug_pub.add('ENTERING OE_Negotiate_WF.Submit_Draft: '|| TO_CHAR (p_header_id) ,1) ;
1166: END IF;
1167:
1168: BEGIN
1169: --Bug3435165
1240: fnd_message.set_token('SALES_DOCUMENT_TYPE', l_sales_document_type);
1241: oe_msg_pub.add;
1242: x_return_status := FND_API.G_RET_STS_ERROR;
1243: IF l_debug_level > 0 THEN
1244: oe_debug_pub.add('EXITING OE_Negotiate_WF.Submit_Draft WITH STATUS: '||X_RETURN_STATUS ,1);
1245: END IF;
1246: return;
1247: END;
1248: -- ok to go Submit Draft
1250: itemkey => to_char(p_header_id),
1251: activity => l_activity_name,
1252: result => 'COMPLETE');
1253: IF l_debug_level > 0 THEN
1254: oe_debug_pub.add('EXITING OE_Negotiate_WF.Submit_Draft normally', 1);
1255: END IF;
1256: EXCEPTION
1257: WHEN OTHERS THEN
1258: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1256: EXCEPTION
1257: WHEN OTHERS THEN
1258: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1259: IF l_debug_level > 0 THEN
1260: oe_debug_pub.add('EXITING OE_Negotiate_WF.Submit_Draft WITH STATUS: '||X_RETURN_STATUS ,1);
1261: END IF;
1262: IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1263: THEN
1264: OE_MSG_PUB.Add_Exc_Msg
1286: l_avaluetext wf_engine.texttabtyp;
1287: --
1288: BEGIN
1289: IF l_debug_level > 0 THEN
1290: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Set_Header_Attributes_Internal:'||To_char(p_header_id) ,1 ) ;
1291: END IF;
1292:
1293: l_sales_document_type_code := WF_ENGINE.GetItemAttrText(OE_GLOBALS.G_WFI_NGO, To_char(p_header_id), 'SALES_DOCUMENT_TYPE_CODE');
1294: IF l_sales_document_type_code = 'O' THEN
1342: --
1343: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1344: BEGIN
1345: IF l_debug_level > 0 THEN
1346: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Set_Header_Attributes:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
1347: END IF;
1348: OE_STANDARD_WF.Set_Msg_Context(actid);
1349: IF (funcmode = 'RUN') THEN
1350: set_header_attributes_internal(To_number(itemkey));
1351: resultout := 'COMPLETE';
1352: END IF;
1353: EXCEPTION
1354: when others then
1355: wf_core.context('OE_Negotiate_WF', 'Set_Header_Attributes', itemtype, itemkey, to_char(actid), funcmode);
1356: -- start data fix project
1357: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
1358: p_itemtype => itemtype,
1359: p_itemkey => itemkey);
1379: --
1380:
1381: BEGIN
1382: IF l_debug_level > 0 THEN
1383: oe_debug_pub.add( 'ENTERING OE_Negotiate_WF.Set_Final_Expiration_Date:'||ITEMTYPE||'/'||ITEMKEY ,1 ) ;
1384: END IF;
1385: OE_STANDARD_WF.Set_Msg_Context(actid);
1386: IF (funcmode = 'RUN') then
1387: OE_MSG_PUB.set_msg_context(
1425: resultout := 'COMPLETE:EXPIRED';
1426: END IF;
1427:
1428: IF l_debug_level > 0 THEN
1429: oe_debug_pub.add('Leaving OE_Negotiate_WF.Set_Final_Expiration_Date', 1);
1430: END IF;
1431: END IF;
1432: EXCEPTION
1433: when others then
1430: END IF;
1431: END IF;
1432: EXCEPTION
1433: when others then
1434: wf_core.context('OE_Negotiate_WF', 'Set_Final_Expiration_Date', itemtype, itemkey, to_char(actid), funcmode);
1435: -- start data fix project
1436: OE_STANDARD_WF.Add_Error_Activity_Msg(p_actid => actid,
1437: p_itemtype => itemtype,
1438: p_itemkey => itemkey);
1456: --
1457: BEGIN
1458:
1459: IF l_debug_level > 0 THEN
1460: oe_debug_pub.add( 'ENTER OE_Negotiate_WF.At_Customer_Acceptance');
1461: END IF;
1462:
1463: select wpa.activity_name
1464: into l_activity_name
1478:
1479: END At_Customer_Acceptance;
1480:
1481:
1482: END OE_Negotiate_WF;