ALTER TABLE TBREMESSA_ACUMULADO
    ADD ID INTEGER;

CREATE SEQUENCE GTBREMESSA_ACUMULADO;

create trigger ttbremessa_acumulado_b01i for tbremessa_acumulado
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbremessa_acumulado,1);
end;

ALTER SEQUENCE GTBREMESSA_ACUMULADO RESTART WITH 55201 INCREMENT BY 1;

SET TERM ^ ;

create or alter function FN_COTA_REM_MODELO (
    MODELO_ID integer,
    TAMANHO integer)
returns numeric(18,8)
as
declare variable RET numeric(18,8);
begin

    select
        iif(:TAMANHO =  0, p.quantidade,
        iif(:TAMANHO =  1, p.t01,
        iif(:TAMANHO =  2, p.t02,
        iif(:TAMANHO =  3, p.t03,
        iif(:TAMANHO =  4, p.t04,
        iif(:TAMANHO =  5, p.t05,
        iif(:TAMANHO =  6, p.t06,
        iif(:TAMANHO =  7, p.t07,
        iif(:TAMANHO =  8, p.t08,
        iif(:TAMANHO =  9, p.t09,
        iif(:TAMANHO = 10, p.t10,
        iif(:TAMANHO = 11, p.t11,
        iif(:TAMANHO = 12, p.t12,
        iif(:TAMANHO = 13, p.t13,
        iif(:TAMANHO = 14, p.t14,
        iif(:TAMANHO = 15, p.t15,
        iif(:TAMANHO = 16, p.t16,
        iif(:TAMANHO = 17, p.t17,
        iif(:TAMANHO = 18, p.t18,
        iif(:TAMANHO = 19, p.t19,
        iif(:TAMANHO = 20, p.t20, 0))))))))))))))))))))) as TAMANHO
    from TBMODELO_REMESSA_COTA p
    where p.modelo_codigo = :MODELO_ID
    into :RET;

  return RET;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER function FN_COTA_PROD_MODELO (
    MODELO_ID integer,
    TAMANHO integer)
returns numeric(18,8)
AS
declare variable RET numeric(18,8);
begin

    select
        iif(:TAMANHO =  0, p.quantidade,
        iif(:TAMANHO =  1, p.t01,
        iif(:TAMANHO =  2, p.t02,
        iif(:TAMANHO =  3, p.t03,
        iif(:TAMANHO =  4, p.t04,
        iif(:TAMANHO =  5, p.t05,
        iif(:TAMANHO =  6, p.t06,
        iif(:TAMANHO =  7, p.t07,
        iif(:TAMANHO =  8, p.t08,
        iif(:TAMANHO =  9, p.t09,
        iif(:TAMANHO = 10, p.t10,
        iif(:TAMANHO = 11, p.t11,
        iif(:TAMANHO = 12, p.t12,
        iif(:TAMANHO = 13, p.t13,
        iif(:TAMANHO = 14, p.t14,
        iif(:TAMANHO = 15, p.t15,
        iif(:TAMANHO = 16, p.t16,
        iif(:TAMANHO = 17, p.t17,
        iif(:TAMANHO = 18, p.t18,
        iif(:TAMANHO = 19, p.t19,
        iif(:TAMANHO = 20, p.t20, 0))))))))))))))))))))) as TAMANHO
    from TBMODELO_PRODUCAO_COTA p
    where p.modelo_codigo = :MODELO_ID
    into :RET;

  return RET;
end
^

SET TERM ; ^


