CREATE OR ALTER TRIGGER TBNFS_ITEM_B07IU FOR TBNFS_ITEM
ACTIVE BEFORE INSERT OR UPDATE POSITION 7
AS
DECLARE VARIABLE GRADE_CODIGO INTEGER;
DECLARE VARIABLE SUM_TAM NUMERIC(10,5);
BEGIN

    SELECT T.GRADE_CODIGO FROM TBPRODUTO T WHERE T.CODIGO = NEW.PRODUTO_CODIGO INTO :GRADE_CODIGO;

    IF (:GRADE_CODIGO > 0) THEN
    BEGIN

        :SUM_TAM = NEW.T01 + NEW.T02 + NEW.T03 + NEW.T04 + NEW.T05 +
           NEW.T06 + NEW.T07 + NEW.T08 + NEW.T09 + NEW.T10 +
           NEW.T11 + NEW.T12 + NEW.T13 + NEW.T14 + NEW.T15 +
           NEW.T16 + NEW.T17 + NEW.T18 + NEW.T19 + NEW.T20;

        IF (:SUM_TAM <> NEW.QUANTIDADE) THEN
           BEGIN
                EXCEPTION "..." 'QUANTIDADE TOTAL DO ITEM '||NEW.SEQUENCIA||' PRODUTO '||FN_LPAD(NEW.PRODUTO_CODIGO, 7, '0')||' - '||NEW.PRODUTO_DESCRICAO||' DIFERE DO SOMATORIO DA QUANTIDADE TOTAL DOS TAMANHOS. QTD TOTAL: ' ||NEW.QUANTIDADE||'. QTD TOTAL TAMANHOS: '||:SUM_TAM;
           END

   END
END;

COMMENT ON TRIGGER TBNFS_ITEM_B07IU IS 'VALIDAÇÃO PARA PRODUTOS COM GRADES E DIFERENÇAS DA QUANTIDADE TOTAL DOS TAMANHOS PARA QUANTIDADE TOTAL.';


CREATE TRIGGER TBNFE_ITEM_B08IU FOR TBNFE_ITEM
ACTIVE BEFORE INSERT OR UPDATE POSITION 8
AS
DECLARE VARIABLE GRADE_CODIGO INTEGER;
DECLARE VARIABLE SUM_TAM NUMERIC(10,5);
BEGIN

    SELECT T.GRADE_CODIGO FROM TBPRODUTO T WHERE T.CODIGO = NEW.PRODUTO_CODIGO INTO :GRADE_CODIGO;

    IF (:GRADE_CODIGO > 0) THEN
    BEGIN

        :SUM_TAM = NEW.T01 + NEW.T02 + NEW.T03 + NEW.T04 + NEW.T05 +
           NEW.T06 + NEW.T07 + NEW.T08 + NEW.T09 + NEW.T10 +
           NEW.T11 + NEW.T12 + NEW.T13 + NEW.T14 + NEW.T15 +
           NEW.T16 + NEW.T17 + NEW.T18 + NEW.T19 + NEW.T20;

        IF (:SUM_TAM <> NEW.QUANTIDADE) THEN
           BEGIN
                EXCEPTION "..." 'QUANTIDADE TOTAL DO ITEM '||NEW.SEQUENCIA||' PRODUTO '||FN_LPAD(NEW.PRODUTO_CODIGO, 7, '0')||' - '||NEW.PRODUTO_DESCRICAO||' DIFERE DO SOMATORIO DA QUANTIDADE TOTAL DOS TAMANHOS. QTD TOTAL: ' ||NEW.QUANTIDADE||'. QTD TOTAL TAMANHOS: '||:SUM_TAM;
           END

   END
END;

COMMENT ON TRIGGER TBNFE_ITEM_B08IU IS 'VALIDAÇÃO PARA PRODUTOS COM GRADES E DIFERENÇAS DA QUANTIDADE TOTAL DOS TAMANHOS PARA QUANTIDADE TOTAL.'