SET TERM ^ ;

CREATE OR ALTER trigger ttbcliente_condominio_b01u for tbcliente_condominio
active before update position 0
AS
declare variable HISTORICO varchar(5000);
BEGIN

    IF (OLD.STATUS = 0) THEN
    BEGIN
        EXCEPTION "..." 'ESTE LOTE FOI TRANSFERIDO E NÃO PERTENCE MAIS A ESTE CLIENTE. OPERACAO NAO AUTORIZADA!';
    END
    
    HISTORICO = '';

    IF (OLD.QUADRA <> NEW.QUADRA) THEN
    BEGIN
        HISTORICO = HISTORICO||' QUADRA:'||FN_LPAD(OLD.QUADRA, 3, '0')||'->'||FN_LPAD(NEW.QUADRA, 3, '0');
    END

    IF (OLD.LOTE <> NEW.LOTE) THEN
    BEGIN
        HISTORICO = HISTORICO||' LOTE:'||FN_LPAD(OLD.LOTE, 3, '0')||'->'||FN_LPAD(NEW.LOTE, 3, '0');
    END

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

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

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

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'LOTE: '||FN_LPAD(NEW.LOTE, 3, '0')||' QUADRA: '||FN_LPAD(NEW.QUADRA, 3, '0')||' ALTERADO:'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', OLD.CLIENTE_ID, FN_ELIPSE(HISTORICO, 500));
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbcliente_condominio_b01d for tbcliente_condominio
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    
    HISTORICO = '';

    IF (OLD.STATUS = 0) THEN
    BEGIN
        EXCEPTION "..." 'ESTE LOTE FOI TRANSFERIDO E NÃO PERTENCE MAIS A ESTE CLIENTE. OPERACAO NAO AUTORIZADA!';
    END

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'LOTE: '||FN_LPAD(OLD.LOTE, 3, '0')||' QUADRA: '||FN_LPAD(OLD.QUADRA, 3, '0')||' EXCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBEMPRESA', OLD.CLIENTE_ID, HISTORICO);
    END
END
^

SET TERM ; ^

