Created
September 23, 2020 23:16
-
-
Save fabioebner/458680949a66f71c9ea2ed8d55b5cb2e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE OR REPLACE FUNCTION atualiza_folha_termo() RETURNS TRIGGER AS $BODY$ | |
DECLARE | |
ultima_folha_termo_var integer; | |
proxima_folha_var integer; | |
ultimo_termo db_firma.tb_etiqueta%rowtype; | |
rand_var bigint; | |
BEGIN | |
IF EXISTS (SELECT * FROM db_firma.tb_configuracao_firma) THEN | |
SELECT INTO ultima_folha_termo_var ultima_folha_termo FROM db_firma.tb_configuracao_firma; | |
IF (NEW.nm_adquirente IS NOT NULL) THEN | |
SELECT * INTO ultimo_termo FROM db_firma.tb_etiqueta WHERE nr_livro_etiqueta IS NOT NULL ORDER BY nr_livro_etiqueta::int DESC, nr_folha::int DESC LIMIT 1; | |
proxima_folha_var := ultimo_termo.nr_folha::int + 1; | |
IF (proxima_folha_var > ultima_folha_termo_var) THEN | |
NEW.nr_folha = 1; | |
NEW.nr_livro_etiqueta = ultimo_termo.nr_livro_etiqueta::int + 1; | |
ELSE | |
NEW.nr_folha = proxima_folha_var; | |
NEW.nr_livro_etiqueta = ultimo_termo.nr_livro_etiqueta; | |
END IF; | |
END IF; | |
RETURN NEW; | |
ELSE | |
RETURN NULL; | |
END IF; | |
END; | |
$BODY$ | |
LANGUAGE 'plpgsql'; | |
CREATE TRIGGER atualiza_folha_termo_trigger | |
BEFORE INSERT ON db_firma.tb_etiqueta | |
FOR EACH ROW | |
EXECUTE PROCEDURE atualiza_folha_termo(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment