altocompta/sql/format_account.sql
2011-11-14 14:38:47 +00:00

32 lines
765 B
PL/PgSQL

-- Function: comptaproc.format_account(account_type)
-- DROP FUNCTION comptaproc.format_account(account_type);
CREATE OR REPLACE FUNCTION comptaproc.format_account(p_account account_type)
RETURNS account_type AS
$BODY$
declare
sResult account_type;
begin
sResult := lower(p_account);
sResult := translate(sResult,'éèêëàâäïîüûùöô','eeeeaaaiiuuuoo');
sResult := translate(sResult,' $€µ£%.+-/\!(){}(),;_&|"#''^','');
if not sResult similar to '^[[:alnum:]_]+$' then
raise exception 'Invalid character in %',p_account;
end if;
return upper(sResult);
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
COMMENT ON FUNCTION comptaproc.format_account(account_type) IS 'format the accounting :
- upper case
- remove space and special char.
';