-- TRIGGERS 

-- INSERTS
CREATE trigger tbconsumo_requisicao_b04i for tbconsumo_requisicao
active before insert position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

  HISTORICO = '';

  IF(NEW.ID > 0) THEN
  BEGIN
    HISTORICO = HISTORICO||'Reg. incluido ';
  END

  IF(HISTORICO <> '') THEN
  BEGIN
    EXECUTE PROCEDURE SPI_HISTORICO('TBCONSUMO_REQUISICAO', NEW.ID, HISTORICO);
  END
END;

-- UPDATE

CREATE trigger tbconsumo_requisicao_b05u for tbconsumo_requisicao
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';    
    
    IF ( OLD.STATUSEXCLUSAO <> NEW.STATUSEXCLUSAO AND NEW.STATUSEXCLUSAO = 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REGISTRO EXCLUIDO.';
    END
    
    IF ( OLD.STATUSEXCLUSAO <> NEW.STATUSEXCLUSAO AND NEW.STATUSEXCLUSAO = 1) THEN
    BEGIN
        HISTORICO = HISTORICO||'EXCLUSAO DESFEITA.';
    END

    IF ( OLD.ESTABELECIMENTO_ID <> NEW.ESTABELECIMENTO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'EST:'|| OLD.ESTABELECIMENTO_ID||'->'||NEW.ESTABELECIMENTO_ID;
    END

    IF ( OLD.CCUSTO <> NEW.CCUSTO) THEN
    BEGIN
        HISTORICO = HISTORICO||'CCUSTO:'|| OLD.CCUSTO||'->'||NEW.CCUSTO;
    END

    IF ( OLD.TURNO_ID <> NEW.TURNO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'TURNO:'|| OLD.TURNO_ID||'->'||NEW.TURNO_ID;
    END

    IF ( OLD.PRODUTO_ID <> NEW.PRODUTO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'PROD. ID:'|| OLD.PRODUTO_ID||'->'||NEW.PRODUTO_ID;
    END

    IF ( OLD.QUANTIDADE <> NEW.QUANTIDADE) THEN
    BEGIN
        HISTORICO = HISTORICO||'QTD.'|| OLD.QUANTIDADE||'->'||NEW.QUANTIDADE;
    END

    IF ( OLD.TAMANHO <> NEW.TAMANHO) THEN
    BEGIN
        HISTORICO = HISTORICO||'TAM.'|| OLD.TAMANHO||'->'||NEW.TAMANHO;
    END

    IF ( OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'OBS.'|| OLD.OBSERVACAO||'->'||NEW.OBSERVACAO;
    END

    IF ( OLD.SALDO <> NEW.SALDO) THEN
    BEGIN
        HISTORICO = HISTORICO||'SALDO:'|| OLD.SALDO||'->'||NEW.SALDO;
    END

    IF ( OLD.FLAG <> NEW.FLAG) THEN
    BEGIN
        HISTORICO = HISTORICO||'FLAG:'|| OLD.FLAG||'->'||NEW.FLAG;
    END

    IF ( OLD.OPERACAO <> NEW.OPERACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'OPE.'|| OLD.OPERACAO||'->'||NEW.OPERACAO;
    END

    IF ( OLD.LOCALIZACAO <> NEW.LOCALIZACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'LOC.'|| OLD.LOCALIZACAO||'->'||NEW.LOCALIZACAO;
    END

    IF ( OLD.STATUS <> NEW.STATUS) THEN
    BEGIN
         HISTORICO = HISTORICO||'STS.'|| OLD.STATUS||'->'||NEW.STATUS;
    END
    
    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCONSUMO_REQUISICAO',NEW.ID, HISTORICO);
    END
END;