SET TERM ^ ;

create or alter function fn_dre_descricoes (
    conta varchar(20),
    dre_id integer,
    tipo_conta integer,
    ano integer,
    mes integer,
    tipo integer)
returns blob sub_type 1 segment size 80
as
declare variable "DESC" blob sub_type 1 segment size 80;
begin
  DESC = '';

  DESC = DESC || coalesce((select
                       list(d.observacao, ', ' || ASCII_CHAR(13) || ASCII_CHAR(10) || '') as DESCRICAO
                    from tbdre_gerencial_descricoes d
                    where d.dre_id = :DRE_ID
                    and d.conta = :CONTA
                    and d.tipo_conta = :TIPO_CONTA
                    and d.ano = :ANO
                    and d.mes = :MES
                    and iif(:TIPO = 1 , d.comercial = 1, iif(:TIPO = 2 , d.servicos  = 1, true))
                    ),'');



  return DESC;
end
^

SET TERM ; ^

COMMENT ON PARAMETER FN_DRE_DESCRICOES.TIPO_CONTA IS
'1-Conta Contabil, 2-Conta Avulsa';

COMMENT ON PARAMETER FN_DRE_DESCRICOES.TIPO IS
'1-Comercial, 2 -Servicos, 3-Consolidado';

