https://aporaclepayables.blogspot.com/2018/05/rounding-of-wht-in-ap.html
-- Begin Custom Code
BEGIN
SELECT NVL(TR.TAX_RATE,0)
INTO p_tax_rate
FROM AP_AWT_TAX_RATES_ALL TR
WHERE ORG_ID = FND_PROFILE.VALUE('ORG_ID')
AND TR.TAX_NAME = p_Tax_Name
AND RATE_TYPE = 'STANDARD';
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
--INSERT INTO xxcs_wht_values
--values(P_Invoice_exchange_rate, P_Withheld_Amount, p_tax_name,1, p_base_wt_amount,P_BaseCurrCode, p_currcode);
--p_tax_rate := round(p_tax_rate,2);
if p_tax_rate >= 1 then
-- INSERT INTO xxcs_wht_values
--values (p_tax_rate, P_Withheld_Amount, p_tax_name,2,p_base_wt_amount,P_BaseCurrCode, p_currcode);
p_orig_inv_amount := (P_Withheld_Amount*100)/p_tax_rate;
-- p_tax_rate := round(p_tax_rate,0);
P_Withheld_Amount := (p_orig_inv_amount*p_tax_rate)/100;
P_Base_WT_amount := P_Withheld_Amount;
P_Withheld_Amount := ROUND(P_Withheld_Amount,0);
P_Base_WT_amount := ROUND(P_Base_WT_amount,0);
-- INSERT INTO xxcs_wht_values
--values (p_tax_rate, P_Withheld_Amount, p_tax_name,3,p_base_wt_amount,P_BaseCurrCode, p_currcode);
elsif p_tax_rate < 1 and p_tax_rate !=0 then
p_orig_inv_amount := (P_Withheld_Amount*100)/p_tax_rate;
P_Withheld_Amount := (p_orig_inv_amount*p_tax_rate)/100;
P_Base_WT_amount := P_Withheld_Amount;
end if;
-- null;
-- End Custom Code
-----------------------------------------------------------------------------------------------------------------
For my Case
-- Begin Custom Code
if nvl(P_Calling_parameter,'') ='HEADER' then
if (P_Withheld_Amount >= 0 ) THEN
P_Withheld_Amount := ROUND(P_Unrounded_WT_Amount);
P_Base_WT_amount := ROUND(P_Unrounded_WT_Amount);
ELSE
P_Withheld_Amount := ROUND(P_Unrounded_WT_Amount);
P_Base_WT_amount := ROUND(P_Unrounded_WT_Amount);
END IF;
end if;
-- End Custom Code
-- Begin Custom Code
ReplyDeleteif nvl(P_Calling_parameter,'') ='HEADER' then
if (P_Withheld_Amount >= 0 ) THEN
P_Withheld_Amount := ROUND(P_Unrounded_WT_Amount);
P_Base_WT_amount := ROUND(P_Unrounded_WT_Amount);
ELSE
P_Withheld_Amount := ROUND(P_Unrounded_WT_Amount);
P_Base_WT_amount := ROUND(P_Unrounded_WT_Amount);
END IF;
end if;
-- End Custom Code
Rounding Amount on each Line level. Using the No.1 Code
ReplyDelete