415: FROM po_system_parameters;
416:
417: l_progress := 'getReqAmountInfo:' || l_rate_type;
418: IF (g_po_wf_debug = 'Y') THEN
419: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_progress);
420: END IF;
421:
422: l_approver_user_name := PO_WF_UTIL_PKG.GetItemAttrText(itemtype=>itemtype,
423: itemkey=>itemkey,
429: WHERE user_name = l_approver_user_name;
430:
431: l_progress := 'getReqAmountInfo:' || l_user_id;
432: IF (g_po_wf_debug = 'Y') THEN
433: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_progress);
434: END IF;
435:
436: l_approval_currency := FND_PROFILE.VALUE_SPECIFIC('ICX_PREFERRED_CURRENCY', l_user_id);
437: end if;
445: end if;
446:
447: l_progress := 'getReqAmountInfo:' || l_approval_currency;
448: IF (g_po_wf_debug = 'Y') THEN
449: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_progress);
450: END IF;
451:
452: gl_currency_api.get_closest_triangulation_rate(
453: x_from_currency => p_function_currency,
462:
463: l_progress := 'getReqAmountInfo:' || substrb(to_char(l_rate), 1, 30);
464:
465: IF (g_po_wf_debug = 'Y') THEN
466: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_progress);
467: END IF;
468:
469: /* setting amount for notification subject */
470: l_amount_approval_currency := (p_total_amount/l_denominator_rate) * l_numerator_rate;
480: FND_CURRENCY.GET_FORMAT_MASK(l_approval_currency,g_currency_format_mask));
481:
482: l_progress := 'getReqAmountInfo:' || l_amount_disp;
483: IF (g_po_wf_debug = 'Y') THEN
484: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_progress);
485: END IF;
486:
487: x_amount_for_header := p_req_amount_disp || ' ' || p_function_currency;
488: x_amount_for_header := x_amount_for_header || ' (' || l_amount_disp || ' ' || l_approval_currency || ')';
499: when gl_currency_api.no_rate then
500: l_progress := 'getReqAmountInfo: no rate';
501:
502: IF (g_po_wf_debug = 'Y') THEN
503: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_progress);
504: END IF;
505: x_amount_for_subject := p_total_amount_disp || ' ' || p_function_currency;
506:
507: l_no_rate_msg := fnd_message.get_string('PO', 'PO_WF_NOTIF_NO_RATE');
517:
518: l_progress := 'getReqAmountInfo:' || substrb(SQLERRM, 1,200);
519:
520: IF (g_po_wf_debug = 'Y') THEN
521: /* DEBUG */ PO_WF_DEBUG_PKG.insert_debug(itemtype,itemkey,l_progress);
522: END IF;
523: x_amount_for_subject := p_total_amount_disp || ' ' || p_function_currency;
524: x_amount_for_header := p_req_amount_disp || ' ' || p_function_currency;
525: x_amount_for_tax := p_tax_amount_disp || ' ' || p_function_currency;
5748: BEGIN
5749: l_progress := 'Update_Action_History_App_Rej: 001';
5750:
5751: IF (g_po_wf_debug = 'Y') THEN
5752: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, 'Entering Update_Action_History_App_Rej...' );
5753: END IF;
5754:
5755: IF (funcmode='RUN') THEN
5756:
5792: and object_type_code='REQUISITION'
5793: and sequence_num=l_sequence_num;
5794:
5795: IF (g_po_wf_debug = 'Y') THEN
5796: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, ' l_action_code = ' || l_action_code );
5797: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, ' l_sequence_num = ' || l_sequence_num );
5798: END IF;
5799:
5800: if (l_action_code is null OR l_action_code = 'SUBMIT CHANGE') then
5793: and sequence_num=l_sequence_num;
5794:
5795: IF (g_po_wf_debug = 'Y') THEN
5796: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, ' l_action_code = ' || l_action_code );
5797: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, ' l_sequence_num = ' || l_sequence_num );
5798: END IF;
5799:
5800: if (l_action_code is null OR l_action_code = 'SUBMIT CHANGE') then
5801: open l_approved_change_request_csr(l_change_request_group_id);
5825:
5826: close l_approved_change_request_csr;
5827:
5828: IF (g_po_wf_debug = 'Y') THEN
5829: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, ' l_new_action_code = ' || l_new_action_code );
5830: END IF;
5831:
5832: if (l_action_code = 'SUBMIT CHANGE') then
5833: Insert_Action_History(l_document_id,
5850:
5851: l_progress := 'Update_Action_History_App_Rej: 006';
5852:
5853: IF (g_po_wf_debug = 'Y') THEN
5854: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, 'Leaving Update_Action_History_App_Rej...');
5855: END IF;
5856:
5857: resultout:='COMPLETE' || ':' || 'ACTIVITY_PERFORMED';
5858: return;
9914: x_msg_data => l_msg_data);
9915:
9916: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
9917: IF (g_po_wf_debug = 'Y') THEN
9918: PO_WF_DEBUG_PKG.insert_debug(p_itemtype,p_itemkey,'PO_CO_Tolerances_Grp.get_tolerances API failed:' || l_return_status || ' ' || l_msg_data);
9919: END IF;
9920: END IF;
9921:
9922: RETURN l_tolerances_tbl;
10430: p_tolerances_tab(TOL_SHIPQTY_IND).max_increment,
10431: p_tolerances_tab(TOL_SHIPQTY_IND).max_decrement) = 'N')));
10432:
10433: IF (g_po_wf_debug = 'Y') THEN
10434: PO_WF_DEBUG_PKG.insert_debug(p_item_type, p_item_key, l_api_name || ' Return Value:' || l_return_val);
10435: END IF;
10436:
10437: RETURN l_return_val;
10438:
10439: EXCEPTION
10440: WHEN NO_DATA_FOUND THEN
10441:
10442: IF (g_po_wf_debug = 'Y') THEN
10443: PO_WF_DEBUG_PKG.insert_debug(p_item_type, p_item_key, l_api_name || ' Return Value(No data Found):Y');
10444: END IF;
10445:
10446: RETURN 'Y';
10447:
10512: l_return_val := 'Y';
10513: END;
10514:
10515: IF (g_po_wf_debug = 'Y') THEN
10516: PO_WF_DEBUG_PKG.insert_debug(p_item_type, p_item_key, l_api_name || ' Return Value(need by date check):' || l_return_val);
10517: END IF;
10518:
10519: l_progress:= '002';
10520:
10557: END;
10558: END IF;
10559:
10560: IF (g_po_wf_debug = 'Y') THEN
10561: PO_WF_DEBUG_PKG.insert_debug(p_item_type, p_item_key, l_api_name || ' Return Value(start/end date check):' || l_return_val);
10562: END IF;
10563:
10564: l_progress:= '003';
10565:
10613:
10614: END IF;
10615:
10616: IF (g_po_wf_debug = 'Y') THEN
10617: PO_WF_DEBUG_PKG.insert_debug(p_item_type, p_item_key, l_api_name || ' Return Value(line amount check):' || l_return_val);
10618: END IF;
10619:
10620: RETURN l_return_val;
10621:
10623: WHEN OTHERS THEN
10624: l_return_val := 'N';
10625:
10626: IF (g_po_wf_debug = 'Y') THEN
10627: PO_WF_DEBUG_PKG.insert_debug(p_item_type, p_item_key, l_api_name || ' Return Value(line level check):' || l_return_val);
10628:
10629: raise;
10630: END IF;
10631:
10741:
10742: end if;
10743:
10744: IF (g_po_wf_debug = 'Y') THEN
10745: PO_WF_DEBUG_PKG.insert_debug(p_item_type, p_item_key, l_api_name || ' Return Value:' || l_return_val);
10746: END IF;
10747:
10748: RETURN l_return_val;
10749:
10750: EXCEPTION
10751: WHEN NO_DATA_FOUND THEN
10752:
10753: IF (g_po_wf_debug = 'Y') THEN
10754: PO_WF_DEBUG_PKG.insert_debug(p_item_type, p_item_key, l_api_name || ' Return Value(No Data Found):Y');
10755: END IF;
10756: RETURN 'Y';
10757: END Doc_Level_Changes_Wthn_Tol;
10758:
10796: itemkey => itemkey,
10797: aname => 'CURRENT_PO_HEADER_ID');
10798:
10799: IF (g_po_wf_debug = 'Y') THEN
10800: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, l_api_name || '.Begin');
10801: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, 'l_pochggrp_id:' || l_pochggrp_id || ' l_poheader_id:' || l_poheader_id);
10802: END IF;
10803:
10804: l_progress := '001';
10797: aname => 'CURRENT_PO_HEADER_ID');
10798:
10799: IF (g_po_wf_debug = 'Y') THEN
10800: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, l_api_name || '.Begin');
10801: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, 'l_pochggrp_id:' || l_pochggrp_id || ' l_poheader_id:' || l_poheader_id);
10802: END IF;
10803:
10804: l_progress := '001';
10805:
10837: if (l_functional_currency_code <> l_po_currency_code) then
10838: l_return_val := 'N';
10839: end if;
10840:
10841: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, 'doc type: '||l_po_doc_type|| ' func currency code: '||l_functional_currency_code||' po curr code: '||l_po_currency_code );
10842: END IF;
10843:
10844:
10845: IF (l_pochggrp_id IS NOT NULL) THEN
10850: IF (l_return_val <> 'N') THEN
10851: l_return_val := Shipmnt_Level_Changes_Wthn_Tol(itemtype, itemkey, g_tolerances_tbl, l_pochggrp_id);
10852:
10853: IF (g_po_wf_debug = 'Y') THEN
10854: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, 'Return Value(shipmnt_level_changes_wthn_tol):' || l_return_val);
10855: END IF;
10856: END IF;
10857:
10858:
10859: IF (l_return_val <> 'N') THEN
10860: -- check for line level changes
10861: l_return_val := Line_Level_Changes_Wthn_Tol(itemtype, itemkey, g_tolerances_tbl, l_pochggrp_id);
10862: IF (g_po_wf_debug = 'Y') THEN
10863: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, 'Return Value(line_level_changes_wthn_tol):' || l_return_val);
10864: END IF;
10865: END IF;
10866:
10867: IF (l_return_val <> 'N') THEN
10867: IF (l_return_val <> 'N') THEN
10868: -- check for document level changes
10869: l_return_val := Doc_Level_Changes_Wthn_Tol(itemtype, itemkey, g_tolerances_tbl, l_pochggrp_id, l_poheader_id);
10870: IF (g_po_wf_debug = 'Y') THEN
10871: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, 'Return Value(doc_level_changes_wthn_tol):' || l_return_val);
10872: END IF;
10873: END IF;
10874:
10875: IF (g_po_wf_debug = 'Y') THEN
10872: END IF;
10873: END IF;
10874:
10875: IF (g_po_wf_debug = 'Y') THEN
10876: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, l_api_name || ' Return Value:' || l_return_val);
10877: END IF;
10878:
10879: -- set result value
10880: resultout := wf_engine.eng_completed || ':' || l_return_val;
10883:
10884: EXCEPTION WHEN OTHERS THEN
10885: -- if something is wrong, just assume it needs approval
10886: IF (g_po_wf_debug = 'Y') THEN
10887: PO_WF_DEBUG_PKG.insert_debug(itemtype, itemkey, l_progress || 'SQL ERROR:' || sqlerrm);
10888: END IF;
10889: resultout := wf_engine.eng_completed || ':N';
10890: END Changes_Wthn_Buyer_Tol_values;
10891: