ALTER TABLE TBREMESSA_SETOR
    ADD QUANTIDADE_PROD_MANUAL NUMERIC(15,4) DEFAULT 0;

update TBREMESSA_SETOR s set QUANTIDADE_PROD_MANUAL = 0 where s.situacao = 1;

SET TERM ^ ;

CREATE OR ALTER procedure SP_CORRIGIR_PROD_ETAPA
as
declare variable REMESSA integer;
declare variable TALAO_ID integer;
declare variable SETOR_ID integer;
declare variable QUANTIDADE_PRODUCAO integer;
begin

    FOR
        select
            S.remessa,
            S.talao_id,
            S.setor_id,
            IIF(QTD < 0,0,QTD) quantidade_producao
        from(
            select
                s.*,
                iif(s.quantidade_prod_manual > 0, s.quantidade_prod_manual, s.quantidade) - DEFEITOS as QTD
            from(
                select
                    s.*,
                    (select sum(coalesce(h.quantidade_defeitos,0)) from tbremessa_setor h where h.talao_id = s.talao_id and h.ordem <= s.ordem) as DEFEITOS
                from tbremessa_setor s
                where s.situacao = 1
            ) s where DEFEITOS > 0
        ) s where QTD <> s.quantidade_producao
    INTO
        REMESSA,
        TALAO_ID,
        SETOR_ID,
        QUANTIDADE_PRODUCAO
    DO BEGIN
       UPDATE tbremessa_setor S SET S.quantidade_producao = :QUANTIDADE_PRODUCAO WHERE S.remessa = :REMESSA AND S.talao_id = :TALAO_ID AND S.setor_id = :SETOR_ID;
    END
end
^

SET TERM ; ^

CREATE TABLE TBCONFI_ALOCACAO_MODELO_ETAPAS (
    ID INTEGER NOT NULL,
    CONFI_ALOCACAO_ID INTEGER,
    GP_ID INTEGER,
    UP_ID INTEGER,
    ORDEM INTEGER,
    ESTEIRA INTEGER,
    ESTOQUE INTEGER,
    PECA_ID INTEGER);

ALTER TABLE TBCONFI_ALOCACAO_MODELO_ETAPAS
ADD CONSTRAINT PK_TBCONFI_ALOCACAO_MODELO_ETAP
PRIMARY KEY (ID);

CREATE SEQUENCE GTBCONFI_ALOCACAO_MODELO_ETP;

SET TERM ^ ;

create trigger ttbconfi_aloc_modelo_eta_B01I for tbconfi_alocacao_modelo_etapas
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbconfi_alocacao_modelo_etp,1);
end
^

SET TERM ; ^

