TransWikia.com

Trigger que valide a porcentagem de cada rateio em uma nota de compra superior a x valor

Stack Overflow em Português Asked by Pablo Dos Santos Neves on September 27, 2021

Bom dia,
Estou com dificuldades em criar uma trigger que verificar no insert e no update um numero de rateio superior a x ( estou usando 30 para testes) em cada nota de compra. Essa é a primeira Trigger que crio em minha vida então não sei se o código que irei postar tem algo a ver. Trabalhamos com Oracle, existe uma tabela chamada TGFRAT onde armazena os valores de rateio da nota tendo NUFIN que seria o numero identificador da nota, PERCRAT é o percentual de rateio utilizado e que precisa ser validado, sendo que o valor pode ser rateado em vários centros de custos, e ORIGEM que é um campo string que precisa receber ‘E’. Preciso que a trigger valide se a soma de todos os rateios na nota seja superior a 30 , sendo que pode ser rateado em vários centros de custos. Desculpe caso a explicação tenha ficado difícil de entender, mas é por que realmente é a primeira vez que faço uma trigger. Desde já agradeço a atenção.

BEFORE INSERT OR UPDATE ON TGFRAT  
FOR EACH ROW 
     DECLARE P_NUFIN       INTEGER;
            P_PERCRATEIO   FLOAT;
            P_ORIGEM      CHAR(1);
BEGIN 
    P_NUFIN =  NEW.NUFIN
    P_PERCRATEIO = NEW.PERCRATEIO
    P_ORIGEM = NEW.ORIGEM
    SELECT COUNT(*) INTO P_PERCRATEIO  FROM TGFRAT WHERE NUFIN = P_NUFIN AND ORIGEM = P_ORIGEM;
IF
    (P_PERCATEIO >30) THEN ' ERROR'
END IF;

IF
    P_ORIGEM <> 'E' THEN ' ORIGEM ERROR'
END IF;
END ```

  

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP