Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Function: f_get_price_before_tax_and_disc(numeric, numeric, character varying, numeric, integer, character varying)
- -- DROP FUNCTION f_get_price_before_tax_and_disc(numeric, numeric, character varying, numeric, integer, character varying);
- CREATE OR REPLACE FUNCTION f_get_price_before_tax_and_disc(numeric, numeric, character varying, numeric, integer, character varying)
- RETURNS numeric AS
- $BODY$
- DECLARE
- pGrossPrice alias for $1;
- pDiscountAmount alias for $2;
- pFlagTaxAmount alias for $3;
- pTaxPersen alias for $4;
- pRounding alias for $5;
- pRoundingMode alias for $6;
- vResult numeric;
- vTaxAmount numeric;
- BEGIN
- vResult := pGrossPrice;
- IF pFlagTaxAmount = 'Y' THEN
- pGrossPrice := pGrossPrice - pDiscountAmount;
- IF pRoundingMode = 'RD' THEN
- SELECT pGrossPrice - TRUNC(pGrossPrice * 100/(100 + pTaxPersen), pRounding) INTO vTaxAmount;
- ELSE
- SELECT pGrossPrice - ROUND(pGrossPrice * 100/(100 + pTaxPersen), pRounding) INTO vTaxAmount;
- END IF;
- vResult := pGrossPrice + pDiscountAmount - vTaxAmount;
- END IF;
- return vResult;
- END;
- $BODY$
- LANGUAGE plpgsql VOLATILE
- COST 100;
- ALTER FUNCTION f_get_price_before_tax_and_disc(numeric, numeric, character varying, numeric, integer, character varying)
- OWNER TO sts;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement