SET TERM ^ ;

CREATE OR ALTER function FN_ESTOQUE_MINIMO_MAXIMO (
    ESTABELECIMENTO_CODIGO integer,
    LOCALIZACAO_CODIGO integer,
    PRODUTO_CODIGO integer,
    TAMNHO integer)
returns varchar(60)
AS
declare variable estmin varchar(60);
begin

    ESTMIN = COALESCE((SELECT

        iif(:TAMNHO = 01, em.t01||'|'||em.m01,
        iif(:TAMNHO = 02, em.t02||'|'||em.m02,
        iif(:TAMNHO = 03, em.t03||'|'||em.m03,
        iif(:TAMNHO = 04, em.t04||'|'||em.m04,
        iif(:TAMNHO = 05, em.t05||'|'||em.m05,
        iif(:TAMNHO = 06, em.t06||'|'||em.m06,
        iif(:TAMNHO = 07, em.t07||'|'||em.m07,
        iif(:TAMNHO = 08, em.t08||'|'||em.m08,
        iif(:TAMNHO = 09, em.t09||'|'||em.m09,
        iif(:TAMNHO = 10, em.t10||'|'||em.m10,
        iif(:TAMNHO = 11, em.t11||'|'||em.m11,
        iif(:TAMNHO = 12, em.t12||'|'||em.m12,
        iif(:TAMNHO = 13, em.t13||'|'||em.m13,
        iif(:TAMNHO = 14, em.t14||'|'||em.m14,
        iif(:TAMNHO = 15, em.t15||'|'||em.m15,
        iif(:TAMNHO = 16, em.t16||'|'||em.m16,
        iif(:TAMNHO = 17, em.t17||'|'||em.m17,
        iif(:TAMNHO = 18, em.t18||'|'||em.m18,
        iif(:TAMNHO = 19, em.t19||'|'||em.m19,
        iif(:TAMNHO = 20, em.t20||'|'||em.m20,'0|0'))))))))))))))))))))

        FROM TBESTOQUE_MINIMO EM
        WHERE EM.ESTABELECIMENTO_CODIGO = :ESTABELECIMENTO_CODIGO
        AND EM.LOCALIZACAO_CODIGO = :LOCALIZACAO_CODIGO
        AND EM.PRODUTO_CODIGO = :PRODUTO_CODIGO),'0|0');

  return ESTMIN;
end
^

SET TERM ; ^

