office_id integer, currency_code character varying
Owner
postgres
Result Type
decimal_strict2
Description
Implementation: transactions.get_exchange_rate
CREATE OR REPLACE FUNCTION transactions.get_exchange_rate(office_id integer, currency_code character varying)
RETURNS decimal_strict2
LANGUAGE plpgsql
AS $function$
DECLARE _local_currency_code national character varying(12)= '';
DECLARE _unit integer_strict2 = 0;
DECLARE _exchange_rate decimal_strict2=0;
BEGIN
SELECT office.offices.currency_code
INTO _local_currency_code
FROM office.offices
WHERE office.offices.office_id=$1;
IF(_local_currency_code = $2) THEN
RETURN 1;
END IF;
SELECT unit, exchange_rate
INTO _unit, _exchange_rate
FROM core.exchange_rate_details
INNER JOIN core.exchange_rates
ON core.exchange_rate_details.exchange_rate_id = core.exchange_rates.exchange_rate_id
WHERE core.exchange_rates.office_id=$1
AND foreign_currency_code=$2;
IF(_unit = 0) THEN
RETURN 0;
END IF;
RETURN _exchange_rate/_unit;
END
$function$